3分でわかる!Unityのアニメーション(Animation)を再生する方法

Sponsored Link


Unityのアニメーションを再生したい!

どうも、Linです。お茶、飲みまくってます。

 

Unityのゲームを作っていると、

「アニメーションを再生をしたいな!」

というときがあると思います。

 

アニメーションコントローラーを用いてアニメーションを再生するのが簡単でわかりやすいのですが、中には使用するアセットの都合上、

アニメーションコントローラーは使えない

という場合があるんです。

 

そのときに知っておきたいのが、

アニメーションだけでアニメーションを再生する

ということです。

何を言ってるのかよくわからなくなってきましたが、とりあえず、ぼくが購入した熊のアセットを元に、アニメーションを再生する方法をメモしておきたいと思います。

 

 

Unityのアニメーションを再生する方法

今回は例として、

クリックした熊が立つ

というゲームを作っていきます。

 

使用したUnityのアセットはこちらの「Bear 1」というものです。

 

それでは早速、熊のゲームを作っていきましょう。

 

 

Step1. ゲームオブジェクトを配置

今回は、熊のゲームオブジェクトをTerrainのど真ん中に配置。

 

unity アニメーション再生

 

ここからすべてが始まります。

熊をTerrainのど真ん中に持ってくるにはTransformを(250, 0, 250)に設定するといいですね。

 

Step2. Animationコンポーネント追加

熊にAnimationコンポーネントを追加します。

 

 
https://gyazo.com/77273d0f53d797d8ec88e458a215e2b1

 

Bearのゲームオブジェクトを選択した状態で「Add Component」から「Animation」を選びましょう。

 

Step3. Animationを選択

続いて、再生したいアニメーションを選びます。

今回は、四つん這いの熊をクリックした時に立ち上がらせたかったので、

Arm_bear|idle_3

という熊が立つアニメーションを選びます。

 

 
https://gyazo.com/f55ee9378d3883a91e181554118fda8b

 

 

AnimationコンポーネントのAnimationの横の時計みたいなマークをクリックして、アニメーション一覧から選んでみてください。

 

Step4. Play Automaticallyを外す

Play Automaticallyにチェックが入っていると、ゲーム開始時に自動的いアニメーションが再生されてしまいます。

今回はチェックを外しておきましょう。

 

 
https://gyazo.com/d24ac1c712132c07f114654b57adbbc2

 

 

 

Step4. コードを書く

あとはコードを書くだけ。名前を「bearController.sc」とでもしましょう。

やることは次の3つ。

  1. Animation型の変数を宣言
  2. 熊のAnimationコンポーネント取得
  3. Playメソッドで再生

 

次のようにコードを書いて、

 

 

あとはこいつを熊にアタッチ。
https://gyazo.com/cc66e8dee456c9b6bb5b621d92e4e472

 

これで熊が立つゲームの完成です!
https://gyazo.com/61614d924417d7a8790b022f3d887a1b

 

 

 

複数のアニメーションを分けて再生したいときはどうするの??

場合によっては、複数のアニメーションを分けて再生したいというときがあると思います。

たとえば、

  • Spaceキーを押したら、熊が寝る
  • Enterキーを押したら、熊が攻撃する

みたいな感じですね。

その場合は、

Playメソッドの引数で、再生したいアニメーション名を指定しあげれば大丈夫です。

 

まずは、アニメーションコンポーネントのAnimationsからSizeを2に増やしてやって、Element0とElement1に再生したい2つのアニメーションを設定。
https://gyazo.com/c7e250d64f3c474ea1296c15e3fa5493
あとは、再生したいアニメーションをPlayメソッドの引数で指定します。

今回は、

  • Arm_bear|sleep_start(眠り始めるアニメーション)
  • Arm_bear|attack_4(攻撃するアニメーション)

を引数に設定。

スペースキーを押した時に眠り、Enterキーを押したら攻撃してくるようにします。

すると、bearController.scは次のようになるはず。

 

 

うまくいけば、次のように入力コマンドによって2つの熊のアニメーションが再生されるでしょう。
https://gyazo.com/ce2bcc63cdea87974b398800a966f8f6

 

 

Unityのアニメーションを再生する方法はPlayメソッドで一発

以上が、Unityでアニメーションを再生する方法でしたね。

アニメーションコンポーネントを取得して、Playメソッドで再生するだけ。

複数のアニメーションを使いたいときはサイズを大きくして、Playメソッドの引数でアニメーション名を指定してあげましょう!

 

もっとUnityを深く学びたいという方には「オンラインブートキャンプ Unityコース」がおすすめです。

プロのメンターの方にわからないところを質問できますからね。

独学で挫折してしまった方はよかったら試してみてください。

 

それでは!

Lin

飯橋凛(Ihashi Lin)

インターネット広告代理店を1年半で退職。
その後、副業として活動していたウェブメディア運営のフリーランスへ。
現在はプログラミングの勉強に励み、0からフリーエンジニアの道を目指す。最近はキムチをまとめ買いにはまっている。


Sponsored Link

1件のコメント

  1. 質問です。

    クマの次にネコを作るとして、ネコにもスリープとアタックのアニメーションを付けたい場合、同じソースコードで実装する方法はありませんでしょうか?

    例えば、ネコとクマでフォルダ分けして、同じアニメーション名で別々のフォルダに保存するのが良いでしょうか?

    よろしければご教授お願い致します。

コメントはこちらからお願いします!



もう1本読んでみる