State Machine Transition
サブステートマシン

State Machine Behaviour

State Machine Behaviour はスクリプトの特別なクラスです。通常の Unity スクリプト(MonoBehaviour)を実際のゲームオブジェクトにアタッチするのと同様の方法で、ステートマシン内の実際のステートに StateMachineBehaviour スクリプトをアタッチすることができます。これにより、ステートマシンに入るとき出るときと特定のステート内に留まっているときに実行するコードを書くことができます。これは、テストするためのロジックを書いたり、ステートの変更を検知する必要がないという意味です。

この機能を使用する具体例をいくつか上げると、

  • ステートに入った、または出たときに音声を再生する
  • 一定のテスト(例:地面判定)を、適切なステートでのみ実行する
  • 特定のステートに関連している特別なエフェクトを有効化、管理する

State Machine Behaviour の作成と追加は、ゲームオブジェクトに対してスクリプトを作成・追加する方法と同じです。ステートマシン内のステートを選択し、インスペクターの “Add Behaviour” ボタンを使用し、既存の StateMachineBehaviour を選ぶか、新しいスクリプトを作成してください。

Grounded ステートにアタッチされた Behaviour を持つステートマシン
“Grounded” ステートにアタッチされた Behaviour を持つステートマシン

State Machine Behaviour スクリプトには、Animator が異なるステート(またはサブステートマシン)へ遷移する、更新する、出るときに呼び出される多くのイベントに対する権限があります。また、Root モーションや Inverse Kinematic コールの扱いをできるようにするイベントもあります。

さらに詳しい情報についてはスクリプトリファレンスの State Machine Behaviourを参照してください。

State Machine Transition
サブステートマシン