タスク1.4 - A*ナビゲーションを追加する

タスクの概要

このチュートリアルタスクでは、A*ナビゲーションを使用して、患者とスタッフメンバーがオブジェクトや平面図の壁を通り抜けないようにする方法を学習します。A*ナビゲーションを使用すると、患者とスタッフメンバーが通れる場所と通れない場所を指定することができます。

作業が完了すると、シミュレーションモデルは次の画像のようになります。

ステップ1 A*ディバイダーを追加する

このステップでは、一部のA*ディバイダーをモデルに追加します。A*ナビゲーションは、人があるオブジェクトから別のオブジェクトまで歩くときに使用可能な最短経路を計算するツールです。ディバイダーを配置することで、人が通り抜けてはならないエリアを通り抜けられないようにします(オブジェクトや部屋の壁を通り抜ける場合など)。A *ナビゲーターは、これらのディバイダーを考慮して人が移動するために最適な経路を計算します。詳細については、「A*ナビゲーションの使用」を参照してください。

ディバイダーの追加が完了すると、モデルは次の画像のようになります。

A*ディバイダーを追加するには:

  1. 3Dモデルが開いていてアクティブであることを確認してください。[A*ナビゲーション]グループのライブラリで、[グリッド]オブジェクトをモデルにドラッグします。
  2. A*グリッド](A*ディバイダーを取り囲む大きな青色のバー)をクリックして選択します。
  3. [プロパティ]の[ノード間隔x]ボックスと[ノード間隔y]ボックスで、現在の数値を削除して代わりに「0.50」と入力します。ディバイダーとグリッド線は小さくなることに注意してください。
  4. 赤色のサイズ調整矢印を使用して、平面図の周りのグリッドのサイズを変更します。
  5. 3Dモデルが開いていてアクティブであることを確認してください。[A*ナビゲーション]グループのライブラリで、ディバイダーオブジェクトをクリックして[ディバイダーを作成]モードに入ります。[ディバイダーを作成]モードでは、マウスポインターが[ディバイダー]アイコン に変わります。
  6. シミュレーションモデル内で、ディバイダーの始点を配置する位置を見つけます。モデル内のその位置をクリックし、マウスポインターを別の方向に動かすと、ディバイダーの作成を開始します。ディバイダーの端が、開始時を基準にして希望するおおよその長さ、角度、半径になるまで、マウスポインターの位置を調整します。マウスをもう一度クリックすると、ディバイダーの作成が終了します。Escを押して[ディバイダーを作成]モードを終了します。
  7. これらのディバイダーはシミュレーションモデルの壁としても機能します。まず、フロアプランの外壁(建物全体を囲む壁)を作成します。ディバイダーを移動またはサイズ変更する必要がある場合は、終点をクリックして別の位置にドラッグします。
  8. ディバイダーを追加すると、A*ナビゲーターが自動的にシミュレーションモデルの中央に追加されることに注意してください(青色のAの横に金色の星印が表示されます)。A*ナビゲーターを別のエリアにドラッグして、平面図の外側に配置します。
  9. ディバイダーを平面図の内壁に追加する前に、[A*ナビゲーター]をダブルクリックして、そのプロパティウィンドウを開きます。[ビジュアル]タブで、[グリッドのノードを表示]チェックボックスをオンにします。[OK]ボタンをクリックして変更を保存し、ウィンドウを閉じます。
  10. 建物の内壁にさらにディバイダーを追加します。ディバイダーをフロアプランの壁に正確に配置する必要はありません。可能であれば、黄色のA *グリッドの線と線の間にディバイダーを配置することがより重要です。これらのディバイダーはグリッド上のあるポイントから別のポイントへの移動を防ぐため、グリッドの上よりもグリッドの間に配置する方がより良く機能します。
  11. これで、ディバイダーが追加されたため、黄色のガイドラインは不要になりました。[A* ナビゲーター]をダブルクリックして、そのプロパティウィンドウを開きます。[ビジュアル]タブで、[グリッドのノードを表示]チェックボックスをオフにします。[OK]ボタンをクリックして変更を保存し、ウィンドウを閉じます。

