littlewing

人間とコンピューターとメディアの接点をデザインするために考えたこと

Unity Bolt Tips4.State Machine を利用する

Bolt Tips 連続記事です

前回の続き

BoltではState Machineを記述することができます。

State Machine とは?

  • State Machine は 1つ以上の状態(State)と 状態間の遷移(Transition)で構成されます。
  • 状態は、特定のアクションを実行し続けます。
  • 状態は、特定のセンサーからのイベントを検知した際に、別の状態へ遷移します。

参考:状態機械

f:id:pigshape:20200905213256p:plain
StateMachineの例(敵キャラの動作)

BoltにおけるStateMachineの作成

  1. Projectタブで、右クリック > Create > Bolt > State Macro で作成できます。

  2. 初期状態ではStateGraphには何もありません。
    右クリック > Create Flow State で最初のStateを作成します。
    f:id:pigshape:20200905213752p:plain

  3. ダブルクリックすると、Stateの中身を記述できます。

    • On Enter State (Stateが開始されたとき)
    • Update (そのState中に毎フレーム呼ばれる)
    • On Exit State (Stateが終了する時) のUnitを起点として、それぞれの記述ができます。
      f:id:pigshape:20200905214049p:plain
  4. 別のStateはまた、右クリック > 'Create Flow State' で作成できます。 最初のStateをCtrlを押しながら選択し、2つ目のStateへカーソルを動かすと、Transition を作成できます。
    f:id:pigshape:20200905214436g:plain

  5. Transition の矢印をダブルクリックすると Transitionの記述ができます。
    最初は Trigger Transition のUnitがあるだけです。
    f:id:pigshape:20200905214724p:plain

  6. 例えば以下のような記述を行うことでSpaceキーが押されたら遷移するという記述を行うことができます。 f:id:pigshape:20200905215004p:plain

AnyState

  • AnyStateのUnitを利用すると、どのStateであっても、遷移のトリガー条件を満たせば、他の状態を呼び出すことができます。
  • これらを利用して複数のStateを同時に実行することも可能です。
    f:id:pigshape:20200905215443p:plain

呼び出し順番

また、On Enter State の呼び出し順番などは、以下のブログの方が調査結果をまとめているので参考になると思います。

note.com

続き

littlewing.hatenablog.com