0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[UE5]StateTreeを勉強する 序文

Posted at

UnrealEngineで、NPCの行動AIを作って制御したい時に使えるのがStateTree(とBehaviorTree)である。
例を挙げるなら、リオレウスがハンターの位置を見ながら炎を吐いたり、しっぽを振りまわしたり、飛行状態に移ったりという制御が作れる。もっともモンハンはUEを使用してはいないのだが。

公式によると
https://dev.epicgames.com/documentation/ja-jp/unreal-engine/state-tree-in-unreal-engine

StateTree は、動作ツリーの セレクター とステートマシンの ステート および 遷移 を組み合わせた汎用の階層型ステートマシンです。

と書かれているが、これでどういうものかピンとくる人ばかりではないだろう。少なくとも筆者にはわからなかった。なぜならこの文章はステートマシン(有限オートマトン)の知識を前提としている文章だからだ。

そういわれると余計分からなくなるかもしれない。知らない横文字の登場は思考を停止させる。ので。
https://www2.denshi.numazu-ct.ac.jp/lego/NXT/nxtOSEK/3_jissen/state_machine.html
どこぞの大学の講義資料から持ってきた。基本的にステートマシンは◇と→で書ける。

  • 複数の状態を定義する。
    リオレウスなら、立ち、ブレス、突進、しっぽ攻撃、飛行などと言った感じだろう。
  • 状態の間に矢印がある。
    例えば立ち状態から突進をする。矢印でつながっていない行動(状態)はその時点では使えない。
  • 条件に応じて矢印を選んで動く。(ただし、完全ランダムも可)
    遠くにいるときはブレス攻撃や突進攻撃で距離を詰めるし、横に陣取られているときはしっぽ攻撃を優先する。

リオレウスを全世界の人が知っている前提で例を書いたが、ステートだの遷移だのよりは分かりやすいだろう。

次回からは筆者が実際に勉強した内容を報告する形で書いていく。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?