▲前のページへ
次のページへ▼

敵探索経路の設定


【目次】
敵探索経路の基本
InnerProbe の配置
OuterProbe の配置


敵探索経路の基本

 敵AIにおけるプレイヤー探索の際、通行可能な道かどうかを判定するために「探索経路」をつけます。

 探索経路は、進入可能領域範囲を設定する「InnerProbe」と、進入禁止領域範囲を設定する「OuterProbe」に分かれます。
 どちらも似通った意味合いの名称になっていますが、MOエンジンの規定上、以下のような制約を伴います。

   ・InnerProbe(進入可能領域範囲)- Collisionにて構成される空間の隅
   ・OuterProbe(進入禁止領域範囲) - InnerProbe で構成される辺の中間点

 よって、今回のマップで示される壁・障害物に対する InnerProbe および OuterProbe の設置イメージは以下のようになります。
 (緑色の線が Collision 、青四角印が InnerProbe 、 赤丸印がOuterProbe です。
  実際には InnnerProbe および OuterProbe は「点」によって認識されますので、Unity上の形状や色は全く関係がありません)
  


InnerProbe の配置

 では進入可能領域範囲 InnerProve の指定から入りましょう。

■ ステージデータを開く
  先のステージ設定同様、SimpleStage.unity のシーンを使いますので、
  Assets/moenginesample/Scenes にある SimpleStage.unity をダブルクリックで開いてください。
  

  以下のようなポップアップウィンドウが表示されたら「Don't Save」をクリックしてください。
  

■ Navi オブジェクト枠に InnerProbe のオブジェクト枠を生成する
  Hierarchy タブに表示されている Navi に対し、InnerProbe のオブジェクト枠を用意します。
  Navi を右クリックし、ポップアップメニューから Create Empty を選択してください。
  

  生成できた GameObject の名称を InnerProbe に変更します。
  

■ InnerProbe コンポーネントを適用する
  新規作成した InnerProbe オブジェクトにコンポーネントを適用します。
  InnerProbe の Inspector タブから、Add Component ボタンを選択します。
  

  Add Component のプルダウンメニューから
    Script > MOengine.Tools.Scripts.Collision > Navigation Probe
  を選択してください。
  

  追加したコンポーネント Navigation Probe 枠内の Type 属性を「Inner(デフォルト値)」に設定します。
  以降、InnerProbeの子オブジェクトは全て Navigation Probe の Inner が適用されます。
  

■ InnerProve 内にオブジェクトを追加する
  続けて、Hierarchy タブの InnerProbe 内にCubeオブジェクトを追加します。
  (Cubeである必要はないのですが、便宜上Cubeで配置します。)

  Hierarchyタブ内の InnerProbe を右クリックし、ポップアップメニューから 3D Object > Cube をクリックしてください。
  

  作成した Cube に対し、右クリック > Duplicate を使い、Cube 1~Cube 19まで生成しましょう。
  

■ Cube ~ Cube 19 の配置を決定する
  生成した Cube に対し、inspector タブから以下の座標に配置されるように、「手入力」で設定してください。
    ※ 壁・障害物の平面よりも、若干ながら進入可能地域寄りにしています。
  X 座標 Y 座標 Z 座標
Cube 9.9 0 9.9
Cube 1 9.9 0 -9.9
Cube 2 -9.9 0 9.9
Cube 3 -9.9 0 -9.9
Cube 4 6.1 0 -6.1
Cube 5 6.1 0 -3.9
Cube 6 1.9 0 -3.9
Cube 7 1.9 0 -6.1
Cube 8 -1.9 0 6.1
Cube 9 -1.9 0 3.9
Cube 10 -6.1 0 3.9
Cube 11 -6.1 0 6.1
Cube 12 6.1 0 1.9
Cube 13 3.9 0 1.9
Cube 14 3.9 0 6.1
Cube 15 6.1 0 6.1
Cube 16 -6.1 0 -6.1
Cube 17 -3.9 0 -6.1
Cube 18 -3.9 0 -1.9
Cube 19 -6.1 0 -1.9

  上記操作によって、以下のような状態にしてください。
  


