【目次】
敵探索経路の基本
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 の右上の×ボタンをクリックして閉じます。
