良い点
- アニメーションと、GameObject(FlashでいうMC)は独立しているので、複数のGameObjectで、同じタイムラインの使い回しができる。
- 複数のアニメーションのクロスフェードができる。
- 例) animation.CrossFade("Walk", 0.2);
悪い点
- Flashでいうクラシックトゥイーンはない。モーショントゥイーンのみ。
- コマアニメは、できるけど、苦手。
- 複数階層をいじりにくい。(いちおういじれる)
- モーションパスを使ったTweenは、iTween+iTweenPathを使う感じかも。
良くも悪くもないけど特徴
- ローカル座標モードと、ワールド座標モードがある。
- ゲームオブジェクトに入れ子にすることで、相対座標アニメーションになる。
- (Flashでもあるけど、Unityの方が間違えやすい。)
これで何が出来るのか
機能だけ見ても、何が出来るのかイメージ出来ないと思います。
俯瞰してみて、ゲームに特化した、アニメーション機能だという印象です。
具体的にどういったシーンで使えるのか、例を挙げてみようと思います。
- アバターのアニメーションが簡単。
アニメーションと、GameObjectが独立しているので、複数のキャラクターで同じアニメーションを使いまわせます。
"ArmL","ArmR"など、名前さえ同じなら、子階層まで再帰的に、同じアニメーションが適用されます。
たとえば、DSのドラクエ9のキャラクターアニメーションなんかをUnityで作れるということです。
いやー、Flashのときは、MCの中身を入れ替えてた。Unity簡単。
- ユーザーの動作に合わせて、スムーズにアクションを変えられる。
クロスフェードは、歩いてる途中の動作から、スムーズに攻撃モーションに移れる。
ユーザーのアクションに応じて動きを変えるアクションゲームなどでは、
歩いている途中で、攻撃モーションにはいらなければいけないときなど多々あります。
Flashだと、諦めて、カクっと、次の
gotoAndPlay("Atack");
をするしか無かった。(やろうと思えば出来たけど)
Unityでは、
animation.CrossFade("Atack");
で、現在の位置から線形補間しながら、攻撃モーションに入ります。便利。