はじめに
Unityで使用するモデルを作成する際,いろいろな方法が使われると思われますが,今回はBlenderからFBX型としてExportする状況を考えます.また,この内容は初心者である私がモデルを取り込む際のワークフローとして現時点で最適と考えている内容であるため,あまりよくない方法を使っている可能性があることをご了承ください.
1.モデルの名前は半角英数字
あたり前のことかもしれませんが,ここで私は一度躓きました.これはビルドを行う際にエラーが出るので早期の段階で気づかないのがつらいです.これはモデルだけに限らずすべての要素で守らなければいけないことのため,気を付けてください.また,対処法として,私はこのミスのあとBlenderの日本語化をなくしました.
2.transformの適応
2.1 BlenderでのTransformの適用
Blenderで作成したモデルは回転や移動,拡大縮小が加わっている場合が多いです.そして,このままUnityにImportするとこの変形がUnityでも適用されてしまいます.例えば,スケールが(10, 10, 10)のモデルをUnityで使用するとUnityでもスケールが(10, 10, 10)になってしまいます.しかし,おそらくほとんどの場合では,これらの変形が加えられたモデルを標準の状態として扱いたいはずだと思います.そのため,BlenderにおいてCtrl+AでApply Menuを開き,All transformsを選択し変形を適用します.こうすることで,Blender上ではすべてのtransformが標準状態となります.しかし,Unityでも標準状態にするには,さらに次の操作が必要になります.
2.2 exportする際の設定
以上の操作を行うことでBlenderでのtransformは適用され,標準状態が正確に設定されます.しかし,BlenderとUnityのtransformでは,少し違いがあります.例えば,Blenderにおけるスケール(1, 1, 1)はUnityにおける(100, 100, 100)に対応します.これは少し都合が悪いです.そこでExportする際に下図のように[Apply Transform]を適用する必要があります.これによって,Blenderにおけるスケール(1, 1, 1)がUnityにおける(1, 1, 1)に対応するようになります.これによって,モデルを標準状態として読み込むことができます.
3.面の表裏
Blenderでは面の表裏は細分化などを行わない限り,意識することはないかもしれませんが外部への読み出しのためには,しっかり意識する必要があります.Unityでは面が裏になっていると下図のように面が透明になってしまします.そのため,Blenderにおいてすべての面を表向きにする必要があります.
面をすべて表向きにするため,まず面の表裏を表示してみます.これは下図のようにViewPort Overlaysのメニューを開きFaceOrientationにチェックをいれることでみることができます.ここでは,左側の面が裏になってしまっていることがわかります.
次に面を実際に表向きにします.そのためにはまず,表にしたい面を選択したあとAlt+nを押し,Normalsメニューを表示します.そこで,Recalculate Outsideを選択します.すると,目的の面が表になります.これによって,Unityでも正常に表示されます.
ここでは丁寧な方法を述べましたが,実際にはCtrl+Aですべての面を選択したあとAlt+nからNormalsメニューを表示し,Recalculate Outsideを選択することですべての面を表とする方法で大抵の場合は解決します.
まとめ
現時点で私が注意している点は以上です.また,今後続けていくなかで必要な点を見つけ次第更新していこうと思います.