Unityのアニメーションを初めて知った日、
簡単すぎてびっくりして使いまくっているikosamiです。
アニメーションを行うAnimatorやAnimationは、
最初3Dモデルのボーンとかの動きに対して使うものだと思っていたのですが、
実際は、ほぼ何にでも使うことができます。
また、やってみると、(すごくいいアニメーションをつくるわけでなければ)とんでもなく簡単です。
アニメーションさせる親オブジェクトを用意
Hierarchyから、右クリック CreateEmptyでアニメーションさせるものの親を作ります。
親がなくても動くのですが、あった方が後々、色々と扱いやすくなります。
Animatorを付ける
先ほど作った親オブジェクトに、Animatorを付けてください。
AnimatorControllerを作る
Controller None(Runtime Animator Controller)というところに入れるための
AnimatorControllerを作ります。
Projectで右クリックして、CreateのAnimatorControllerを作ります。
作ったら、先ほどのAnimatorに入れてください。
アニメーションさせる物体を作る
先ほどの親オブジェクトの子として、アニメーションさせたいものを作ってください。
なんでもいいのですが、今回は説明用として、とりあえずCubeを入れます。
アニメーションの設定を開く
上のメニューのWindowから、Animationを開きます。
Windowsの場合は、Crtl+6のショートカットキーでも開けます。
すると、こんな感じの画面が開きます。
この状態で、アニメーションの親オブジェクトをHierarchyでクリックして選択すると
こんな感じの画面になります。
真ん中のCreateボタンを押すと、animファイルが作れます。
作られると、Animation Windowが、こんな感じになります。ここでアニメーションの設定をしていきます。
アニメーションを作る
赤いボタンを押します。(記録モードになります)
時間を選びます。
動かします。
終わりです。
言葉にしづらいので動画で載せておきます。
このダイヤ型の灰色のものは、選択すると青くなり移動したり消したり、コピペができます。
コピペで貼り付ける場所は、選択している白い線が出ている時間になります。
ぶにぶにさせてみる
これで、親オブジェクトをコピーすることで、いくらでも増やしたり向きを変えたり位置を変えたりできます。
親オブジェクトを作らずに直接やってしまうと、動かしたときに、アニメーションの制御で場所が動いてしまい
思い通りに動かしたりできなくなってしまいます。※できなくはないですが、やりにくいです。
アニメーションをループさせたくない場合
アニメーションのLoopTimeを外してください。
アニメーションを切り替えたい場合
Animationファイルをもう一つ作って、AnimationControllerの中に入れます。
さっきは、AnimationWindowからCreateボタンで作りましたが、
普通は、右クリック、Create、Animationで作ります。
次に、AnimationControllerに入れるために、AnimationControllerをダブルクリックします。
※上の画像だと、Animというファイル
するとこのような画面が出てきます。
この中に、さっき作ったAnimationファイルをドラックして入れてください。
水色のAnyStateを右クリックして、Make Transitionを選択。
すると矢印が出てくるので、新しく入れたAnimation2に繋げます。
※オレンジ色のが最初のアニメーションなので、
新しいものをデフォルトにしたい場合は、新しいものを右クリックしてSet as Layer Default Stateを選択するとデフォルトになります。
次に、左上のLayers ParametersがParametersになっていることを確認しつつ
プラスボタンを押してTriggerを選択します。 他でもいいのですが単にこれが楽だからです。
Triggerを作れたら、AnyStateからAnimation2をつないでいる矢印線をクリック。
すると、インスペクタ上にこんなものが現れます。
プラスボタンを押すと、さっき作ったトリガーが出現します。
トリガーが複数個あってもこれを選ぶだけです。
これで、C#上から、こうすれば切り替えができます。
切り替えが可能になったので、二つ目のアニメーションを作ります。
AnimatorControllerの中に入った時点で、ここが選択できるようになります。
これでアニメーションの切り替えができます。
終わりに
AnyStateを右クリックして、Make Transitionで矢印をつなげたように、
アニメーションからアニメーションをつなげることができるので、
攻撃を受けたアニメーションから、もとの待機アニメーションに戻ったりもできます。
これは、3Dモデルだけでなく、UIにも使えるので、
フェードアウトなどをこれで作ることもできます。
簡単に使うために、おそらく本来の使い方とは違うことをしている所がありそうですが、
ご了承、または本来の使い方をコメントお願いします。