【Unity】AnimatorControllerの使い方

URLをコピーする
URLをコピーしました!

CGBoxの一部の記事にはアフィリエイト広告が含まれております。

こんにちは!Unityでゲーム開発をしていると、キャラクターにアニメーションを設定するのは必須ですよね。

Unityにはアニメーションを管理する機能として便利なAnimatorControllerがあります。

本記事ではそのAnimatorControllerの使い方について解説していきます!

目次

Animatorの使い方

Unityには、3Dモデルにアニメーションをつける機能としてAnimatorControllerが用意されています。

AnimatorControllerを利用することで、複数のアニメーションを組み合わせたり切り替えることができます。

ここではそのAnimatorの使い方を解説していきます。

今回はアニメーションを設定するキャラクターとして、アセットストアから手に入るUnity-Chanの3Dモデルを利用します。

以下のリンクから無料でダウンロードすることができます。

あわせて読みたい
Unity-Chan! Model | 3D Characters | Unity Asset Store Elevate your workflow with the Unity-Chan! Model asset from unity-chan!. Find this & other Characters options on the Unity Asset Store.

Animatorを作成する

まずはAnimatorControllerを作成しましょう。

project内で右クリック→Create→AnimatorControllerを選択します。

このように「New Animator Controller」という名前で作成されます。

AnimatorControllerをダブルクリックすると、下のようなAnimatorの編集画面が表示されます。

このAnimator画面から、アニメーションを組み合わせたり、アニメーションが切り替わる条件を設定することができます。

Animatorの設定方法

まずは、新しいStateを追加しましょう。

各Stateにはアニメーションが設定でき、Stateが切り替わる度にそのStateのアニメーションが再生される仕組みになっています。

Animator内で右クリック→Create State→Emptyから新しいStateが作成できます。

次に新しく作ったStateにアニメーションを設定しましょう。

Stateをダブルクリックしインスペクターを開きます。

Motionの項目を開き、設定したいアニメーションを選択します。

今回はUnity-Chanに含まれているジャンプモーションを選択しました。

これでAnimatorControllerの設定ができました。

Animatorの編集画面を閉じて、キャラクターのインスペクターを開きましょう。

下のように、AnimatorControllerをAnimator内のControllerの項目にドラッグアンドドロップします。

ここまでできたらプログラムを実行してみましょう。

Unity-Chanにアニメーションが適用されていますね。

現状の設定ではアニメーションの再生は一度で終わってしまいます。

アニメーションをループさせたい場合は、以下の記事で解説していますので参考にしてください。

あわせて読みたい
【Unity】アニメーションをなめらかにループさせる方法解説 Unityで開発をしていると、キャラクターにこんな動きをさせたい!と思うことがあると思います。 そんなときUnityのアニメーション機能を使うと便利です。 そしてアニメ...

BoolTriggerとは

アニメーションは、歩いているときと走っているときとでは当然モーションを変えたいですよね。

そのためには、例えばrunningという変数を用意しておき、それがtrueなら走る、falseなら歩くアニメーションという風に切り替えることになります。

そこで役に立つのがBoolTriggerです。

例としてBoolを設定してみましょう。

新たにStateを作成し、Stateの名前を対応するアニメーションの名前に変更しておきます。

上のAnimatorの設定だと、下のような動作になります。

Runのアニメーションに切り替わる条件が入っていないため、ずっとWalkの動作を繰り返します。

そこで、WalkからRunのアニメーションへ切り替わる条件を追加してあげましょう。

Walkの上で右クリック→Make Transitionをクリックし、Runへと矢印を繋ぎます。

次に、切り替わる条件となる変数を追加しましょう。

Parametersタブを開き+ボタン→Boolを選択します。

runningと名前をつけておきます。

チェックボックスにチェックが入っているとtrue、入っていないとfalseを表しています。

次に、WalkからRunに伸びている矢印をクリックし、インスペクターを開きましょう。

インスペクター内の一番下にあるConditionsの+ボタンをクリックします。

running:trueとなっていれば設定完了です。

