LoginSignup
78
79

More than 5 years have passed since last update.

【Unity】Animatorの個人的な逆引きリファレンス

Last updated at Posted at 2017-06-30

はじめに

Animatorに慣れていない頃の自分がアニメーションを触っていて、つまづいた点などを軽くまとめてみました。

【Animation】 ループを設定する方法

Animation ClipのInspector上からアニメーションのループの有無を設定することができます。
知らないと結構ハマるかも

image.png

【Animator】○○秒待ってからステートを再生する方法

Animatorに慣れてない頃、長さ○○秒のAnimationClipを使ってステート再生を待機させるというまわりくどい方法をとっていました。

ここでは空のステートを使ってステート再生を数秒間待機させる方法についてまとめたいと思います。

STEP1. 空のステートを用意

まず、AnimatorControllerの中にAnimiationClipが付いていない空のステートを作成し、以下のようにつなぎます。
image.png

ステート名は New Stateとしておきます.

STEP2. 数秒間待機させてからAnimation Clipが再生されるようにしてみる

image.png

New State と New Animationをつなぐ矢印を選択した状態で、以下のように設定します。

Exit Time(遷移前のステートが終了するまでの時間) = 2
Transition Duration(遷移にかかる時間) = 0
Has Exit Time のチェックは入れる

上記のように設定することで、New Stateが2秒間再生された後にNew Animation が再生されるようになります。
animation_1.gif

【Animator】ステートの遷移先が2つ以上設定されていた場合の挙動について

ステートの遷移先が2つ以上設定されていた場合、条件を先に満たしたものが優先して遷移が行われます。

例えば、片方の遷移はExit Time = 1、もう片方の遷移はExit Time = 2といった感じで設定されていた場合、Exit Time = 1の遷移が優先されます。

検証してみる

準備

以下のようにHas Exit Timeを設定しました。

Exit Time = 1の遷移
image.png

Exit Time = 2の遷移
image.png

実行

animation_5.gif

Exit Time = 1の方へ遷移していることが確認できました。

【Animator】パラメーターを使ってステート遷移を制御する

ここではステート間の遷移をパラメーターを使って制御する方法をまとめてみます。

今回はboolパラメータがtrueになるまで遷移を止めてみます。

STEP0. boolパラメータの作成

Animatorウィンドウの左側のParameterタブからboolパラメータを追加しておきます。

animation_2.gif

STEP1. 条件の追加

New State と New Animation間の遷移のHas Exit Timeのチェックを外し、Conditionへ条件を追加します。

animation_3.gif

ここでは パラメーターNew Bool = trueという条件を追加しています。
こうすることで"New Bool" が "true" の場合に限り遷移を許可する、というふるまいを定義することができます

STEP2. 挙動の確認

New Bool を trueにするとステートが New State から New Animationへ遷移することが確認できます。
animation_4.gif

【Animator】レイヤーを使ってアニメーションを混ぜる

image.png

ここではAnimatorのレイヤーについてまとめてみます。

アニメーションの準備

最初に、X軸回転アニメーションとY軸回転アニメーションを作成します

X軸回転アニメーション (RotateX.anim)
animation_6.gif

Y軸回転アニメーション (RotateX.anim)
animation_7.gif

レイヤー作成

Animatorに二つのレイヤーを作成し、片方にX軸アニメーション、もう片方にY軸回転アニメーションを追加します。

animation_8.gif

レイヤー名はそれぞれRotationX, RotationY としておきます。

レイヤーのWeight

X軸回転レイヤーのWeightが1、Y軸回転レイヤーのWeightが0の場合、X軸回転だけが適用されます。
animation_9.gif

Blending = Override の挙動

Y軸回転レイヤーのBlendingをOverrideにした状態でWeightを1に設定するとY軸回転を起こすようになります
animation_10.gif
Overrideの場合だとアニメーションが上書きされます。

Blending = Additive の挙動

Y軸回転レイヤーのBlendingをAdditiveにした状態でWeightを1に設定するとX軸回転とY軸回転が両方同時に行われるようになります。

animation_11.gif

Additiveの場合だとアニメーションが加算されます。

【番外編】エディター拡張でAnimatorの中にAnimationClipを入れる

AnimationClipをAnimatorの中に入れると、アセットをきれいに整理することができるのでオススメです。

下記ページで具体的な方法が紹介されています。

UnityのAnimatorControllerにAnimationClipを内蔵する - テラシュールブログ
http://tsubakit1.hateblo.jp/entry/2015/02/03/232316

78
79
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
78
79