本文へスキップ

ナビゲーション・メッシュ

Lightship Navigation Mesh(ナビゲーション・メッシュ)には、シーン内の平面上にタイルのグリッドを作成して、仮想オブジェクトの動きを制御するシンプルなインターフェイスが搭載されています。 そのため、ARクリーチャーはこのグリッドを使って自然に空間を移動し、障害物(テーブルや椅子など)を避けて歩いたり、その上に飛び乗ったりすることができます。

Dotyを使ったLightship NavMeshLightship NavMesh上でDotyがジャンプしている様子

基本的な使い方

前提条件

快適にご利用いただくために、Unityシーンで Lightship Meshing を有効にして設定してください。 コライダーを含む平面や仮想オブジェクトを使用してナビゲーション・メッシュを作成することもできますが、最良の結果が得られるように、Lightship Meshingを有効にすることをお勧めします。

LightshipNavMeshの設定

LightshipNavMeshManager

LightshipNavMeshManager をシーンに配置すると、利用可能なメッシュに基づいてナビゲーション・メッシュが生成されます。 LightshipNavMeshManager には、開発者がナビゲーション・メッシュを微調整するための設定やスクリプトが用意されており、 パフォーマンスと品質のバランス、間隔、歩行可能な空間の検出方法を変更することができます。

Lightship NavMesh Managerの設定

例えば、 LightshipNavMeshManager でタイルサイズを変更すると、グリッドのレイアウトが変わります。 タイルサイズを小さくすると、パフォーマンスが低下する代わりに、詳細なナビゲーション・メッシュが作成されます。 一方、タイルサイズを大きくすると、パフォーマンスの低下を抑えるために、「歩行可能な」エリアが少なくなる可能性があります。 最適なタイルのサイズは、アプリケーションの特定の要件によって異なります。

デフォルトのタイルサイズを使用した場合のLightship NavMeshの様子タイルサイズを大きくした場合のLightship NavMeshの様子

便利なスクリプト

LightshipNavMesh には、さまざまなテストや基本的な実装を可能にするデフォルトのスクリプトが 3 つ用意されています: LightshipNavMeshRendererLightshipNavMeshAgent、 そしてLightshipNavMeshAgentPathRendererの3つです。


LightshipNavMeshRenderer を使用すると、開発者はナビゲーション・メッシュをレンダリングして、カスタムの可視化を作成できます。 上記の例のタイルは、この方法で表示されます。

Lightship NavMesh Renderer

LightshipNavMeshAgent は、エージェントを現在地から設定された目的地まで直線的に補間するデフォルトのエージェント実装です。 このスクリプトは、複雑なエージェントの動作を実装するための出発点として使用できます。 ゲームの種類や体験によっては、別のエージェントの実装が必要になる場合があります。

Lightship NavMesh Agent

LightshipNavMeshAgentPathRenderer では、エージェントの現在のパスを表示するサンプルパスレンダラーを提供しています。

Lightship NavMesh Agent Path Renderer

NavMeshサンプルでは、これらのスクリプトを使用して、レンダリングビジュアルがオンの状態でキャプテンDotyがメッシュをナビゲートする様子が示されています。 詳細については、 サンプルプロジェクト をご覧ください。

Dotyとデバッグ用レンダラーを使用したLightship NavMeshの例

ライトシップ・ナビゲーション・メッシュの使用方法については、ナビゲーション・メッシュの追加方法をご覧ください。