おっさんモデルをUnreal Engine 4に持って行く!※修正版

前回無事、BlenderでFBX形式でおっさんモデルをExportし、Unreal Engine 4でimportできたと思ったのですが・・・・。
結論から言うと駄目でした!(涙
今回はどういう所が駄目だったのかと、修正箇所を書いておこうと思います・・・。
FBXのバージョン FBX 7.4バイナリでExportするとアニメーションがおかしくなる!?
はい、おっさんモデルのアニメーションを見たら気が付きました(涙
おっさんの走るモーションが良く見ると、斜め向いてたり、顔が違う方向向いてたりしたんですね・・・・。
この原因ですが、どうやらFBXのバージョンに起因があるようでした。
前回の記事のExport設定だと、バージョンはFBX 7.4バイナリ(デフォルト設定)だったのですが、この形式だと何故かボーン構成が変わるそうで、そのためUnreal Engine 4でアニメーションがおかしくなったようです。
なのでFBXのバージョンをFBX 6.1 ASCIIに変更して再Exportします。
FBX 6.1 ASCIIにするとExport設定項目も7.4バイナリからは全然変わり、また別の問題も発生しましたので中々厄介でした・・・。
FBX 6.1 ASCIIのExport設定
Blenderのオブジェクトモードでおっさん関係のオブジェクトを選択し、おっさんモデルのrigを選択してから「ファイル」→「Export」→「FBX」を選択するのは前回と同様です。
「バージョン」をFBX 6.1 ASCIIに変更し、「選択したオブジェクト」をONにします。
次に座標系の設定ですが、ここはBlender側でどんな設定をしてもUnreal Engine 4側で変わることはありませんでした(汗
なので、適当にUnreal Engine 4上の理想の座標系を設定しておきました。「Xが前方」、「Zが上」としました。
Export項目は「アーマチュア」と「メッシュ」を両方選択しておきます。
スムージングはUnreal Engine 4上で警告が出ないよう、面か辺に変更しておきます。
デフォームボーンのみにチェックが入っているか確認します。
アニメーションは別でExportしようと思うので今回はOFFにします。
これらの設定でFBX 6.1 ASCIIバージョンのおっさんモデルをExportしました。
Unreal Engine 4のImport設定
FBX6.1 ASCIIバージョンのFBXをUnreal Engine 4にImportする際の設定になります。
今回はFBXにアニメーションは含めていないので、Animationの「Import Animations」のチェックをOFFにします。
Transformの「Import Rotation」を「X=-90」、「Y=-90」の値にします。この理由はBlender側の前方、上の座標軸設定をどんな風に変えても、おっさんモデルが寝転がってうつ伏せになった状態でImportされるためです(涙
この値にすれば、+X軸方向を正面とした正常な体勢でImportされました。
また、「Import Uniform Scale」の値を20.0にします。この理由は、FBX 7.4バイナリの時はおっさんモデルは巨大化してImportされましたが、今回のFBX6.1 ASCIIでは豆粒化するほど小さくImportされたため、よさげな大きさまで拡大するためです(汗
これらの設定でImportします!これでおっさんモデルは正しい向きでImportされるのですが、ここで問題が発生します・・・・。
FBX6.1 ASCIIでUnreal Engine 4にFBXファイルをImportするとマテリアルからテクスチャが消える!?
白いおっさん誕生、マテリアルに設定されているはずのテクスチャーが消えました・・・(汗
そもそもテクスチャーが一緒にImportされません。FBX7.4バイナリではこの現象はおきませんでした。テクスチャーもImportされますし、マテリアルにも設定されていました。
Blenderでは「ojisanMat」という名前のマテリアルに、塗ったテクスチャを設定していましたが、Unreal Engine 4では「ojisanMat」のテクスチャはスッカラカンですorz
FBXImportオプションのMaterial設定箇所にImport Textureというチェックボックスがありますが、しっかりチェックが入った状態でImportしています。
色々試しましたが、原因はわからず改善しませんでした(汗
これは困りました、FBX 7.4バイナリはアニメーションがおかしくなり、FBX6.1 ASCIIはマテリアルにテクスチャーが設定されない・・・・・。
で、解決策としてはFBX6.1 ASCIIの方が容易でした。
Importされないテクスチャーをマテリアルのブループリントで直接セットする!
Importされなかったおっさんモデルのテクスチャーを直接ドラッグ&ドロップでImportし、「ojisanMat」をダブルクリックしてブループリント編集画面にします。見ると案の定「None」とかいう良く分からないのが「ojisanMat」に繋がっておりました。
これをおっさんモデル用テクスチャーに差し替えます。
ブループリント上で右クリックして検索欄に「Texture Object」と入力して、Texture Objectを配置します。そのTexture Objectにおっさんモデル用テクスチャーをセットしました。
同様に「Texture Sample」を配置して、Texの方に繋ぎます。
最後にTexture Sampleから「None」が繋がっていた「ベースカラー」に繋いで完了です。「None」はいらないから消しちゃいます。
最後に忘れないよう「保存」を押します!
消えたテクスチャーをマテリアルに反映できた・・・・!
やっとUnreal Engine 4 におっさんモデルをImportできた・・・・!
この形式ならアニメーションがおかしくなる事もないので、次回こそアニメーションのImportをやりたいと思います!(泣
しかし、これほど苦戦するとは・・・・w
ディスカッション