Papyrus による世界の創造 - Skyrim MOD 制作

ナビゲーションメッシュに関するメモ

最終更新: 2015-04-02 (木) 21:36:12 (1357d)

ナビゲーションメッシュと実際のフィールドに不一致が合った際の NPC の挙動を観測し、実際にどう動くのか、結果をメモとして残します。

設置物の概要を以下にまとめます。

記号設置物種類
 未設置-
NorRmSmMid01
*1NorRmSmWallFron01, NorRmSmWallSide01, NorRmSmCorOutL01, NorRmSmCorOutR01
マーカーPatrolIdleMarker
スキーヴァーEncSkeever

サンプルを使って検証する際は、以下のコンソールコマンドを実行してください。

tdetect
coc example

参考までにコンソールコマンドの意味は以下の通りです。

コマンド名略称概要
ToggleDetection
敵AI索敵モード切り替え
tdetect敵の索敵機能を切り替える。off にするとプレイヤーが敵に発見されなくなり、on に戻すと発見されるようになる。ToggleFlyCamera を利用せずにプレイヤーを操作して直接世界の観察ができるようになる。
CenterOnCell
セル移動
coc指定したセルに移動。セルに COCHeadingMarker もしくは XMarker や XHeadingMarker が設置してあれば移動場所はマーカーに準ずる。

ナビゲーションマップでは行ける場所に壁があった場合

サンプルプラグイン

舞台

以下のような状況を想定します。

ナビゲーションメッシュは、中央の壁がない状態で既に床全体に張り巡らされているものとします。方法はリキャストベースとしました。

スキーヴァーは、Linked-Ref によって下のマーカーから上のマーカーに向かうよう設定します。

結果

  • 壁に向かって直進し、壁にぶつかるも進もうとした。
  • 進めず逆を向くことも合ったが、何度も通りぬけを試みた。
  • そのままかと思ったが以外な展開が…。
    • スキーヴァーは壁に埋まり気づいたら通り抜けていた。
    • 下に落ちなかったのは偶然なのか必然なのかについてまではわからない。

ナビゲーションマップでは行ける場所に穴があった場合

サンプルプラグイン

舞台

以下のような状況を想定します。

ナビゲーションメッシュは、中央の床がある状態で既に床全体に張り巡らされているものとします。方法はリキャストベースとしました。

   
   

スキーヴァーは、Linked-Ref によって下のマーカーから上のマーカーに向かうよう設定します。

結果

  • 壁に向かって直進し、虚しく落ちていった。
  • そのままかと思ったが以外な展開が…。
    • すぐに浮上し戻ってくるとともに少し前進した。
    • 数回落ちるも、浮上を繰り返し、穴の向こうに到達した。