Animator

「Animator」の編集履歴(バックアップ)一覧はこちら

Animator - (2015/05/26 (火) 19:36:07) の1つ前との変更点

追加された行は緑色になります。

削除された行は赤色になります。

*使い方 ①Animatorを作る ②既存のAnimationをドロップすると「State」ができる。 ③「State」同士をTransitionを作って結ぶ ③Animatorの右上のタブからParametersを選び、「+」で任意のフラグを追加する(例えばBoolで作って、チェックを入れる) ④transitionをクリックして③で作ったフラグの条件true/falseをconditionを追加する ⑤AnimatorにAddしているscriptからフラグを制御して、stateの遷移を制御する  if (Input.GetKey(KeyCode.Space))    anim.SetBool ("DoWin", true);  else    anim.SetBool ("DoWin", false);  例えば、スペースキーを押したままにすると、DoWinフラグがtrueになり、  Animatorで作った遷移に従って、該当のAnimationが再生される AnimatorのAnimationは、遷移する時に、Animation同士のブレンドがされて、自然な変化になるように調整される。 ブレンドの割合は、transitionをクリックして選択したsettingsで調整できる
*使い方 ①Animatorを作る ②既存のAnimationをドロップすると「State」ができる。 ③「State」同士をTransitionを作って結ぶ ③Animatorの右上のタブからParametersを選び、「+」で任意のフラグを追加する(例えばBoolで作って、チェックを入れる) ④transitionをクリックして③で作ったフラグの条件true/falseをconditionを追加する ⑤AnimatorにAddしているscriptからフラグを制御して、stateの遷移を制御する  if (Input.GetKey(KeyCode.Space))    anim.SetBool ("DoWin", true);  else    anim.SetBool ("DoWin", false);  例えば、スペースキーを押したままにすると、DoWinフラグがtrueになり、  Animatorで作った遷移に従って、該当のAnimationが再生される AnimatorのAnimationは、遷移する時に、Animation同士のブレンドがされて、自然な変化になるように調整される。 ブレンドの割合は、transitionをクリックして選択したsettingsで調整できる *アニメーションを止める方法 animator.speed = 0; *スクリプトからAnimator制御 *Animatorの遷移をコードで行う http://tsubakit1.hateblo.jp/entry/2015/02/11/223849 参考 parametersを設定してフラグをon/offするのは設定が面倒なので、 コードで直接遷移を実現する方法 CrossFade関数は、アニメとアニメをブレンドして実行する 第一引数はstateの名称 スペースキーを押すと前に進む public class GirlController : MonoBehaviour { Animator animator; void Start () { animator = GetComponent<Animator> (); animator.Play ("Idle"); } void Update () { if (Input.GetKeyDown (KeyCode.Space)) { animator.CrossFade("Walk",1f); } } } CrossFade仕様 http://docs.unity3d.com/ScriptReference/Animator.CrossFade.html *Animationをコードから指定する 参考 http://unitylab.wiki.fc2.com/wiki/%E3%82%A2%E3%83%8B%E3%83%A1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3 AddComponentでAnimationを追加する sizeに登録したいanimationの数を入れて、 Elementにドロップして登録する 単純に再生するときは、 animation.Play ("idle"); 現在のアニメーションからブレンドして再生する時は、 animation.CrossFade ("Run", 0.5f); *最初から再生させる animation.CrossFadeQueued ("up_sword", 0.5f, QueueMode.CompleteOthers); //通常のクロスフェードと若干異なり最初から再生される //CrossFade()側を使うとloopの場合、フレームがStopしてもクリアされず進んだ状態で記憶されている *アニメ遷移時にイベント起動 AnimationEvent ev = new AnimationEvent (); ev.time = 0.0f; ev.functionName = "StepSound"; ev.floatParameter = 1.0f; animation ["run"].clip.AddEvent (ev);

表示オプション

横に並べて表示:
変化行の前後のみ表示: