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