Scaniverseや3DF Zephyrなどで作成した3DモデルをFBXで出力してVRChat、Cluster、metaのワールドに取り込むことがあります。その際によくあるのが、3Dモデルにはテクスチャー(色模様)が付いているのにUnityに取り込んだ際にテクスチャが反映されない(灰色のまま)というトラブル。これにはいくつかの対処法があります。いつも忘却するので以下にまとめました。
目次
テクスチャが反映されない原因と対処法
まずはAIに聞いたところ、次のような回答がありました。
マテリアル設定の確認
UnityのFBXインポート設定で、InspectorのMaterialsタブから「Location」を「Use External Materials (Legacy)」に変更し、Applyをクリックします。これにより、外部のテクスチャが正しく参照されるようになります。
ProjectのAssetsに任意の名称のフォルダーを作って、その中にFBXファイルをドロップする。ドロップしたFBXをクリックして、右のInspectorのMaterialタブにあるLocationを「Use External Materials (Legacy)」に変更する。Applyを押せば終わり。
インポートしたものを直してからワールド内に配置する、ということなんだね。ずっとわからなかった。
テクスチャのベイク
Blenderで作成したモデルの場合、テクスチャをベイクして保存する必要があります。テクスチャペイントモードで画像を保存し、その後Unityにドラッグアンドドロップで持ってくると、テクスチャが反映されることがあります。
これは試していない。Blenderを使っている人にとっては当たり前なのかな。
テクスチャのパス設定
FBXファイルをエクスポートする際に、Path Modeを「Copy」に設定し、テクスチャを同じフォルダに保存することで、Unityが正しくテクスチャを読み込むことができます。
これも門外漢。
テクスチャの再適用
インポートしたモデルのマテリアルが正しく設定されていない場合、手動でテクスチャをマテリアルにドラッグアンドドロップして再適用することも有効です。
これはやってみて効果があった。ドロップしたFBXを選択し、Inspector画面のMaterialsからTextures ⇒ Extract Texturesを選ぶ。フォルダーを指定するよう促されるのでFBXがあるフォルダを選択すれば、自動的にFBXファイルからテクスチャが抽出されて、反映されます。
FBXのテクスチャーが反映されないときは、これらの手順を試すことでUnityに正しく反映される可能性が高まります。
色味が暗い場合はShaderを変更
ドロップしたFBXを選択し、Inspector画面のMaterialsからMaterials ⇒ Extract Materialsを選ぶ。フォルダーを指定するよう促されるのでFBXがあるフォルダを選択すれば、自動的にFBXファイルからMaterialsが抽出されて、反映されます。
Materialが反映されるとShaderの項目が変更できるようになります。
VRChatのワールドで使う場合、Shaderの中にあるVRChatというカテゴリーの中のMobile⇒Lightmappedが明るいやつです。
ライティング効果を考えたりする場合は安易にShaderを変更するのも良くないみたいですが、とりあえず色味を明るくしたいという時はこれで変更できます。
まとめ
tripo3dとかで生成した3DモデルをFBXで取り込んだ場合も同じことができるので、基本的にFBXさえ出せれば何でもワールドに持っていけそうです。
モデルがグレーになってしまってどうにもうまくいかない、と悩んでいる方の参考になれば幸いと思います。