Neutral Vertibirds環境下で、BOSの『The Prydwen』への着艦に失敗(プレイヤキャラが地表に落下)するトラブルを直します。
前回は身投げしてしまう構造を見ましたので、今回は実際に修正します。
前回の記事はこちら。
f4mod.hatenablog.com
※自己責任の元に改造してください。僕の環境では問題無く動いてますが、認識してない深刻なトラブルがあるかも知れません。
それとPex Inspectorでスクリプトをいくつか修正する予定だったんですが・・・もっと簡単な方法を見つけてしまったので、今回はPex Inspectorは使いません。次回(もう1回だけ続く)に便利改造ネタをやるので、そこで使います。
Fast Travel用Questの確認
軽く前回の復習から。Fast Travel用Quest”NTRVFT”
xx003502
を見ます。Scenesタブ。搭乗(Phase 3)から降機(Phase 8)までの遷移です。
ところが実際は、Phase 6完了と同時にNTRVFTが終了します(スクリプトによるstop処理)。Phase 7とPhase 8は実行されません。
プレイヤキャラの降機確認&5秒待機が機能しない為、着艦と同時にベルチが離艦動作(アームが甲板から下がる)を始めてしまいます。これが身投げの原因。前回ここまで。
Neutral VertibirdsのAI Package
ちょっと前回の流れからは方針が変わってしまった為、作業前にもう少し確認作業をば。
5秒待機が機能してないことが原因ではあるんですが・・・そもそも着艦したまま止まってれば問題無い筈なんですよね。
じゃあなんで勝手に離艦しちゃうのよ?
という疑問が当然湧いてくるんですが、これはAI Packageが関わってそうです。戦闘AIではなく、通常の自律行動の方のAI。
Fast Travel時のAI遷移
SSを交えて追っていきます。Pip-boyから呼び出した時(Phase 1と2)のPackageは置いときます。
1.停止状態
通常時のAI Packageは、バニラのベルチと同じく00110301
”VertibirdLandedPackage”。まだ搭乗してないのでQuest停止中(Pip-Boyから呼び出して到着した段階だと、Phase 2で稼働中)。
2.プレイヤキャラ搭乗
プレイヤキャラが搭乗するとQuest”NTRVFT”が動き出し、Phase 3からscene開始。AI Packageが変わります。xx00315E
”NTRVFT Travel to Target”に変更。
3.離陸~飛行状態
AI Packageが切り替わった状態で、ベルチ移動中。
4.着艦中
3.と同じく、まだ切り替わったまま。
5.着艦完了
着艦と同時にsceneがstopし、プレイヤキャラ&コンパニオンを下ろしてQuest”NTRVFT”もstop。AI Packageが元に戻ります(Quest aliasから解放されるので元に戻る)。
6.離艦開始
ベルチが離艦を始めてしまいます。プレイヤキャラは降りる動作中なので、あとは落っこちるだけ。
比較参考用に、前回のQuest Stage遷移のSS。
勝手に離艦する原因推測
『推測』です。5.の着艦時、つまりQuest終了によりAI Packageが切り替わった際の挙動が原因かと思います。
恐らくですが、
- AI Packageを”NTRVFT Travel to Target”から”VertibirdLandedPackage”に変更。
- 変更したAI Packageで再計算が発生(PapyrusのEvaluatePackageみたいな)。
- 再計算の結果として、移動を開始。
こんな流れだと思います。
Height Data的には空中なので、再計算結果として地上に移動してしまうんじゃないかな、と。
勝手な離艦の対策案
上記の推測由来になりますが、AI Packageの変更タイミングを変えることで、離艦を防止できます。
実の所、VertibirdLandedPackageのままでもFast Travel可能です。Fast Travelと言っても、ぶっちゃけNPCが指定位置に歩いていくのと同じなので・・・w。”NTRVFT Travel to Target”は、Pip-boyでcallした時の座標にベルチを飛ばすのがメイン機能で、Fast Travel機能自体はこのAI Packageに依存してません。
Fast Travel用Questの修正
という訳で、AI Packageの変更タイミングを変えます。”NTRVFT Travel to Target”が必須なのは、Pip-boyでcallしてからプレイヤキャラの座標に移動するまでだけなので(Air Supportは別Questなので大丈夫)、適用をPhase 2のみに制限します。残りはAI Packageの変更無し。
この状態でPrydwenにFast Travelすると、ベルチが離艦しなくなりました。安全に降りられましたよ!
Prydwen以外への通常のFast Travelに関しても、問題無いです。長々と続いた割には、作業量は微々たる物・・・。でもここに辿り着くまで、すげー時間かかりましたよw
離艦しなくなっただけなので、scene遷移は同じ(Phase 6で終了)。
[07/06/2019 - 10:45:37AM] NTRVFT Stage is now: 30 [07/06/2019 - 10:45:37AM] NTRVFT started [07/06/2019 - 10:45:37AM] PartySize: 1 [07/06/2019 - 10:45:37AM] Companion1: [CodsworthReferenceScript < (0001CA7D)>] [07/06/2019 - 10:45:37AM] NTRVFT Stage is now: 0 [07/06/2019 - 10:45:37AM] NTRVFTScene Scene starts [07/06/2019 - 10:45:37AM] NTRVFTScene Phase 3 begins [07/06/2019 - 10:45:40AM] turret got idlechairsitting from [ObjectReference < (00000014)>] [07/06/2019 - 10:45:40AM] NTRVFTScene Phase 3 ends [07/06/2019 - 10:45:40AM] NTRVFT Stage is now: 30 [07/06/2019 - 10:45:41AM] Companion [CodsworthReferenceScript < (0001CA7D)>] ghosted: True [07/06/2019 - 10:45:41AM] NTRVFTScene Phase 4 begins [07/06/2019 - 10:45:51AM] NTRVFTScene Phase 4 ends [07/06/2019 - 10:45:51AM] NTRVFT Stage is now: 40 [07/06/2019 - 10:45:51AM] NTRVFTScene Phase 5 begins [07/06/2019 - 10:46:10AM] NTRVFTScene Phase 5 ends [07/06/2019 - 10:46:10AM] NTRVFT Stage is now: 50 [07/06/2019 - 10:46:10AM] NTRVFTScene Phase 6 begins [07/06/2019 - 10:46:22AM] [Actor < (00000014)>] exiting vertibird (OnExit). Sit sleep state is 4 [07/06/2019 - 10:46:22AM] registering for idleChairGetUp [07/06/2019 - 10:46:22AM] NTRVFTScene Phase 6 ends [07/06/2019 - 10:46:22AM] actor on turret sheathing [Weapon < (62003170)>] [07/06/2019 - 10:46:22AM] GunTurret ExitTurret: [Actor < (00000014)>] [07/06/2019 - 10:46:22AM] NTRVFT Stage is now: 60 [07/06/2019 - 10:46:22AM] NTRVFTScene Scene ends [07/06/2019 - 10:46:23AM] [ntrvertibirdactorscript < (FF015907)>] re-equipping weapon [Weapon < (FE0378E0)>] [07/06/2019 - 10:46:23AM] NTRVFT Stage is now: 100 [07/06/2019 - 10:46:23AM] Companion [CodsworthReferenceScript < (0001CA7D)>] ghosted: False [07/06/2019 - 10:46:23AM] PartySize: 1 [07/06/2019 - 10:46:23AM] Follower [CodsworthReferenceScript < (0001CA7D)>] dismounted [07/06/2019 - 10:46:23AM] NTRVFT stopped
Prydwenからの離艦を止めることによる不具合
身投げこそしなくなりますが、これはこれで若干の不具合が残りまして。
Prydwen着艦状態のベルチバードをアクティベート出来ません。つまり、乗り込めないってことです(汗)。Private Vertibirdでも、同様の不具合を確認。バニラ由来の共通問題?
アクティベート不具合のみなので、Pip-boyからair support指示で離艦、その後に停止させれば、Prydwen甲板に強引に降りてきます。ボストン空港行きのベルチで移動して、そこから呼び出す方が気分的にはまだスマートかも?
※BOSクエスト『Show No Mercy』ではPrydwen着艦状態のベルチに乗り込めるので、何かしら方法はありそうなのですが。ただしShow No Mercyでのベルチは専用Packageを使って、『着艦アーム(家具)に対する”着席動作”』を指示された状態。つまり椅子に座ってる人間と同じです。この状態でないとアクティベートできないのかも?
以上、身投げ対策はおしまいです!
次回はちょっと便利改造をやってみます。着陸後、降機せずに再度Fast Travelを開始したり、Fast Travel中にそのままHunting Modeに移行したり等。
f4mod.hatenablog.com