これで、A*ディバイダーを追加したため、今度は、モデル内の3DオブジェクトをA*ナビゲーションシステムに追加します。次のステップでは、オブジェクトを追加します。

ステップ2 3DオブジェクトをA*ナビゲーターに接続する

このステップでは、モデルのオブジェクトのほとんどをA*ナビゲーターに接続します。場所オブジェクトと小道具オブジェクトをA*システムに接続することによって、スタッフと患者が通り抜けられないオブジェクトの周りに小さな空きエリアが作成されます。スタッフメンバーをA*システムに接続すると、モデルの周りを移動するときにA*を使用するように指示されます。3DオブジェクトでA*ナビゲーションシステムが使用されているときの異常動作を回避するために、3Dオブジェクトの移動しきい値をチェックする方法も学習します。

3DオブジェクトをA*ナビゲーターに接続するには:

  1. Aキーを長押しして接続モードに入ります。接続モードに入ると、マウスポインターが、チェーンリンクシンボルが横に付いたプラス記号()に変わります。
  2. 接続モードになったら、[A*ナビゲータ]をクリックします。[Nurse Station B1]をクリックして、2つのオブジェクト間の接続を作成します。
  3. これらの次のステップでは、メンバーをA*ナビゲーションシステムに追加する別の方法を示します。[A* ナビゲーター]をダブルクリックして、そのプロパティウィンドウを開きます。
  4. メンバー]グループの[セットアップ]タブで、現在のメンバービューとして[すべてのメンバー]が選択されていることを確認します。
  5. 追加]ボタン をクリックして、タイプ別に整理されたモデル内のすべてのオブジェクトのメニューを開きます。
  6. 場所]、[マルチロケーション]、および[スタッフ]カテゴリをクリックします。その後で、[選択]ボタンをクリックします。これらのタイプのすべてのオブジェクトがメンバーリストに表示されていることに注意してください。

ステップ3 移動しきいを調整する

このステップでは、モデル内のいくつかのオブジェクトの移動しきい値を表示し、それに応じてオブジェクトの位置を調整します。このステップで使用する[トラベルの範囲を表示]チェックボックスは、A*の内部で使用されるロジックのビジュアル表示です。

オブジェクトの移動しきい値を表示して、それらを調整するには:

  1. A* ナビゲーター]をダブルクリックして、そのプロパティウィンドウを開きます。[ビジュアル]タブで[移動しきい値を表示]チェックボックスをオンにします。[OK]ボタンをクリックして変更を保存し、ウィンドウを閉じます。
  2. ExamTable1オブジェクトをクリックして選択します。オブジェクトを取り囲むいくつかの赤色の点と青色の点で表されるオブジェクトの移動しきい値を確認できるようになったことに注意してください。
  3. 移動しきい値のいずれの点も赤い移動のしきい値を超えないようにします(青い点がディバイダーの先まであります)。たとえば、次の画像は椅子の赤い移動しきい値がディバイダーを超えている状態を示しています。
  4. ExamTable]をディバイダーから少し離れた位置にドラッグし、赤色の移動しきい値がディバイダーを越えないようにします。赤い移動しきい値がディバイダーの内側にある場合、問題はありません。
  5. すべての[診察台]で前のステップを繰り返し、赤色の移動しきい値の点が各部屋の壁を越えないようにします。
  6. A*ナビゲーションシステムのビジュアルガイドをオフにする場合は、[A*ナビゲータ]をダブルクリックして、プロパティウィンドウを開きます。[ビジュアル]タブで、すべてのチェックボックスをオフにします。

シミュレーションモデルを保存してから、リセットして実行します。

これでモデルを実行すると、患者と看護師はオブジェクトや壁を通り抜けなくなりました。RNは、患者と一緒に患者バイタルエリアに移動する途中で平面図内の机や壁の周囲を歩くことに注意してください。

結論

ここでは、患者がフロー内のすべてのステップを完了する医療クリニックのシミュレーションモデルを作成しました。次のチュートリアルタスクでは、患者のフローとは無関係のタスクをスタッフに与える方法を調査します。「チュートリアルタスク1.5 - 独立タスクを作成する」に進んでください。