Navigation Lab は、ゲーム内で Gameware Navigation を正しく使用するための重要なツールです。統合と開発の中で、ユーザ独自の地形の NavData を生成するため、およびライブ接続を介してリアル タイムにゲーム内で実行されていることを視覚的にデバッグするために、Navigation Lab を使用します。
このページのチュートリアルには、次の 2 つの重要な目的があります。
bin/win<プラットフォーム>_<ツールセット>_release-md/NavigationLab.exe を開きます。Navigation Lab のメイン ウィンドウが表示されます。
Navigation Lab で提供されるさまざまなワークフローに関連するコントロールの概要については、これらの図のページを送ることで確認できます。いずれかのコントロールについての詳細な情報が必要になった際には、インタフェース内のツールチップを参照してください。
LabGame は Gameware Navigation にあらかじめ統合されている単純なゲーム エンジンを含む小さなコンソール アプリケーションです。Navigation Lab から送信されたコマンドを受信し、Navigation Lab でのコマンドの結果を、ユーザ独自のゲームに統合するのと同じライブ ビジュアル デバッグ システムを通じて表示します。
ローカル ホスト上の LabGame を起動して接続するには:
または、単純にサンプルを開くこともできます。サンプルの開始時に LabGame に接続していない場合は、ローカル ホスト上の LabGame を起動して接続するかどうかを確認されます。
LabGame は Gameware Navigation がサポートするすべてのプラットフォームで動作します。ネットワーク上の他のコンピュータまたはコンソールで LabGame を起動して、TCP を介して Navigation Lab と接続することができます。
表示されない場合は、Address フィールドにホストの IP アドレスを入力します。ポート番号はデフォルトのままにします。
実行中のゲームとの接続を開始すると、Remote application ツールボックスの Disconnect ボタンがハイライト表示されます。切断する場合や失敗した接続試行の再試行を停止する場合は、いつでもこのボタンをクリックすることができます。
LabGame への接続に成功すると、Navigation Lab に用意された SDK サンプルの参照を開始することができます。これらのサンプルは、メイン 3D ビューの左側の、Samples パネルに一覧表示されます。
avoidance フォルダを開き、FrontAvoidance エントリをクリックします。
Navigation Lab は新しいウィンドウを開き、サンプルの目的の説明、ディスク上のサンプルの場所、サンプルのコードを表示します。
コードは labopenfile、gamespawnbot、gamespawnboxobstacle、gamebotsetroute など、一連のコマンドで構成されていることに注目してください。サンプルを起動すると、先頭に lab の付いたコマンドが Navigation Lab で実行され、先頭に game の付いたコマンドがゲーム エンジン内で実行するために LabGame に送信されます。また、サンプルの途中でコマンドを自分で実行することもできます。後でさまざまな実行方法について説明します。
サンプルを起動するには、Start ボタンをクリックします。(LabGame にまだ接続されていない場合は、ローカル コンピュータ上で LabGame を開始するように求めるメッセージが表示されます。)サンプルをロードすると、街中の道路の俯瞰図と、端から端へと歩く 2 つの Bot (黄色の円柱)のグループが表示されます。Bot は移動しながら、他の Bot、動くオレンジ色の障害物、歩行不可能としてタグ付けされたいくつかの静的ボリューム(NavMesh を含まない、紫のアウトラインの領域)を避けるために軌道を即座に変更します。
3D ビューの真上にある Actions パネルには、さまざまな種類のオブジェクトをスポーンおよび操作するための、また、ゲーム エンジン内で何が行われるかをコントロールするためのさまざまなコマンドを提供する多くのタブが含まれています。
これらのアクションのほとんどは、Navigation Lab が LabGame に接続されている場合にのみ動作します。ここで説明するコマンドは主に、SDK サンプルを試す簡単な方法を提供することを目的としています。
ユーザ独自のゲームに接続した場合には、デフォルトのままではこれらのアクションは機能しません。3D ビューにどのデータをレンダリングするか、タイムラインの操作、記録、再生などは完全にコントロールすることができますが、Navigation Lab からゲームへデータを送れる可能性はあまりなく、ゲーム内で起こることを修正することができないかもしれません(ただし、LabEngine プロジェクトのコマンド フレームワークをユーザ独自のゲームに組み込むようにした場合は除く)。
主な例外は Generation タブです。このタブは Navigation Lab がゲーム エンジンに接続されていない場合にのみ機能します。
デフォルトでは、矢印キーまたはキーボードの左上のキー(英語キーボードでは WASD キー)を使用して前後左右に動かせるフライングカメラを使用します。ビューを回転するにはマウスを使用し、垂直軸を上下に動かすにはマウス ホイールを使用します。
別のカメラ モードおよび設定値を、メイン ウィンドウの上部にある Camera ツールバーで使用できます。「3D ビューでの移動」を参照してください。
Visual debug view でカテゴリを展開すると、選択したカテゴリに関する情報の特定の項目を表示および非表示にすることができます。3D ビュー内で選択されたインスタンスに対して何をレンダリングするかと、選択されていないインスタンスに対して何をレンダリングするかとを、別々に設定できることに注意してください。
情報量を節約するために、これらの項目はビジュアル デバッグ システムによりゲームから Navigation Lab へと送信されないことに注意してください。代わりに、ユーザ独自のゲームをデバッグする場合、ローカル コンピュータ上の場所からデータ ファイルを自動的に、または必要に応じてロードすることができますただし、この例では、起動時に Navigation Lab に必要な地形をロードして地形の NavData を生成するように指示するコマンドがビルトイン サンプルに含まれています。
ビジュアル デバッグ オブジェクトを選択するには、3D ビューで[Ctrl]キーを押しながらオブジェクトをクリックします。3D ビューでオブジェクトが緑の軸合わせされた選択インジケータ ボックスで囲まれます。選択されたオブジェクトについてのその他の情報が表示される場合があります。
選択したオブジェクトのプロパティのリストを表示するには、3D ビューの右側でそのパネルを開きます。
さらに、3D ビューの上にあるアクション パネルでは、SelectedBot タブのコマンドを使用して選択したオブジェクトをコントロールできます。このタブには、Bot をどこへ動かすかをコントロールするためのものや、Bot がどの程度のビジュアル デバッグ情報を Navigation Lab に送信するのか、Bot をゲームから完全に削除する、といったコマンドが用意されています。たとえば、Set target を選択して Bot を新しい目的地に移動させることや、Set route を選択してオブジェクトが追従する新しいウェイポイントのセットを作成することができます。
キーボード ショートカットがコマンドの後に表示されている場合は、コンテキスト メニューを開く代わりにショートカットを使用することができます。たとえば、場所をポイントして[T]キーを押すだけで、選択した Bot を新しい場所へ移動させることができます。
LabGame に接続されている場合、Bot、動的な障害物、TagVolume などの新しいオブジェクトをシーン内にスポーンすることができます。オブジェクトをスポーンするには、Actions パネルのいずれかのタブから適切なコマンドを選択します。
たとえば、新しい Bot をスポーンするには、Bots > Bot コマンドを選択します(または、単に[B]キーを押します)。NavMesh の任意の場所にカーソルをポイントして新しい Bot をスポーンするポイントを選択するように求められます。スペースバーを押してコマンドを完了します。Navigation Lab が LabGame に Bot を作成するコマンドを送信し、それが Log ウィンドウに表示されます。
LabGame が新しい Bot を作成し、ランダムな目的地への(または、ルートを持つ Bot をスポーンした場合は、指定したウェイポイント間への)パスを見つけて追従するように設定します。その後、その Bot についてのビジュアル デバッグ データを Navigation Lab に送り返し始めます。3D ビューに Bot が表示され、パスの最初のセグメントを追従し始めます。
アクション ボタンの横にある アイコンをクリックすることで、Actions パネルの多くのアクション、特にスポーン するアクション、を設定することができます。
たとえば、新しい Bot がデフォルトでチャネル ベースのパス フォローイング システムを使用するように設定できます。Bots タブで、Bot [b]アクションの右側にある アイコンをクリックします。Bot ウィンドウで、Trajectory タブを選択し、trajectoryMode コントロールを「Channel」に設定します。
これ以降はこのウィンドウを閉じてしまっても、新しい Bot をスポーンする際には、新しい Botは自動的にこの新しい設定を使用するようになります。元の設定に戻すには、ウィンドウを再度開いて Reset ボタンをクリックします。
スマート オブジェクトとは、カスタム動作をトリガしたり、カスタム アニメーションを再生する為に、キャラクタのパスの追従の仕方を自動的にコントロールするオブジェクトです。
通常、スマート オブジェクトは各ゲームに固有のもので、ゲームプレイのシナリオに関する詳細や、ゲーム内で使用されるアニメーションサブシステム、物理サブシステム、移動サブシステムに関する技術的な考慮事項に大きく依存します。Gameware Navigation SDK には包括的なスマート オブジェクトは含まれていません。ユーザ独自のスマート オブジェクトをできるだけ簡単に作成できるようにするためのツールを提供しています。
ただし、LabEngine には、エレベータ、ドア、ジャンプ ポイントなどの一般的なタイプのオブジェクトをシミュレートするいくつかのサンプル スマート オブジェクトが含まれています。Navigation Lab を LabGame に接続すると、これらのスマート オブジェクトをいつでもスポーンできるようになります。たとえば、次の手順は、Bot が屋根に上がるために使用できるスマート オブジェクトを作成します。
新しい NavGraph のエッジを示す緑の矢印が 2 点間に表示されます。NavGraph の詳細については、「NavData」を参照してください。
また、新しい NavGraph はスマート オブジェクトに関連付けられたカスタム データ値で自動的にタグ付けされます。表示される緑の円弧は、キャラクタがパスで NavGraph を使用した場合にスマート オブジェクトがキャラクタに追従させるモーション パスを示しています。
関連するスマート オブジェクトの場所をビジュアル化するために、紫の長方形で 2 つの屋根を接続する別の新しい NavGraph エッジが表示されます。
Bot はジャンプ オブジェクトと板を含む新しいパスをプランします。パスに追従する中で、ジャンプなどのスマート オブジェクトが Bot の動作を完全にコントロールしてカスタム モーション パスに追従させるたびに、Bot が青くなります。板を渡るときには Bot が青くならないことに注意してください。板はキャラクタの動作を完全にはコントロールしません。デフォルトのパス フォローイング システムを使用して、キャラクタを NavGraph に沿って板のもう片方の端まで移動させます。
スマート オブジェクトは、NavMesh の一部の領域での動きをコントロールすることもできます。例:
領域の NavMesh はスマート オブジェクトの存在を反映するために自動的に修正されることに注意してください。Spawn Lava コマンドはスマート オブジェクトに関連付けられたカスタム データ タグで領域をマークする TagVolume を作成します。このスマート オブジェクトにより、Bot がタグ付けされた領域をパスの中で使用するときは常に、すべての Bot がその領域をジャンプして越えるようになります。たとえば、次のイメージでは、青の Bot はスマート オブジェクトによって計算されたモーション パス(赤で表示)に沿ってジャンプをしている最中で、その下の黄色の Bot はタグ付けされた領域に近づいてきています。
LabGame と LabEngine のスマート オブジェクトのその他の例については、Samples パネルの smartobjects カテゴリにあるサンプルを参照してください。
ユーザ独自のゲームでユーザ独自のスマート オブジェクトを実装する際の詳細については、「スマート オブジェクトを作成する」を参照してください。
Navigation Lab を使用してユーザ独自のゲーム レベルの NavData を生成し、LabGame に送信して、サンプル フレームワークによって提供されるコマンドを使用して Bot、障害物、そしてスマート オブジェクトさえもユーザ独自の地形に直接スポーンすることができます。これは高速プロトタイピングや、単にサンプルを試す際に便利です。
ユーザ独自の地形に対する NavData 生成の詳細については、「統合フェーズ 2: 最初の NavData を生成する」を参照してください。
data¥NavigationLab¥examples サブフォルダには Samples パネルに一覧表示されるすべてのサンプルのソース コードがあります。各サンプルはそれぞれの.LabSample ファイルに入っています。そのファイルにはNavigation Lab で実行されたり、LabGame に送信されて実行されるコマンドのリストが含まれます。
このディレクトリ内に新しい .LabSample ファイルを作成するか、既存の .LabSample ファイルをコピーしてそのコマンドを修正することで、ユーザ独自のサンプルを作成することができます。
Samples パネルのツリー ビューには examples フォルダの現在の内容が反映されるため、新しいファイルを簡単に Navigation Lab 内で開くことができます。