CGBoxの一部の記事にはアフィリエイト広告が含まれております。
Blenderのテクスチャ付マテリアルをUnityのシェーダーで設定する方法!
こんにちは。
最近VRchat向けのアセットを制作する過程で、BlenderのマテリアルをUnityに持っていくのが結構大変だったので、色々やり方をまとめていきます。
今回はBlenderで制作したこのアセットをUnityに持っていく過程を例に解説していきます。
こちらの作品はBoothで販売しております。
Blenderでの下準備
まずはUnityに持っていく前に必要な下準備をまとめていきます。
テクスチャにベイク
基本的にBlenderで作ったプロシージャルマテリアル(ノードによるマテリアル制作)はUnityに持っていくことができないと考えた方がいいでしょう。
Unityでどのシェーダーを使用するかによりますが、持っていけるのはデフォルトのプリンシプルBSDFのみで構成されたマテリアルです。
他にもエミッションなど持っていけるノードシェーダーがありますが、長くなるので今回は割愛します。今後、エミッションは別記事で書いていきます。
基本的にはBlenderに作ったマテリアルはテクスチャにベイクするのがおすすめです。
今回解説するアセットもこのように各要素ごとにテクスチャにベイクしております。
ベイクの方法は以下の記事にまとめているので、参考にしてベイクしてください。
プリンシプルBSDFのみの場合はベイクしなくても良い
このようにプリンシプルBSDFのみで制作したマテリアルの場合はベイクの必要はありません。
Unityの設定で数値を調整可能なので、ベイクせずに持っていきましょう。
マテリアルの数を少なくする
必ずしもではないですが、マテリアル数を少なくするとデータ量を抑えることができます。
例えば、VRchatだとデータ量によってアバターの品質が表示されます。
ゲーム制作する場合でもデータ量を減らすことは重要だと思うので、Blenderで削減しておきましょう。
テクスチャの枚数を減らす
CGデータの中で多くの比重を占めるのがテクスチャデータです。
テクスチャが多いとデータも重くなるので、VRchat用モデルやUnity用モデルを作る場合はテクスチャの枚数を抑える必要があります。
もし、テクスチャを多めに使用している場合は複数のテクスチャを減らしましょう。
複数のテクスチャを1枚のテクスチャにまとめる方法は以下の記事にまとめられています。
BlenderでFBX出力
下準備ができたらBlenderでFBX出力していきます。
FBX出力する際にはパスモードのところをコピーに変更し、隣のボックスマークにチェックを入れましょう。
こうすることで、Unityに持っていったときにテクスチャが貼られた状態で持っていかれます。
Unityにインポート
FBX出力ができたらUnityにインポートしていきます。
unityのProjectのところにFBXファイルをドラック&ドロップします(もしくは右クリック→ImportNewasset)
マテリアルの生成
このままだとマテリアルが貼られていないので、マテリアルを生成していきます。手順は以下の通りです。
- 右上のInspectorのマテリアルを選択
- LocationをUse Extenal Materals(Legacy)に変更
- Applyを押す
これでテクスチャが貼られたマテリアルが生成されます。
テクスチャとマテリアルの設定はそれぞれ生成されたものをクリックして、右側に現れるInspectorの中から可能です。
normalのセッティングはFixnowを押そう!
マテリアルを生成するときにノーマルマップを設定しているオブジェクトだと、このようなポップアップがでます。
これはFixnowをクリックしましょう。これをIgnoreにすると一部オブジェクトが黒ずんだりするので注意です!
もしノーマルの設定をIgnoreにしてしまった場合、マテリアルのノーマルマップのところからFixNowを選択可能です。
粗さとメタリックのテクスチャは貼られない
これでマテリアルが生成されるのですが、インポートしたFBXのマテリアルを見てみると見た目がおかしいです。
これはBlenderから持ってきたマテリアルはメタリックと粗さ(roughness)のテクスチャが貼られないのが原因です。
次にシェーダーの設定とともにこのメタリックと粗さを設定していきます。
シェーダーとは?
シェーダーとはBlenderでいうマテリアルとほぼ同義で、見た目を設定できます。少しBlenderと違うのがパッケージ化されておりシェーダーごとで設定できる項目が異なります。
作りたい質感ごとにこのシェーダーを変更して作っていくことになります。
シェーダーはインポートすることもできるので、Booth等で販売しているものもあるので見た目にこだわりたい人は購入してみるといいでしょう!
今回はデフォルトで用意されているシェーダーの設定方法を解説していきます。
シェーダーの変更(Autodesk Interative)
次にシェーダーの設定を行っていきます。デフォルトだとStandardというシェーダーが割り当てられます。
デフォルトのStandardだと粗さがsmoothという値になっています。
これは粗さと逆で、0はテカリがない状態・1がテカリが最大になる状態です。
数値が逆な上テクスチャがMetalicと同じものを使用しないといけないため、テクスチャを合成する必要がある等、Blenderで持ってきた場合非常に不便です。
ですので、多くの場合は代わりに「Autodesk Interactive」というシェーダーを使用していきます。
このシェーダーは以下のような特徴があります。
- Standardシェーダーとほとんど見た目が変わらない
- MetalicとRoughnessが分かれている
- Roughnessにテクスチャが貼れる
BlenderユーザーはStandardシェーダーよりもこちらのシェーダーの方がより詳細に設定が可能なので、こちらを使ってみましょう。
テクスチャの設定
シェーダーをAutodesk Interactiveに変更したら、MetalicとRoughnessのテクスチャを貼っていきます。
各要素の左側にある丸いマークを押すと、テクスチャを選べるのでBlenderから持ってきたそれぞれのテクスチャを貼りましょう。
これでテクスチャが反映されるはずです。
テクスチャなしのマテリアル設定
今回はテクスチャなしのマテリアル設定について解説しました。
ほとんどの場合はテクスチャを付けて制作すると思いますが、簡易的なオブジェクトの場合はテクスチャを付けない場合もあると思います。
その場合はInspectorのマテリアルの項目を調整してきます。こちらは直感的にわかるとは思いますが、簡単に説明します。
よく使用する部分のみ抜粋して紹介していきます。
RnderingMode
RenderingModeでは透明・半透明の調整を行うことが可能です。
この部分は別記事で解説しているので、知りたい人は以下の記事を参考にしてみてください。
Albedo・Metallic・Smoothness(Roughness)
これらの要素は数値などを調整して、質感を調整できます。
emission
エミッションは発光効果を付与することが可能です。Blenderにおけるエミッションとほぼ一緒ですね。
これに関してはボリュームがあるので、別記事で後日解説したいと思います。
シェーダー設定のFAQ(まとめ)
ここまでが基本的なBlenderから持ってくるときのUnityのシェーダー設定になります。
最後に内容のまとめとして、Blenderからもってきたときによくするミスをまとめていきます。
基本的に上記の手順を踏んでいけば、きちんとシェーダーが設定できるはずです。以下、同じ内容の重複となります。それぞれ見出しのリンクをはっているのでそこから飛んで確認してください。
テクスチャが貼られていない
テクスチャが貼られていない場合は以下の原因が考えられます。
- FBX出力のときにパスモードをコピー&チェックを入れていない
- インポートした後にマテリアルを設定変更(Use~(Legacy)の部分)して生成していない
この2つを確認しましょう。
もし、何らかの原因でテクスチャがどうしても貼られた状態でインポートできない場合は、プロジェクトにドラック&ドロップして、直接テクスチャを貼り付けることも可能です。
Blenderと見た目が違う
これに関してはライティングやレンダリング等も関係しているため、完全に同じにすることは難しいです。
ある程度の見た目を同じにするためには以下のことをチェックしましょう。
- シェーダーをAutodesck Interactiveに変更
- 各要素にテクスチャを適用
- ノーマルの設定のポップアップをFixNowにする
この3つを確認しましょう。
まとめ
以上、BlenderからUnityにもっていくときのマテリアル・シェーダー設定でした。
ネットを見ると、Blender・Unityの情報は他の情報と比べて情報がまとめられていないので、これからもこれらについてまとめていきたいと思います!
ぜひ当メディアをチェック下さい!
Unity用アセット販売中!
当メディアで運営しているアセットショップ「NickNackHolic」にてUnity用のアセットを販売しております。
ゲーム制作やVRchat、Clusterなどで使用できる便利なアセットを販売しております。
一部無料のアセットもあるので、ぜひ覗いてみてください!
Nick Nack Holic
VRchatやゲームアセット、映像作品で使える「雑貨」を販売中