【Unity】FBXに格納されたAnimationClipを取り出し編集可能にする
FBXに格納されているAnimationClipはReadonlyである関係上、アニメーションを調整する事が非常に面倒になっています。
そこで、FBXからAnimationClipを取り出してイベントを設定・アニメーションイベントを調整する方法を紹介します。
AnimationClipを取り出す方法
FBX内のAnimationClipを選択し、Ctrl(Command)+Dです。
これで対象のAnimationClipがFBXから取り出され、編集可能になります。複数のAnimationClipを同時に取り出すことも出来ます。
これをスクリプトで行う場合は以下のように行います。
- FBXからAnimationClipを取得する
- AnimationClipをInstantiateしてCreateAssetでアセットとして作成
- 作成したAnimationClipを上書きコピー
なお3の手順の意味は、コピーの度にファイルIDが変更されてしまう(=AnimationClipへの参照が切れる)のを防ぐ意味があります。3の手順では一度作成したファイルへ.animの中身だけ上書きコピーする事でファイルIDの更新を防いでいます。
単純にコピーする手順で言えば1〜2で十分なのですが、スクリプトで設定する(≒自動化)が目的だと思うので、このように記述しています。
イベントの設定
なお、AnimationClipのEventは別に取り出さなくても設定することが出来ます。参照方法が文字列なので少し設定が面倒な所がありますが…
- FBXを選択し、Animationsを選択
- 設定したいAnimationClipを選択
- Eventsを開いて、ボタンをクリック
- Functionに呼び出すメソッド名し、Float-Int-Stringの内一つに設定したい引数を設定
-
Applyをクリック
関連
AnimationClipを取り出す他の方法
AnimationClipを特定のアセット以下に格納する