https://dev.epicgames.com/documentation/ja-jp/unreal-engine/statetree-quick-start-guide
前回(6項まで)は止まった的が壊せるだけだったが、周回するコースを設定して動く的に変えるのが今回の目的である。
スプラインパスの準備と設置
書いてある通りにやればよく、補足するような内容もないので割愛する。ちなみに、地面や壁にめり込むようなパスも設定しても問題なく動くようだ。
State Tree Evaluator
Evaluatorは評価者の意。 State Tree Evaluatorはステートツリーで使うパラメータを登録する用途で使う。今回は設置したスプラインパスを探してStateTree側から参照できるようにする。
STE_GetSplineのOutputに探してきたSplineActorを置く。設定の仕方はContextと同じ。
ST_ShootingTargetのEvaluatorsに設定することでタスクでSplineActorを取得できる。
ここでセットしたStateTreeEvaluatorはStateTreeが動いている最中は常駐しているため、Tick処理に重い処理を書かないようにしたい。(このサンプルはStateTree起動時イベントのみ記述があるため問題ない)
MoveAlongSplineタスクの内容
Evaluatorsから受け取ったスプラインパスに沿ってActorを動かすのがこのタスク。ガイドには何にも説明がないので補足しておく。
Distanceはスプラインパスに沿って動いた距離、MovementSpeedは動かす速度を指定している。
処理冒頭はスプラインパスの起点からDistance分進んだ座標にActorを移動している。Get Location at Distance Along SplineのCoodinate SpaceがLocalになっていると意図した動作にならないため注意。
この後はDistanceがスプラインパスの全長を超えていないかを確認。このタスクは1周すると完了扱いになる。
完了しない場合はMovementSpeed分Distanceを加算する。よってMovementSpeedはフレームごとに進む距離を指す。fpsの変動があるとActorの動く速度に変動がでる。(つまり、あんまりいい作りではない)
完了する場合はDistanceをリセットしてタスクを終わらせる。
これでクイックスタートガイドは完了になる。今後も他の公式ガイドについても触れつつ、StateTreeを深堀していく。