ナビゲーション・メッシュ
Lightship Navigation Mesh(ナビゲーション・メッシュ)には、シーン内の平面上にタイルのグリッドを作成して、仮想オブジェクトの動きを制御するシンプルなインターフェイスが搭載されています。 そのため、ARクリーチャーはこのグリッドを使って自然に空間を移動し、障害物(テーブルや椅子など)を避けて歩いたり、その上に飛び乗ったりすることができます。
基本的な使い方
前提条件
快適にご利用いただくために、Unityシーンで Lightship Meshing を有効にして設定してください。 コライダーを含む平面や仮想オブジェクトを使用してナビゲーション・メッシュを作成することもできますが、最良の結果が得られるように、Lightship Meshingを有効にすることをお勧めします。
LightshipNavMeshの設定
LightshipNavMeshManager
LightshipNavMeshManager
をシーンに配置すると、利用可能なメッシュに基づいてナビゲーション・メッシュが生成されます。 LightshipNavMeshManager
には、開発者がナビゲーション・メッシュを微調整するための設定やスクリプトが用意されており、 パフォーマンスと品質のバランス、間隔、歩行可能な空間の検出方法を変更することができます。
例えば、 LightshipNavMeshManager
でタイルサイズを変更すると、グリッドのレイアウトが変わります。 タイルサイズを小さくすると、パフォーマンスが低下する代わりに、詳細なナビゲーション・メッシュが作成されます。 一方、タイルサイズを大きくすると、パフォーマンスの低下を抑えるために、「歩行可能な」エリアが少なくなる可能性があります。 最適なタイルのサイズは、アプリケーションの特定の要件によって異なります。
便利なスクリプト
LightshipNavMesh には、さまざまなテストや基本的な実装を可能にするデフォルトのスクリプトが 3 つ用意されています: LightshipNavMeshRenderer
、 LightshipNavMeshAgent
、 そしてLightshipNavMeshAgentPathRenderer
の3つです。
LightshipNavMeshRenderer
を使用すると、開発者はナビゲーション・メッシュをレンダリングして、カスタムの可視化を作成できます。 上記の例のタイルは、この方法で表示されます。
LightshipNavMeshAgent
は、エージェントを現在地から設定された目的地まで直線的に補間するデフォルトのエージェント実装です。 このスクリプトは、複雑なエージェントの動作を実装するための出発点として使用できます。 ゲームの種類や体験によっては、別のエージェントの実装が必要になる場合があります。
LightshipNavMeshAgentPathRenderer
では、エージェントの現在のパスを表示するサンプルパスレンダラーを提供しています。
NavMeshサンプルでは、これらのスクリプトを使用して、レンダリングビジュアルがオンの状態でキャプテンDotyがメッシュをナビゲートする様子が示されています。 詳細については、 サンプルプロジェクト をご覧ください。
ライトシップ・ナビゲーション・メッシュの使用方法については、ナビゲーション・メッシュの追加方法をご覧ください。