Advanced Turn Based Tile Toolkit for UE4の使い方 / メモ(TIPS) / 経路検索[Pathfinding]

Post 2021年8月12日木曜日

Advanced Turn Based Tile Toolkit TBS(ターン制ストラテジー) TIPS UE4 アセット

 ぜひ基礎編を開きながらご覧ください。


お約束
この記事作成にあたって使用した(主な)UE4バージョン4.26.1
このtoolkitのバージョンv3.0 (live 12.12.20)

今回はメモ(TIPS)です。

なのでゴールとかは特にありません。

このアセットでは、Grid Managerの「Run Pathfinding」という関数を使って、経路検索をしております。


中身はよくわかりませんが(オイ)。

「現在地」「移動可能コスト」「Pathfindingのタイプ(Simpleなど)」「対象のユニット」を指定して繋いでやれば、

そのターンに移動可能なタイルのindex番号たちそこまでの移動経路 が保存された"Map"の変数「Path Map」が出力されます。

なので、この「Path Map」からKeysを取り出してやれば、そのターンにそのユニットが移動可能なタイルのindexが一覧で取り出せてしまいます。


(BP_Abilityでの使用例)

Grid Manager以外で使用する場合は、Grid Managerをターゲットにつながないと動きませんので注意してください。



じゃあ、あとはこの移動可能なタイルのIndex一覧の中から、よさげなタイルを選んでAIにぶち込めば勝手に移動するやろと思ったそこのあなた。

移動経路が受け渡しできてないので、ユニットが急にワープします。しかも変なところから。

コンピュータが操作するユニットの移動を司どるのは「BP_Ability」の部分ですが、

この変数「Stored Path Map」がカギとなります。


こいつに、先ほど「Run Pathfinding」で出力されたPaths Map変数をセットしてやれば、うまく動くようになります。


補足

---

BP Ability のイベントグラフ


Move Target Indexが、移動するタイルのIndex番号となります。当然Pathの中に含まれていないとおかしな挙動になります。

Target Indexが攻撃対象のタイル。攻撃対象がないときは-1にしておかないと変な挙動をします。

Combined Valueは、この値の大小でAIの優先されるアクションが変わるようですが、0なら動きません。動いてほしい場合は0以上にするように設定します。

---

メモ おわり