Unityでfbxのアニメーションをインポートするときのメモ

名前依存ヒエラルキー

fbxでインポートしたアニメーションは,名前依存ヒエラルキーになっている.
これはリグの名前が変わってもダメ,ヒエラルキー(階層構造)が変わってもダメという状態である.

f:id:SiunCyclone:20210714235103p:plain f:id:SiunCyclone:20210714235106p:plain

名前依存ヒエラルキーの問題点

ヒエラルキーは同じでも,アニメーション作成時のリグの名前が違えばそのアニメーションが使えない

解決策

avatarを使用する.
これはあるヒエラルキーに対して代表となるような名前依存ヒエラルキーを先に作っておき,それを使う仕組みである.
例えばHumanoidは代表名前依存ヒエラルキーに相当する.

図解

f:id:SiunCyclone:20210715134849p:plain f:id:SiunCyclone:20210715134851p:plain アニメーションは,汎用性のある名前依存ヒエラルキーと結びついていればいるほど,そのアニメーションの汎用性もあがる(Humanoidが典型例).
アニメーションを扱う時は,常にどの名前依存ヒエラルキーと結びついてるのかも意識することが肝要.

その他

  • avatarを使った場合,アニメーションがグラグラ揺れることがある.そういう場合はAnim. CompressionとRoot Transform Positionを設定する f:id:SiunCyclone:20210715174925p:plain f:id:SiunCyclone:20210715174659p:plain

    Anim. CompressionをOffにするのはオススメしないと公式に書かれてるので,基本的に使用する.
    どれくらいの誤差を許容するかは,実際に動かしてみて気になるか否かで判断する.
    浮動小数点を使用しているので,誤差を完全に0にはできないと理解しておくこと.

  • アニメーションのWrite Defaultsはオフにしておく
    fbxのRigのAnimation Typeをコロコロ変えると,デフォルト値の影響でアニメーションが変になる(すべてのキーを設定していれば起こらないかもしれないが,Write Defaultsを使うつもりがないなら毎回オフにしたほうが無用な心配もなくなる)

参考

Unity Animation Retargeting: How to use animations with a wide variety of characters - YouTube

【Unity】知らないと面倒くさい事になるかもしれないAnimatorの「Write Defaults」の動作について - テラシュールブログ