runningがtrueになった時にこの矢印の切り替えを実行し、アニメーションがWalkからRunに移行することを意味します。

ここまで設定できたらプログラムを実行してみましょう。

最初は歩きのアニメーションから始まりますが、runningにチェックを入れると走るアニメーションに切り替わるようになりました。

ちなみに上のアニメーションでは、runningにチェックを入れてもすぐに切り替わるのではなく、Walkのモーションが完了してから切り替わっていますね。

アニメーションの終了を待たずに即座に切り替えたければ、WalkからRunに伸びている矢印のインスペクター内、HasExitTimeのチェックを外しましょう。

これで下のように即座に切り替わるようになります。

今回はBoolを利用しましたがTriggerを使っても同じ様な使い方ができます。

Triggerは一度実行するとチェックが自動で外れるという特徴があるため、攻撃モーションのような一度だけ再生したいアニメーションに向いています。

Layerでできること

AnimatorにはLayersというタブがあります。

レイヤーを使えば、一部のボーンだけに他のアニメーションをさせたり、2つのアニメーションを同時に行うような処理が可能になります。

レイヤーについて詳しい設定方法は下の記事が参考になります。

LIGHT11
【Unity】Animator ControllerのLayerを使ってモーションを一部だけブレンドしたり加算したりする - LIGHT1... Animator ControllerのLayerを使ってモーションを一部だけブレンドしたり加算したりする方法をまとめます。

CullingModeとは

AnimatorにはCullingModeという設定項目があります。

これはカメラに映っていないときにアニメーションをさせるかどうかの設定項目です。

基本的には常にアニメーションを行うAlways Animateで問題ありませんが、負荷が気になるときには他の設定項目を試してみるといいでしょう。

スクリプトからAnimatorを取得する

スクリプトからAnimatorを取得する方法を紹介します。

以下のようなコードをキャラクターに設定することでAnimatorが取得できます。

PlayとStopの使い方

Animatorを取得すると、PlayやStopを使ってAnimatorをスクリプトから操作することができます。

Playでは、任意のタイミングで指定したアニメーションを再生することができます。

animator.Play(“Stateの名前”);

Stopでは、実行するとアニメーションの再生をただちに止めることができます。

animator.Stop();

Animatorの終了判定する方法

アニメーションが終了するのを待ってから次のイベントを起こしたい、といった場合があるかと思います。

そんなときはAnimatorの終了判定を受け取る必要があります。

これはアニメーションイベントという機能を使えば実現できます。

アニメーションイベントを利用した終了判定の方法については、下の記事が参考になります。

おすすめアセット

UMotion Pro – Animation Editor

あわせて読みたい
UMotion Pro - Animation Editor | Animation Tools | Unity Asset Store Use the UMotion Pro - Animation Editor tool from Soxware Interactive on your next project. Find this & more animation tools on the Unity Asset Store.

UMotion Proは3Dモデルのキャラクターに自分でアニメーションをつけることができるアセットです。

特にHumanoid型のキャラクターのアニメーションを編集するのに非常に便利です。

レイヤーを利用して既存のアニメーションを調整することもできます。

Text Animator for Unity

あわせて読みたい
Text Animator for Unity | GUI Tools | Unity Asset Store Use the Text Animator for Unity from Febucci Tools on your next project. Find this GUI tool & more on the Unity Asset Store.

Text Animatorは、Unity内のテキストにアニメーションを付けたり、エフェクトを加えたりすることができるアセットです。

一文字ずつ表示したり、文字を揺らしたりなどのエフェクトが簡単に実装できます。

日本語でも利用できるので、リッチなテキストの表現を実装したい方におすすめです。

まとめ

以上、AnimatorControllerの使い方について解説してきました。

アニメーションの設定は慣れるまで少し難しいですが、必ず必要になってきますのでぜひ覚えておきたいですね!

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
URLをコピーする
URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

Unityメインの個人開発者。UnityでAIを学習させてみたり、野球ゲームを作ってみたりと色々してました。現在はライターとして、Unityで開発する人の力になる記事が書けるよう奮闘中。

目次
閉じる