OuterProbe の配置

 続けて、同じ要領で進入禁止領域範囲 OuterProve の指定から入りましょう。

■ Navi オブジェクト枠に OuterProbe のオブジェクト枠を生成する
  まずは Hierarchy タブに表示されている Navi に対し、OuterProbe のオブジェクト枠を用意します。
  Navi を右クリックし、ポップアップメニューから Create Empty を選択してください。
  

  生成できた GameObject の名称を OuterProbe に変更します。
  

■ OutterProbe コンポーネントを適用する
  新規作成した OuterProbe オブジェクトにコンポーネントを適用します。
  OuterProbe の Inspector タブから、Add Component ボタンを選択します。
  

  Add Component のプルダウンメニューから
    Script > MOengine.Tools.Scripts.Collision > Navigation Probe
  を選択してください。
  

  追加したコンポーネント Navigation Probe 枠内の Type 属性を「Outer」に設定します。
  以降、InnerProbeの子オブジェクトは全て Navigation Probe の Outer が適用されます。
  

■ OuterProve 内にオブジェクトを追加する
  続けて、Hierarchy タブの OuterProbe 内にSphereオブジェクトを追加します。
  (Sphere である必要はないのですが、便宜上 Sphere で配置します。)

  Hierarchyタブ内の OuterProbe を右クリックし、ポップアップメニューから 3D Object > Sphere をクリックしてください。
  

  作成した Sphere に対し、右クリック > Duplicate を使い、Sphere 1~Sphere 19まで生成しましょう。
  

■ Sphere ~ Sphere 19 の配置を決定する
  生成した Sphere に対し、inspector タブから以下の座標に配置されるように、「手入力」で設定してください。
    ※ 壁・障害物の平面よりも、若干ながら進入不可地域寄りにしています。
  X 座標 Y 座標 Z 座標
Sphere 0 0 -10.1
Sphere 1 0 0 10.1
Sphere 2 10.1 0 0
Sphere 3 -10.1 0 0
Sphere 4 4.1 0 4
Sphere 5 5.9 0 4
Sphere 6 5 0 2.1
Sphere 7 5 0 5.9
Sphere 8 -5 0 -5.9
Sphere 9 -5 0 -2.1
Sphere 10 -5.9 0 -4
Sphere 11 -4.1 0 -4
Sphere 12 -5.9 0 5
Sphere 13 -2.1 0 5
Sphere 14 -4 0 5.9
Sphere 15 -4 0 4.1
Sphere 16 4 0 -4.1
Sphere 17 4 0 -5.9
Sphere 18 2.1 0 -5
Sphere 19 5.9 0 -5

  上記操作によって、以下のような状態にしてください。
  


敵探索経路情報を出力する

 ここまで編集した敵探索経路情報をデータとして出力します。

■ StageEditor を開く
  Unity のメニューから MoEngine > StageEditor をクリックします。
  

■ ステージデータの編集を開く
  StageEditor が開いたら、作成していた ステージID=1 のステージデータの[編集]ボタンをクリックします。
  

■ コリジョンデータを出力する
  敵の探索経路情報は衝突判定同様「コリジョンデータ」として扱われます。
  StageDataEditor ウィンドウが開いたら、[コリジョンデータを出力] ボタンをクリックしてください。
  

  所定の場所(Master)にSimpleStage.cbinが作成(上書き)され、
  以下のダイアログが表示されますので [OK] ボタンをクリックします。
  

■ StageDataEditor および StageEditor を閉じる
  コリジョンデータを出力し終えたら、StageDataEditor の右上の×ボタンをクリックして閉じます。
  

  同様に、StageEditor の右上の×ボタンをクリックして閉じます。
  


▲前のページへ
次のページへ▼