2014年6月17日火曜日

NPCにパトロールをさせる

新しく配置したNPCが家の周りをパトロールするようにAIパッケージを作ってみようと思います。




 注意点があります。
 セーブデータをロード → ゲーム内で確認 → セーブ(※) → CKで変更 → セーブデータをロード → ゲーム内で確認
 という作業をした場合、 セーブ(※)のデータをロードしてもCKでの変更点が反映されない事があります。
 今回に限らず常にクリーンなセーブデータをロードした方が間違いありません。


1.新規パッケージの作成
 まず、NPC(フォロワー)を作成します。
 Object Window で作成したNPCを右クリック → Edit で Actorウィンドウを開きます。
 AI Packagesタブを開いて AI Package List 上で右クリック → New を選択します。
 新規Packageウィンドウが開くので、Packageタブの Package Template を Patrol に変更します。
 このウィンドウは開いたままでパッケージの内容を作成します。


2.パトロールコースの作成
 Render Window にパトロールさせたい場所を表示させます。
 Object window から XMarkerHeading をドラッグ&ドロップで配置します。
 XMarkerHeading はコピーして増やすより各々ドラッグ&ドロップした方が良いように思います。
 XMarkerHeading をダブルクリックして Referenceウィンドウを開きます。
 Linked Refタブで右クリック → New から Select Reference in Render Window をクリックします。
 Render Window で他の XMarkerHeading を指定します。Keywordは要りません。
 この作業を他の XMarkerHeading でも行います。今回は時計回りで繋げました。



3.パトロールコースをパッケージに登録する
 次に、開いたままにしておいた Packageウィンドウの設定をします。
 Patrol Start を選択して Linked Reference をクリックします。

 Package Targetウィンドウが開くので Specific Reference にチェックを入れます。
 Select Reference in Render window をクリックします。
 Render Window の中のスタート地点にしたいXMarkerHeadingをクリックします。


4.パッケージの実行時間の設定
 Scheduleタブを開きます。
 Hourが開始時間です。24時間表記なので、もし午後6時に実行させたいなら18時なので18を選択します。
 Durationが実行時間です。10時から12時までパトロールさせたい場合、2時間実行させるので2を選択します。


5.パッケージの名前を付ける
 パッケージは分かりやすい名前にした方が管理しやすくなります。
 パトロールなら「(任意の名前)Patrol10x2」としておけば「パトロールを10時から2時間のパッケージだな」と一目で分かります。

 他のパッケージを見てみると食事なら"Eat"と時間の"8x1"が付いているとか、自由行動なら"sandbox"と行動範囲の"512"が付いているなどの法則が見受けられます。


6.保存してゲーム内で確認する。
 ちゃんとパトロールしてくれるか確認してください。
 もしちゃんと動いてくれなかった場合は、
クリーンなセーブデータで確認する。
XMarkerHeading の Rinked Ref がちゃんと繋がっているか確認する.
Package の設定を確認する。
XMarkerHeading の位置をずらしてみる。
ナビメッシュを確認する。

など試してください。
 私の場合、以前自分で貼ったナビメッシュ上でうまく動いてくれない事がありました。



7.XMarkerHeadingでのアイドリング時間の設定

 これは必要だと思ったら設定してください。


 今はマーカー上も素通りしていますが、マーカー上で停止しながらパトロールしてくれるように設定もできます。
 XMarkerHeading の Patrol Dataタブを開き Patrol Data にチェックを入れます。
 Idle Time に任意の時間を入れます。5秒なら5.0000になります。
 停止させる場合、マーカーの向きも考えておきます。

今日はこの辺で。

0 件のコメント:

コメントを投稿