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

2019年3月3日

前回無事、BlenderでFBX形式でおっさんモデルをエクスポートし、Unreal Engine 4でインポートできたと思ったのですが・・・・。

結論から言うと駄目でした!(涙

今回はどういう所が駄目だったのかと、修正箇所を書いておこうと思います・・・。

 

スポンサーリンク

FBXのバージョン FBX 7.4バイナリでエクスポートするとアニメーションがおかしくなる!?

はい、おっさんモデルのアニメーションを見たら気が付きました(涙

おっさんの走るモーションが良く見ると、斜め向いてたり、顔が違う方向向いてたりしたんですね・・・・。

この原因ですが、どうやらFBXのバージョンに起因があるようでした。

前回の記事のエクスポート設定だと、バージョンはFBX 7.4バイナリ(デフォルト設定)だったのですが、この形式だと何故かボーン構成が変わるそうで、そのためUnreal Engine 4でアニメーションがおかしくなったようです。

なのでFBXのバージョンをFBX 6.1 ASCIIに変更して再エクスポートします。

FBX 6.1 ASCIIにするとエクスポート設定項目も7.4バイナリからは全然変わり、また別の問題も発生しましたので中々厄介でした・・・。

FBX 6.1 ASCIIのエクスポート設定

Blenderのオブジェクトモードでおっさん関係のオブジェクトを選択し、おっさんモデルのrigを選択してから「ファイル」→「エクスポート」→「FBX」を選択するのは前回と同様です。

「バージョン」をFBX 6.1 ASCIIに変更し、「選択したオブジェクト」をONにします。

次に座標系の設定ですが、ここはBlender側でどんな設定をしてもUnreal Engine 4側で変わることはありませんでした(汗
なので、適当にUnreal Engine 4上の理想の座標系を設定しておきました。「Xが前方」、「Zが上」としました。

エクスポート項目は「アーマチュア」と「メッシュ」を両方選択しておきます。

スムージングはUnreal Engine 4上で警告が出ないよう、面か辺に変更しておきます。

デフォームボーンのみにチェックが入っているか確認します。

アニメーションは別でエクスポートしようと思うので今回はOFFにします。

これらの設定でFBX 6.1 ASCIIバージョンのおっさんモデルをエクスポートしました。

Unreal Engine 4のインポート設定

FBX6.1 ASCIIバージョンのFBXをUnreal Engine 4にインポートする際の設定になります。

今回はFBXにアニメーションは含めていないので、Animationの「Import Animations」のチェックをOFFにします。

Transformの「Import Rotation」を「X=-90」、「Y=-90」の値にします。この理由はBlender側の前方、上の座標軸設定をどんな風に変えても、おっさんモデルが寝転がってうつ伏せになった状態でインポートされるためです(涙
この値にすれば、+X軸方向を正面とした正常な体勢でインポートされました。

また、「Import Uniform Scale」の値を20.0にします。この理由は、FBX 7.4バイナリの時はおっさんモデルは巨大化してインポートされましたが、今回のFBX6.1 ASCIIでは豆粒化するほど小さくインポートされたため、よさげな大きさまで拡大するためです(汗

これらの設定でインポートします!これでおっさんモデルは正しい向きでインポートされるのですが、ここで問題が発生します・・・・。

FBX6.1 ASCIIでUnreal Engine 4にFBXファイルをインポートするとマテリアルからテクスチャが消える!?

白いおっさん誕生、マテリアルに設定されているはずのテクスチャーが消えました・・・(汗

そもそもテクスチャーが一緒にインポートされません。FBX7.4バイナリではこの現象はおきませんでした。テクスチャーもインポートされますし、マテリアルにも設定されていました。

Blenderでは「ojisanMat」という名前のマテリアルに、塗ったテクスチャを設定していましたが、Unreal Engine 4では「ojisanMat」のテクスチャはスッカラカンですorz

FBXインポートオプションのMaterial設定箇所にImport Textureというチェックボックスがありますが、しっかりチェックが入った状態でインポートしています。

色々試しましたが、原因はわからず改善しませんでした(汗

これは困りました、FBX 7.4バイナリはアニメーションがおかしくなり、FBX6.1 ASCIIはマテリアルにテクスチャーが設定されない・・・・・。

で、解決策としてはFBX6.1 ASCIIの方が容易でした。

インポートされないテクスチャーをマテリアルのブループリントで直接セットする!

インポートされなかったおっさんモデルのテクスチャーを直接ドラッグ&ドロップでインポートし、「ojisanMat」をダブルクリックしてブループリント編集画面にします。見ると案の定「None」とかいう良く分からないのが「ojisanMat」に繋がっておりました。

これをおっさんモデル用テクスチャーに差し替えます。

ブループリント上で右クリックして検索欄に「Texture Object」と入力して、Texture Objectを配置します。そのTexture Objectにおっさんモデル用テクスチャーをセットしました。

同様に「Texture Sample」を配置して、Texの方に繋ぎます。

最後にTexture Sampleから「None」が繋がっていた「ベースカラー」に繋いで完了です。「None」はいらないから消しちゃいます。

最後に忘れないよう「保存」を押します!

消えたテクスチャーをマテリアルに反映できた・・・・!

やっとUnreal Engine 4 におっさんモデルをインポートできた・・・・!

この形式ならアニメーションがおかしくなる事もないので、次回こそアニメーションのインポートをやりたいと思います!(泣

しかし、これほど苦戦するとは・・・・w

スポンサーリンク