検証バージョン: UE4.26.0
はじめに
Unreal Engine4のエンジンコードには、ナビゲーションの機能をシミュレーションするためのスタンドアローンのツールが含まれています。このツール自体はシミュレーションデモ用アプリケーションであり、あくまで調整の目安や参考程度に利用することをお勧めします。アプリケーションは以下のパスに配置されています。
[実行ファイル]
Engine/Source/Runtime/Navmesh/RecastDemo/Bin/Recast.exe
下の図はUE4エディタ上で作成したコリジョンをエクスポートしてアプリケーション上で展開している一例です。このアプリケーションはシミュレーションのテストを行うための多数のUIを備えていています。
できること
このアプリケーション上で出来る事は以下のような内容です。このアプリに関するドキュメントはないので、もし利用する場合はとにかく触って動かして頂くと良いかと思います。
[できること]
・ナビメッシュ生成シミュレーション
ナビメッシュの生成パラメータを調整することで、ナビメッシュの精度を確認/調整のシミュレーションができます
・パス検索テスト
2点間のパス検索のテストを行い、パス形成できることや最短ルートを確認することができます
・群衆テスト
群衆テスト用のオブジェクトをパス移動させることで、簡易的な群衆移動のパフォーマンスと精度のシミュレーションができます
・障害物テスト
障害物に対するナビメッシュ生成やパス検索での巡行テストができます
以下の図はパス検索と群衆シミュレーションのテストの様子を示すものです。左図はパス検索のシミュレーションで、赤と緑のオブジェクトの2点間をパス検索のテストを行っています。右図は群衆シミュレーションで、白い円柱オブジェクトを群衆エージェントとし、半径や高さを調整しながら移動する様子を確認することができます。オレンジ色のグラフはパフォーマンスを示します。
下図はナビメッシュの生成シミュレーションをしたものです。図ではCellSizeを違いによるナビメッシュの生成され方を比較したもので、この図ではどちらも傾斜面に対してナビメッシュが生成されますが、カバーすることができる高さがCellSizeによって変わって来ることが確認できるかと思います。
UE4Editorとの連動
このアプリケーションはナビメッシュ生成のシミュレーションを行うための.objファイルでインポートすることができます。ここでインポートしたファイルをナビメッシュコリジョンの代用として、そのジオメトリ上にメッシュを生成します。
UE4Editorではこのアプリにコリジョンを出力するために、コンソールコマンドExportNavigation
を使用することができます。このコンソールコマンドは、RuntimeGenerationがStatic以外の場合に.objデータとしてオブジェクトのデータを出力することができます。ファイルは[Project]/Saved/
の下に出力されます。
ナビメッシュのシミュレーションについて、エディタ上で検証しにくかったり調整に困った場合などは、一度このアプリケーションを使ってみて予測をしたりしてみるのも良いかもしれませんね。使い方(操作)に少しクセがありますが、使い始めのハードルはとても低いので、ナビメッシュの動作に興味がある人は一度触ってみることをおすすめします。