fc2ブログ

凛(kagring)のUE5/UE4とゲーム制作と雑記ブログ

2016 年から UE4 / 2021年から UE5 を触り始めました。勉強したもののメモ用ブログです。ゲーム制作に関するメモや雑記とか色々あります。C++ での Qt、Unity もほんの少しあります。

PREV | PAGE-SELECT | NEXT

≫ EDIT

UE5/UE4 ナビゲーションメッシュ(Navi Mesh)を使った目的地への経路を取得する(Find Path to Actor Synchronously、Find Path to Location Synchronously)

ナビゲーションメッシュ(Navi Mesh)を使った目的地への経路を取得する方法です。

こちらのサイトを参考にさせていただきました。

・【UE4】AIを良い感じに歩かせたい
https://qiita.com/Dv7Pavilion/items/cb5c451d47bc39808025

「どの経路を通るべきか」という情報は必須なので
Find Path to Actor Synchronouslyノードで目的地までの経路を取得し保持しておき、
現在、どの曲がり角へ向かっているかを記録するためのインデックスを初期化します。


というわけで「Find Path to Actor Synchronously」ノードを使うことで
ナビゲーションメッシュ(Navi Mesh)を使った目的地への経路を取得
することができそうです。

この「Find Path to Actor Synchronously」ノードはアクター(Actor)を指定できるのですが
位置を指定する「Find Path to Location Synchronously」というノードもあるようです。

アクター(Actor)を指定する「Find Path to Actor Synchronously」ノード。
ナビメッシュのパスポイント取得000
「Path Start」には開始位置を指定します。
「Goal Actor」には目標となるアクター(Actor)を指定します。
「Tether Distance」には目標との終了距離を指定します。

このノードについてはアクター(Actor)を指定できるのですが、
もしもアクター(Actor)が移動する場合は、定期的にこのノードを呼び出して更新しないといけないようです。
※目標位置が移動するので当然といえば当然ですが…

位置(Location)を指定する「Find Path to Location Synchronously」ノード。
ナビメッシュのパスポイント取得001
「Path Start」には開始位置を指定します。
「Path End」には目標となる位置を指定します。

ナビゲーションメッシュ(Navi Mesh)が存在しなかったり、
どこにも移動できない場合は「Return Value」が無効
となるようです。
ナビメッシュのパスポイント取得002
こんな感じで有効かどうかのチェックと、経路ポイントを取得して扱うのがよさそうです。

自前で独自に移動を制御しようと思わなければあまり使う機会はないかもしれませんが
色々とコントロールしようと思った場合には使えるのかなと思いました。

| UE5 | 10:00 | comments:0 | trackbacks:0 | TOP↑

COMMENT















非公開コメント

TRACKBACK URL

http://kagring.blog.fc2.com/tb.php/769-41d3115f

TRACKBACK

PREV | PAGE-SELECT | NEXT