UE4にオリジナルのモデルを読み込む2

前回UE4にLightwaveで作ったモデルとアニメーションをFBXで読み込んでみました。

f:id:matsumoto56:20141231152304p:plain

アニメーションを読み込んでいないモデルとボーンのみのFBXファイルは正常な見た目ですが、アニメーションを適用すると回転軸がずれてしまうようでした。根本的な原因はLightwaveはY軸がUP(垂直方向)で作られていますが、UE4はZ軸がUPで作られているためだと思われます。両方ずれるのならまだわかるのですが、モデルは正常な向きになっているというのが気になります。次のUE4のFBXファイルインポートに関するリファレンスを見てみると、"convert scene"という項目があります。

Unreal Engine | FBX インポート オプションのリファレンス

座標軸をUE4に対応したものに変換してくれる機能らしいのですが、テストで読み込んだときは、モデル、アニメーションともにONになっていたようなのでモデルのほうは正常に変換できたのにアニメーションのほうは正常に変換できなかったものと思われます。確認のため、モデル、アニメーションともにOFFにして読み込んでみると両方とも回転軸がずれてしまいました。

そこで、Lightwave側のオブジェクトの回転を前傾側に90度回転させて出力してみました。”convert scene”をOFFにしてインポートするとモデルは正常な向きで読み込まれましたが、モーションは先ほどと同じように仰向けで読み込まれました。むむむ。。。こうなると、モーションのほうはワールド座標はそんなに関係なさそうです。アニメーションをつける前に変換しておけばなんとかなりそうですが、ワークフローがめんどくさそうです。

色々いじっているうちに解決策は発見できたのですが、内部の処理をちゃんと理解できていないので一般化するのは僕の現状では難しそうです。とりあえず、Lightwaveユーザの助力になればということで、Lightwaveからのインポートで困っている場合は以下を実行してみてください。

f:id:matsumoto56:20150102041810p:plain

FBXのエクスポートで"Re-parent bone hierarchy"のチェックを入れてください。UE4側の”convert scene”はONで読み込みます。設定したボーン構造の親にボーンが一つ追加されたような設定で読み込まれるようですが、回転は正常なようです。MAYAやMaxなどは出力の際に軸変換のオプションがあるようですので、その辺の対応で解決できそうです。

今回は応急処置的な対応なのでFBXの構造については、また別の機会にじっくり調べたいと思います。