テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

【Unity】FBXに格納されたAnimationClipを取り出し編集可能にする

FBXに格納されているAnimationClipはReadonlyである関係上、アニメーションを調整する事が非常に面倒になっています。

そこで、FBXからAnimationClipを取り出してイベントを設定・アニメーションイベントを調整する方法を紹介します。

f:id:tsubaki_t1:20150601232000p:plain

AnimationClipを取り出す方法

FBX内のAnimationClipを選択し、Ctrl(Command)+Dです。

これで対象のAnimationClipがFBXから取り出され、編集可能になります。複数のAnimationClipを同時に取り出すことも出来ます。

f:id:tsubaki_t1:20150601232238g:plain

これをスクリプトで行う場合は以下のように行います。

  1. FBXからAnimationClipを取得する
  2. AnimationClipをInstantiateしてCreateAssetでアセットとして作成
  3. 作成したAnimationClipを上書きコピー

gist.github.com

なお3の手順の意味は、コピーの度にファイルIDが変更されてしまう(=AnimationClipへの参照が切れる)のを防ぐ意味があります。3の手順では一度作成したファイルへ.animの中身だけ上書きコピーする事でファイルIDの更新を防いでいます。

単純にコピーする手順で言えば1〜2で十分なのですが、スクリプトで設定する(≒自動化)が目的だと思うので、このように記述しています。

イベントの設定

なお、AnimationClipのEventは別に取り出さなくても設定することが出来ます。参照方法が文字列なので少し設定が面倒な所がありますが…

  1. FBXを選択し、Animationsを選択
  2. 設定したいAnimationClipを選択

    f:id:tsubaki_t1:20150602000540p:plain

  3. Eventsを開いて、f:id:tsubaki_t1:20150602000419p:plainボタンをクリック

    f:id:tsubaki_t1:20150602000555p:plain

  4. Functionに呼び出すメソッド名し、Float-Int-Stringの内一つに設定したい引数を設定

    f:id:tsubaki_t1:20150602000612p:plain

  5. Applyをクリック

関連

AnimationClipを取り出す他の方法

【Unity】FBXからAnimationClipを取り出すエディタ拡張 - コガネブログ

FBXアニメーションデータを編集できるようにする - 頑張って続けます

AnimationClipを特定のアセット以下に格納する

UnityのAnimatorControllerにAnimationClipを内蔵する - テラシュールブログ