![見出し画像](https://assets.st-note.com/production/uploads/images/90425708/rectangle_large_type_2_59b5ce7443bb39bf48961c1cad0d3da1.png?width=1200)
Unityでアニメーションを制御する
今回はUnityでAnimationを管理、制御します!
UnityではAnimatorというひと固まりのデータにして
複数のアニメーションを切り替えたり、制御しています
![](https://assets.st-note.com/img/1667508458228-eg9D7HaFkc.png?width=1200)
これはNPCのアニメーションを制御しているAnimatorの画面です
BreathingIdle と Talkingという2つのアニメーションを交互に再生しています
BreathingIdleから下に伸びてTalkingに繋がっている矢印の中身を
見てみましょう
![](https://assets.st-note.com/img/1667508560322-DhoYHKru6u.png?width=1200)
![](https://assets.st-note.com/img/1667508722659-FAH6Ihwko4.png?width=1200)
開始直後は立っているアニメーション
時間を進めて9秒近くを見てみると話しているようなポーズをしています
上に伸びている矢印も見てみましょう
![](https://assets.st-note.com/img/1667508823236-OFDadOO6Qi.png?width=1200)
今度は逆で、時間が経つと立っているアニメーションに戻ります
ループではなく任意のタイミングで切り替えたい
なにかボタンを押したとき、近づいたときなど
任意のタイミングで話し始める というようなこともできます
まずはAnimator左上にあるParametersというところ
+ボタンを押すと様々なParameterを作ることができます
今回はBool型の「Talk」を作成しました
![](https://assets.st-note.com/img/1667509285849-PrHprMhMUM.png?width=1200)
![](https://assets.st-note.com/img/1667509024394-j2VOMPfYfK.png?width=1200)
そして先ほどのアニメーションの遷移の画面
さっきと違うのは下の方に追加されたConditionsというところです
Talkというフラグを設定し、それがTrueになったら話始める
というような設定にしました
![](https://assets.st-note.com/img/1667509110090-4oGmoA1kxL.png?width=1200)
逆もできますね
TalkというフラグがFalseになったら話すのをやめます
Scriptなどでこのフラグを切り替えてあげれば
自由に制御できますね
他にも追加してみる
![](https://assets.st-note.com/img/1667509197171-92Mp4EgjxV.png?width=1200)
このようにすれば3つのアニメーションを切り替えることができますね
さっき同様に、Smileというフラグを作成すれば
任意のタイミングで3つのアニメーションを切り替えることができるようになります
Animatorの便利なところ
基本的に骨格が同じ3Dモデル(人型など決まったかたち)であれば
この作成したAnimatorは他のNPCにも使いまわすことができます
幅を出したいのであればいくつかAnimatorのパターンを作成
NPC1は 立つ→話す
NPC2は 立つ→踊る
NPC3は 立つ→笑う
![](https://assets.st-note.com/img/1667509629465-JoFj9gn1Nl.png)
町人A、町人B にはNPC1のAnimatorを割り当て
町人C、町人D にはNPC2
町人E、町人F にはNPC3
のようにすると実行時に動きに幅も出て、変更する時に一括でできるので
便利ですね
今回はUnityのアニメーション制御の基本的なお話をしました
今回は以上となります!
ぜひフォローなどして行ってくださいね!