Controllerはなんとなく使ってしまいがちですが、高機能できちんと理解すればいろんなことができます。Controllerの基本的な使い方についてまとめました。StateTransition遷移条件の設定について遷移の割り込みパラメータをスクリプトで制御するサブステートマシン参考Unity2018.3.1StateまずStateについて見ていきます。StateのInspectorは地味に項目が多いけどあまり使う機会がありません。デバッグ時などにその遷移を無効にしたいときにチェック結局、ほとんどの場合Motionをセットするくらいになりそうです。Transition次にTransitionを見ていきます。TransitionのInspectorは結構重要な設定項目が多いです。TimeとConditionsにより制御します。Timeをtrueにして、Conditionsに何も設定していない場合を考えます。Timeに到達した時点で遷移が開始します。Timeを無効にしてConditionsを設定した場合を考えます。この場合は単純に条件を満たしたときにのみ遷移が開始します。複数の条件を指定している場合には全て満たしたときにのみ遷移が開始します。Timeとは実際には「ある時間を超えたフレームで一度だけtrueになるbool型のConditions」です。Timeを有効にしてConditionsも設定した場合を考えます。Timeに到達したフレームではじめてConditionsの判定が行われます。Time遅らせることができます。Timeに到達するごとにConditionsの判定が行われます。TimeのタイミングでConditionsの判定が行われるということになります。Timeに1より大きな値、例えば3を入力すると、3回ループしてから遷移もしくは遷移判定に入る挙動になります。遷移の割り込み次に遷移の割り込みについて説明します。次のような遷移を作ります。この遷移中にtrigger_bをtrueにしてみます。デフォルトの設定ではやはり遷移しません。3の遷移が割りこめるようになります。2の遷移中にtrigger_cをtrueにしてみます。Stateにすれば割り込みが可能となります。Sourceは指定したStateからの遷移が割り込んだ時に許容するかどうか、を表します。Interruptをtrueにすると、同時に割り込みが発生したときの優先順位を細かく制御できます。この場合、優先順位はStateで設定したTransitionsの順になります。triggerの4つの型が使えます。スクリプトでGetComponent<Animator>().SetTrigger("trigger_a");のようにすることで簡単にパラメータを制御できますが、Triggerだけは「一度有効化するとそのTriggerを使って遷移が行われたタイミングで無効になる」という性質を持っているので使い方に注意が必要です。あと、アニメーションの処理はUpdateとLateUpdateの間で行われるため、LateUpdateで変更したパラメータは次のFrameで判定されることになる点も覚えておくべきです。docs.unity3d.comサブステートマシンAnimatorのStateMachineは入れ子にできます。Machineを選択することで子のStateMachineが作られます。Layerというノードに遷移を繋げば親のStateMachineに遷移できます。»プロフィールUnityエンジニア。グラフィックスへの興味が強めです。Blur(渦巻ブラー)のポストエフェクトを実装する月別アーカイブはてなブログをはじめよう!halya_11さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。