DrunkenHuntsmanExtension 更新作業中

2015-01-15_00011

 

v1.2で不満だった点を解消するべく作業を行いました。
Actorがドアから出入りを繰り返す現象も環境によっては出続けていたので、その改善策もとりました。

■NavMeshの警告がCKで出る・・・!?

Actorの出入り現象は、私の環境では直ったのですが、まだDLしていただいた方の中で起こっているようなので再度navMesh周りで調査。
気になる点はCKでこのMODを読み込ませると必ず
PATHFINDING: NavMesh in cell [XXXXX] should be refinalized, there are navmesh bounds missing
というエラーが出るようになっていたことです。
XXXXXはセルの名前が入ります。
この症状をぐぐってみると「方向音痴のSkyrim」さんに関連する良い記事がありました。

要約すると「バニラのNavMeshが消えて、新しいNavMeshに置き換わっている。IDが変わってしまっているよ!」というものです。
skyrimのシステムはIDが変わると動作不良を起こすものもあるため、今回の「Actorがドアから出入りを繰り返す現象」もこのエラーが原因かもしれません。
てなわけで、修正を加えて現在のNavMeshのIDをバニラのIDに直してエラーがでなくなりました。あとは新VerをUpした後に症状が出ている方の報告待ちとなります。これで治らなかったら、もうお手上げかもしれない・・・。

■地下を増やしたけど地下が使われない!

ベッドしか置いていない地下に机を設置したのですがMODで追加したNPCが地下を利用してくれません。
NavMeshがうまく適用できていないと思ったのですが、睡眠パッケージを搭載したフォロワーや、バニラNPCがまれに地下に出向くためNavMeshではなさそう。
椅子などのFunitureを検知する範囲である、PackageのRadius数値をいじってもかわらず、手詰まり感満載。
諦め半分で調べてみると、GameSettingの項目に
「fSandboxCylinderBottom」「fSandboxCylinderTop」
というものがあることが判明。これはskyrim全体でNPCが物体を検知する範囲を指定する項目だそうで、デフォでは上下に関する物体検知範囲は上が150、下が-100と、とても狭い!
Bottom側の数値を-576に指定したところ、NPCが地下に行くではありませんか、成功です!

fsandboxcylinder
▲Gameplay>Setting から「fSandboxCy」でフィルタを掛けると見つかります。

ただ、一部のフォロワーしか地下に降りないため、その部分は各フォロワーのパッケージにせっていされたRadiusに依存するみたい。
ということは椅子などの距離をフォロワー達に近づけなくてはなりません。

…よし、エルリンドルに借金してもらって、再度改築だな。

■ザワザワ感がなくて寂しい

酒場のザワザワ感がほしいので、ざわざわしている環境音を常に流すようにしました。セル内のNPCを数える関数がSKSEでないと使えないみたいで、今のところそこまでする予定はないため閑古鳥が鳴いていてもざわざわします。
また、床に数個トリガーボックスを設置して、それを踏むと瓶の音等酒場でありがちな効果音を別途鳴らすように設定しました。dhextriggerbox
▲CKの画面。トリガーボックスは黄色い立方体のことで、ここを通るとスクリプトで音を鳴らします。

各トリガーボックスには同じスクリプトを仕込んでいます、スクリプトは簡単で、

Scriptname _DHExSoundActivateScr extends ObjectReference

SOUND Property SelectSound Auto
SOUND Property SelectSound02 Auto
SOUND Property SelectSound03 Auto

Event OnTriggerEnter(ObjectReference akTriggerRef)

int randomBASE = Utility.RandomInt(0, 15)

if randomBASE == 13

SelectSound.play(self)

elseif randomBASE == 14

SelectSound02.play(self)

elseif randomBASE == 15

SelectSound03.play(self)

endif

EndEvent

Event OnTriggerLeave(ObjectReference akTriggerRef)

EndEvent

トリガーボックスは、そこにActorが「入った時(OnTriggerEnter)」及び「出た時(OnTriggerLeave)」にイベントが発生します。
今回はOnTriggerEnter時に音を鳴らすようにして、Utility.RandomIntで0から15までの数字をランダムで生成し、その数値が13-15の間であればプロパティで指定した効果音を鳴らすという感じです。

これだけでかなりルイーダの酒場感がパない。
オラわくわくしてきたぞ!

■酒場っつったら吟遊詩人だろ

専用ActorをCKで作って、Factionに「BardSingerFaction」「JobBardFaction」を追加するだけで歌ってくれるはずが、歌わない。

話しかけると「俺吟遊詩人大学を出たんだぜ、へへ」とかしか言わない。何なのこいつ・・・。

いろいろ調べてみるが、日本語ソースの記事にはフォロワーを歌わせるという記事が多数見られるけれど、純粋に吟遊詩人を追加する記事が無いんですね。
「JobInnkeeper」や「JobMerchant」のFactionが必要という記事などもありましたが効果なし。
Questエイリアスをいじるのはフォロワーに歌わせるために行うものなので今回は関係ないし・・・。

で、バナードメアのミカエルと、キャンドルハースホールの歌い手をめんどくさいと思いながら参考にしてみると、歌い出す時の立ち位置をXmarkerHeadingで指定してあげる必要がある事が判明。
しかしこれをやってみてもやっぱり曲をリクエストする選択肢が出ない。

おじさん眠たくなってきたよ。

仕方ないので英語のリソースを探すことに。
するとNexusForumsのこんな記事を見つけました。
CKのWorldData>Location内にある追加したい場所(今回だとDrunkenHuntsman)をひらき、その中のKeywordに

「LocTypeInn」を入れろ

と書いてある。
まさか、一般の吟遊詩人は「宿屋」じゃないと歌わないってこと?
半信半疑でやってみたらあっさり歌うものだからマジで悩んだ時間を返せと小一時間問い詰めたい。

これでハンツマンが更ににぎわいを見せることになりました。

■改築した結果

階段をストレートから螺旋に切り替え、メイン客室の直下に地下室を設けた所地下にわんさかとNPCが降りてくるようになりました。
螺旋階段が混みすぎて詰まったり、NPCがワープする問題はあるもののほぼ成功といっていいと思います。
地下には食品・飲料販売専門のNPCを雇いました。エルリンドルの負債は膨らむばかり。

あとは公開するだけですが、最後の調整をしていますのでしばしお待ちください。

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください