MayaのコンストレイントをUnityに持っていく方法を解説します。解説というほど大仰なものではなく、実際は単に設定するだけです(^^;。ただ作業でちょっと詰まってしまったので、自分の備忘録がてら書き記しておきます。
コンストレイントの簡単な解説
コンストレイントを簡単に解説します。3Dの知識をお持ちの方は読み飛ばしていただければと思います。
仕事のデータをブログにアップするわけにもいかないので、Mayaのコンテンツブラウザーからテキトーに腕を用意しました。指が1本少ないような気もしますが、おそらく気のせいでしょう。
ポリゴンで棒を作って持たせます。
持たせるといっても、腕を動かしても棒は動きません。そこに配置してあるだけですね。
腕が動いたときに棒も動くように、腕と棒を関係付けました。これがコンストレイントです。コンストレイントには色々な種類があるのですが、今回のは腕と棒の間に親子関係が成立しているので、ペアレントコンストレイントになります。
Mayaのゲームエクスポーターで出力
この腕のデータをUnityに出力します。Unityはゲームエンジンというよりも、最近はゲームの統合開発環境といってもいいかもしれません。
ゲームエクスポーターの設定画面です。試しにデフォルトで出力してみます。
うん、動かないですね。設定を見直してやる必要がありそうです。
ゲームエクスポーターのアドバンスド設定をクリックします。画像の歯車のアイコンですね。
アドバンスド設定で一番上のEdit Model Advanced Settingsにチェックを入れます。
Animation(アニメーション)にもチェックを入れます。
そして最後にConstraints(コンストレイント)にチェックを入れます。
Unityでの設定
コンストレイントを表現するためにUnityでもチェックする項目があります。
アセットの読み込んだオブジェクト(今回は腕)を選択して、インスペクターにあるImport Constraintsにチェックを入れます。
Unityでもコンストレイントが反映されて腕が動くようになりました。
Unityでインスペクターを確認すると、ちゃんとコンストレイントの項目が設定されています。
まとめ ー アニメーションのベイク処理は必要ない?
MayaのコンストレイントをUnityに持っていくのに、アニメーションのベイク処理が必要なのかなー、と色々と試行錯誤していたのですが、意外にあっさりと持っていくことができました。実際に検証してみないと分からないこともありますねー。
他にも持っていく方法はあると思いますが、一例として何かの参考になれば幸いです。
コメント