ElepanSkyrim’s めも

SkyrimMOD関連の個人的なメモをまとめています。

|SkyrimSE| CTD Crash、その他MOD動作不具合改善メモ

個人的に調査、施策対策したものを無差別、無秩序にまとめています。基本的におまかんきょう。随時更新。

 

 

フリーズ:エンチャントされたBlack Robeをインベントリで開くと確定フリーズ

 

CTDのように速攻で落ちるのではなく、完全にゲームが固まって応答不能になってしまうフリーズ状態。

エンチャ付きBlackRobeをインベントリから参照した時に発生していました。

通常のBlack Robeは問題なし。AddItemMenuなどでアイテムを探して表示させても発生、

とにかくインベントリ経由でこのアイテムを参照すると問答無用で固まってしまうようです。

原因はBashed Patch.esp

ESPファイル(Bashed Patch, 1.esp)を外すと問題が発生しなくなりました。このファイルはWyre bashというツールを使ってLevellistなどのマージを行うことで生成されるファイルで、他MODのesp間で競合する箇所を統合するパッチファイルのようなものです。(多分

Wyre bashは1年以上は使っていましたが特に問題はなく、ここ最近になって発生したことから最近になって入れたMODを入れてパッチファイルを作ったことが原因だと踏んで調査開始。

結果Bash Batchの対象にArmor and Clothing Extensionが含まれているとフリーズすることがわかりました。

skyrimspecialedition.2game.info

なぜクラッシュするのかはわかりませんが…BlackRobeのメッシュファイルが何らかの要因で不正になってしまったのでしょうか。

 

これを外してパッチファイルを生成して以降は問題は発生しなくなりました。

 

[検証メモ]CTD:ファストトラベルでCTD

ファストトラベルするとCTDすることがありました。クラッシュログを確認すると毎回以下のようなログが主力されていました。MovementAgentPathFollowerVirtualという謎の関数?変数?が出力されいます。

--------------------------------------------

Probable callstack

{

[0] 0x7FF6A08B6480 (SkyrimSE.exe+10C6480) unk_10C6470+10

[1] 0x7FF6A09051CF (SkyrimSE.exe+11151CF) MovementAgentPathFollowerVirtual::unk_1115090+13F

[2] 0x7FF6A0904AC5 (SkyrimSE.exe+1114AC5) IMovementPlannerAgent::Func2_1114A80+45

--------------------------------------------

プレイヤーがリスポーンした後にファストトラベルしようとすると発生するようでした。

プレイヤーのリスポーンはShadow Of SkyrimというMODの機能にによるものです。

加えてHaven BagというMODを導入していました。

Shadow Of Skyrimの設定でリスポーン場所を「最終ベッド」にし、Haven bagのベッドで最後に睡眠をとった状態で以下の手順を踏むと必ず発生しました。

 

1. どこかで体力0になる

2. Haven Bagにリスポーンする

3. Haven Bagから出る

4. 体力0になった地点にファストトラベルする

5.  C.T.D. 証明終了

 

一旦Shadow Of Skyrimを外しほかの類似MODでなら発生しなくなるかもとRespawn - Soulslike EditionというMODを使ってみました。

skyrimspecialedition.2game.info

 

変化なし

上記MODでもリスポーン後に即ファストトラベルするとCTDすることを確認しました。

ならばと対策として必ず間に一度エリア移動をはさむようにリスポーン地点を常にキナレス聖堂固定にしました。こうすればいやでもエリアチェンジしないとファストトラベルはできません。

 

リスポーン後、必ずどこかエリアに移動することを一度以上は挟んでからファストトラベルするようにしていますが、問題は起きなくなりました。

 

※この事象についてググってみるとほかのユーザーさんでも同様の事象とログが発生するケースがあったことがわかったんですが、Shadow of Skyrim やhaven bagは入っていないみたいなのでこれらのMODが直接的な原因ではないと思います。多分おま環です。

Crashing when fast travel - Pastebin.com

[検証メモ]CTDスクリプトNPCを生成する系統のMODでCTD

NPCを動的に生成するタイプのMODはスカイリムのエンジンの問題でもともとCTDリスクが高いと聞きます。しかし一方でNPCを単にスポーンするだけならゲームがクラッシュすることは基本的にはない、とも聞きます。答えは闇の中…

個人的にはCloakスペルのようにNPCに魔法やエフェクトを配布するMODと併用すると相性がよくないんじゃないか?と想像していますが、どうなのでしょうか。

さて本題。フィールド上を散策していると1時間に1回くらいの頻度でCTDが発生していました。ものは試しとNPC増加系とクローク配布系のMODを抜いていくとランダムCTDはなくなっていきました。

とはいえ戦闘をより楽しむために敵増加は捨てがたい要素でもあります。大乱闘したいですよねやっぱり。

なんとか代わりはないかと探し回ってみると、No scriptで敵増加するMODを見つけました。なんと1542体の敵を手動で配置したそうです。配置だけでなく追い打ちや不意打ちのようなイベントも組み込まれているみたいで、相当な労力がかかったでしょうねこれは…ありがたく使わせてもらっています。

こちらを導入して遊んでいますが、ランダムCTDは発生していません。

skyrimspecialedition.2game.info

[解決]CTD:Precision - Accurate Melee CollisionsでランダムCTDする

www.nexusmods.com

戦闘にはもはや個人的に必須のMOD。しかし結構な確率でCTDが発生します。タイミングが特徴的で、敵が弓やボウガンを放った時に限ってCTDが起きていたように思います。

調べたところ武器のTrailを無効にするとCTDしなくなった、という書き込みを見つけました。

Display Trailsのチェックを外せば無効になります。

現時点で最新の2.0.4を使っていますが、このオプションに指定してからCTDは経験してません。とはいえ、まだまだ様子見の必要はあると思っていますので、どうか参考までに。というか弓やボウガンにTrailなんてついてたのかしら?

↓ 追記:どうやら別原因だったようで…「BSXAudio2DataSrc」の項にて。

↓↓追記の追記:.NetFrameworkのクラッシュによる「一瞬でSkyrimが落ちるタイプ」のではなく、「フリーズしてゲームが固まってしまうタイプ」がこのオプションが有効だと発生するので、やはりチェックを外しました。決まってキルムーブが発動した時にフリーズしてしまうような挙動をします。人によってはチェックを外した方がいいかもしれませんね。

[検証メモ]非CTD:スクリプトダンプが発生することで起きる不具合

スクリプトダンプ自体が何か悪さをしているわけではないらしいのですが、これが出た時は大抵何かのスクリプトが異常動作をしていることが多いです。

CTDなどはしませんがFPSが劇的に下がったり、ボタンを押しても反応がなかったりMCMメニューが開かなかったり何も表示されなくなってしまったりすることがあります。そんな時にPapyrusログを見るとスクリプトダンプが大量に出力されていたりします。

例えばこんな感じのです。

[01/09/2023 - 08:42:07PM] Dumping stack 1297034:
[01/09/2023 - 08:42:07PM]     Frame count: 0 (Page count: 0)
[01/09/2023 - 08:42:07PM]     State: Waiting on other stack for call (Freeze state: Freezing)
[01/09/2023 - 08:42:07PM]     Type: Normal
[01/09/2023 - 08:42:07PM]     Return register: None
[01/09/2023 - 08:42:07PM]     Has stack callback: No

・・・

このようなログが何百行にもわたって出力されます。スクリプト自体には問題がなくても後負荷時などにスタックダンプが多少出ることもありますが、異常な量のスタックダンプがコンスタントに出力される場合はスクリプトに何らかの不具合が存在していることを示唆している可能性があります。

The Ultimate Dodge Mod 4.04a で発生

skyrimspecialedition.2game.info

[01/09/2023 - 07:38:47PM] Event: UDPlayerInventoryFlow.OnItemRemoved, Frequency: 56
[01/09/2023 - 07:38:47PM] Event: UDPlayerInventoryFlow.OnItemAdded, Frequency: 88

[01/09/2023 - 07:38:47PM] Dumping stack 1144169:
[01/09/2023 - 07:38:47PM]     Frame count: 0 (Page count: 0)
[01/09/2023 - 07:38:47PM]     State: Waiting on other stack for call (Freeze state: Freezing)
[01/09/2023 - 07:38:47PM]     Type: Normal
[01/09/2023 - 07:38:47PM]     Return register: None
[01/09/2023 - 07:38:47PM]     Has stack callback: No
[01/09/2023 - 07:38:47PM]     Stack trace:
[01/09/2023 - 07:38:47PM]         [Active effect 17 on  (00000014)].UDPlayerInventoryFlow.OnItemRemoved() - (requested call)
[01/09/2023 - 07:38:47PM]             [param 0]: [Form < (0004DA20)>]
[01/09/2023 - 07:38:47PM]             [param 1]: 1
[01/09/2023 - 07:38:47PM]             [param 2]: None
[01/09/2023 - 07:38:47PM]             [param 3]: [ObjectReference < (FE04A88C)>]

OnItemAddedなどのイベントがコールされている模様。何か自動的にアイテムを配っているかのような感じがします。NPCがドッジするための非表示装備か何かをNPCに配っているとかそんな感じなのかな?


このダンプが発生しているときは20人を超えるNPCとの大規模戦闘中でしたので、おそらく戦闘開始時かどこかでアイテムを各NPCに配る処理がハングしてスタックにたまってしまっていたのではないかと思います。
TUDMはずいぶんお世話になっていたんですが、DMCOに最近変えて以来使っていなかったので外すことにしました。
外したところ、ログファイルにダンプは生成されなくなり、戦闘時に発生していたSoul Quick Menuなどの入力遅延が改善されました。

moreHUD SEで発生 

skyrimspecialedition.2game.info

[01/09/2023 - 09:58:18PM] Event: ahzmaintenancealiasscript.OnItemRemoved, Frequency: 28
[01/09/2023 - 09:58:18PM] Event: ahzmaintenancealiasscript.OnItemAdded, Frequency: 64
[01/09/2023 - 09:58:18PM] ###############Stack Dump Summary End##################
[01/09/2023 - 09:58:18PM] Dumping stack 1474098:
[01/09/2023 - 09:58:18PM]     Frame count: 0 (Page count: 0)
[01/09/2023 - 09:58:18PM]     State: Waiting on other stack for call (Freeze state: Freezing)
[01/09/2023 - 09:58:18PM]     Type: Normal
[01/09/2023 - 09:58:18PM]     Return register: None
[01/09/2023 - 09:58:18PM]     Has stack callback: No
[01/09/2023 - 09:58:18PM]     Stack trace:
[01/09/2023 - 09:58:18PM]         [alias PlayerREF on quest ahzmainquest (3C000D62)].ahzmaintenancealiasscript.OnItemAdded() - (requested call)
[01/09/2023 - 09:58:18PM]             [param 0]: [Ingredient < (0003AD64)>]
[01/09/2023 - 09:58:18PM]             [param 1]: 1
[01/09/2023 - 09:58:18PM]             [param 2]: None
[01/09/2023 - 09:58:18PM]             [param 3]: [ObjectReference < (FE04988C)>]

moreHUD SE - Pre AE 4.1.2.0を使わせてもらっていました。とはいえ錬金術プレイしたこともなく宝持ち腐れ感の強い私には使いこなせそうにないので外すことにしました。

 

[解決]CTD:XAudio2_7.dll というログがクラッシュログに出力

以下のMODのおかげでこの原因のCTDも発生しなくなりました。感謝やで~

www.nexusmods.com

追記:と思ったらまだ発生する…試しにサウンドバイスBluetoothではなくディスプレイのスピーカーに変更して様子見。この方法で解決した人もいるようです。

追記の追記:あれから数か月たちましたが一度も発生しなくなったのでどうやらこの対策でよさそうです。

[解決?]CTD:「hkpRigidBody…」というログがクラッシュログに出力

例:[ 29] hkpRigidBody(Node: `NiNode(Name: `NPC COM [COM ]`)`)

 

SMP関連のログっぽいのでSMPとCBPCもひょっとしたらとそれ関連のMODを外していったところ、私の環境では以下のMODを外すことでCTDを解消しました。

www.nexusmods.com

おそらく負荷が根本的な原因かと推測、SMP、CBPC系の装備を付けたキャラクターがそのセルの中に10人くらいいたために発生してたんじゃないかと思います。Followers goes on tripというMODを使ってフォロワーを10人くらい放浪させていたんですけど、何度試しても入るとCTDする要塞にこのMODを外してようやく入れたかと思ったらそのうちの7人くらいがその要塞にたまたまいたんですよね。その時の高負荷によるもので落ちていたのかなぁと想像しています。

 

[解決]CTD:「BSXAudio2DataSrc…」というログがクラッシュログに出力

クロスボウと弓の音声が関係しているようでした。決まって着弾とリロードの音声が聞こえた瞬間、もしくはその直前か。その瞬間に落ちていたように思います。当初はPresicionかなと思っていたのですが違ったのかもしれません…。

対策:弓、ボウガン関係の音MODを消す

以降はこれ関連のCTDがなくなりました。

 

[解決]CTD:「skee64.dll+ED77A…」というログがクラッシュログに出力

いつのまにかキナレス聖堂に行くと確定CTDするように。Crashログにはracemenuのdllであるskee64.dllとObody NGのObody.dllのログが。目測で確認できたこととしては、Obodyの自動ボディプリセット機能が動作した時に落ちている感じでした。(NPCの体系が変化した直後に落ちる)おそらくMorph関連のCTDかと思われます。

www.nexusmods.com

www.nexusmods.com

色々と原因を探っていくと、以下のMODが原因だったようで少なくともVer1.0.3はObodyと相性が悪く、CTDが発生するケースがある模様。

www.nexusmods.com

 

参考スレッド:https://www.nexusmods.com/skyrimspecialedition/mods/77016?tab=bugs

※「CTD when conjuring female npc?」のスレッド

 

とりあえず上記MODを外してみるとCTDが発生しなくなりました。ほかにも私の環境ではRacemenuでキャラクターを編集しようとするとおかしくなってしまったりする不具合もあり、Nexusのフォーラムでも不具合報告が上がってるので今のところはフィートバックを反映中の段階なのかなと思います。今後のアップデートで改善されるかもしれないですね。

 

追記:1.1.3で本問題は発生しないことを確認しました。

追記の追記:1.1.4、1.2.0に更新してからまた再発。ひょっとしたら1.1.3で治ったと思ったのも勘違いだったのかもしれません…。

追記の追記の追記:2.02で試してみたところ、導入して1週間くらい経ちますが上記問題は今のところ発生していません。おそらく解消されたのかな。

追記の追記の追記の追記:2週間以上たちましたが一度も発生していないので解消されたとみなしてよさそうです。

 

[解決]非CTD:NPCとの会話が時々進まない

NPCに話しかけてもダイアログの選択肢が出ずそのまま立ち往生となってしまい、TABキーでやむなく会話をキャンセルするしかない状況になることがよくあったのですが、以下のMODを外すと直りました。気のせいかもしれませんが、これまでフォロワーがちっとも戦闘に参加してくれない感じだったのが解消されたような気も…します。いやプラシーボかな…。

www.nexusmods.com

追記:全然違いました。True Dictional movementとImproved Alternate Conversation Cameraとの競合でした。

www.nexusmods.com

www.nexusmods.com

True Dictional movementのMCMにてDialogue ModeをNormalにセットすることで正常に動作するようになりました。

参考スレッド:https://www.nexusmods.com/skyrimspecialedition/mods/68210?tab=bugs&BH=0

「Dialogue Options Not Appearing When Paired With TDM」のスレッド

 

 

Disable Follower Collisionのスレッドを見ると最後の更新から大分日がたっていることと、以下の後継のMODが存在するとのことでこちらを代わりに使わせてもらってます。※ 1.5用などはOLD FILEからダウンロードする必要があります。

www.nexusmods.com

 

[解決]非CTD:Nemesis CompareAnimVar...というログがPapyrusLogに大量に出力されている。

[12/23/2023 - 10:01:27AM] Nemesis CompareAnimVar (AnimGroup: _magcon, value: 0, Priority: 0, mod: XPMSE, Group: 1

上記のようなログが、Nemesisを入れてPapyrus logを有効にしていると大量に出てきます。この影響か、時々ゲームがフリーズしてしまうことがありましたがこれをオフにできる(性格にはlogを出す処理をコメント化したスクリプト)MODを導入してからは頻繁に発生していたフリーズがなくなりました。

www.nexusmods.com

 

Papyrus logはトレース、エラー発見のための参考として必要なときのみで、基本的にはオフ推奨。一般にファイルへの書き込みはCPUやキャッシュの書き込みの比べてはるかに重いので、パフォーマンスに影響を与えるためです。

 

[検証中]CTD:ランダムCTDが発生し、「ImmersiveEquipmentDisplays.dll+0345CA0」というログがクラッシュログに出力される。

追記:IEDのエラーログというよりも、単にゲームにフックされている処理のログがでているだけのようで、原因は別にある模様。高負荷な状態になると発生する傾向があり、自環境だとFootsprintとかを入れるとよく発生するようになります。以下はそれまでいろいろ調べたログですがあまり関係なかった模様。とはいえいろいろと見直すきっかけになったのでメモとして。

 

IEDこのエラーの直接原因かは不明ですが、Mu joint fixと相性がよくないとのこと。

www.nexusmods.com

www.nexusmods.com

 

本MODのようなdisplay mods(おそらく本MODと同じGUIを実装したMODのこと)を使ったMODとの併用は推奨しないとのことです。

以下、NESUSのDESCRIPTIONのコピペ

  • Mu Joint Fix is known to cause various issues with IED (reportedly with other display mods as well). Check its mod page for possible solutions.

mu joit fixを外してからは発生しなくなったので、おそらくそうだったのだろうと思います。

とはいえ、できれば外したくない…併用したい…

解決策調査中です

追記:外しても発生することを確認。ただこの時点でわかってきたこともあり、ダンジョンへセル移動、ダンジョン内で別の階層にセル移動した時に発生するようです。

今のところの対策として、Immersive Equipment Display(IED)をプレイヤーオンリーにすることで発生を抑えられている…かのようですが、検証中です。

追記の追記:プレイヤーオンリーにしても発生することを確認。

ClashLog見ると必ず「Name: "WEAPON"」という武器ノードに関連するログ情報が出てくるので、ひょっとしたら武器のアニメーションに関連する何かなのか?…と思い当たるところとして以下を外して検証中。外してから数時間プレイしましたがCTDなし。以前は1時間もしないうちに発生していました。

www.nexusmods.com

このMODの説明ではXPMSSEをインストールしている場合でうまく動作していない場合はXPMSSEのMCMの各種設定をOFFにするか、MCMがない場合は(おそらくXPMSSEの)animationsフォルダとbehaviorsを消してFNIS/Nemesisでパッチをやり直してみてとあり、特に各種設定を何一ついじっていなかったのでその影響なのかもしれません。

 

以下はNexusのDescコピペ

Q: Conflicts with XPMSSE?
A: If you fully, or partially, installed XPMSSE and the animations are not working, you can try this:
- Open XPMSSE MCM and disable all stuff related to animations.
If you don't have access to the MCM, you can try this:
- Delete the folders meshes\actors\character\animations and meshes\actors\character\behaviors (from XPMSSE) and run FNIS/Nemesis again.

XPMSSEのFull版を入れて各種アニメーションのチェックを設定してそれで満足している場合は必要ないんじゃないか、と思っていますが、正直あまり自信はありません。(全然使いこなせてない

追記の追記の追記:5時間くらい遊んでCTDが発生。試しにXPMSEEのMCMの項目をすべて未チェックにして遊んでみましたが同じく数時間後にCTD発生。以前よりは頻度はマシになりましたが、それでも起きますね。

 

追記の追記の追記の追記:Discriptionを改めて読むとXPMSEEのスクリプトは重すぎるからおすすめしないよ、という注意書きがありますね。

NexusのDiscコピペ

"Any XP32-compatible skeleton remains supported, however I generally don't recommend using the bloaty XPMSSE scripts since they can negatively impact performance."

XPMSEE系のスケルトンとも互換性がありますがXPMSEEのMCM機能などスクリプトによる拡張機能を使いたい場合は装備ノードの位置設定をIEDと全く同じ設定にしないといけないなど、注意書きが描かれていました。

設定するのも面倒ですし、正直よくわからないので以下のMODを使わせてもらっています。

www.nexusmods.com

 

Luxのインストールを見直してみる

「Name: "WEAPON"」のログほかに、に"Effects\Ambient\FXAmbBeamXbDust01.nif"などの光源関係のファイルパスがログ出力されていたので、ファイルの出どころを確認するとLuxのファイルでした。

www.nexusmods.com

物は試しと、デフォルトのチェックから何も変えずに再インストール

以前はLux optional effectsにすべてチェックをつけていたのを、全て未チェック、ほかの項目も何も変更せずにインストールしました。ファイルからFXAmbBeamXbDust01.nifが消えていたので、何かしら効果があるかもしれません。

Ember XDのインストールを見直してみる

同じ光源かつLux関連のパッチもあるEmber XDも見直してみると、インストールの仕方が間違っていたのことがわかりました。

Lux Orbisの各プラグインをインストールしている環境ではEmber XDのCompatibility Patchesにはチェックをつけないこと、ということで見直して再インストールしました。

 

 

[ひとまずは解決]CTD:「shadow scene node」がクラッシュログに出力されている

※このCTDは割といろんなMODに関連して発生するので、発生の度に解決する術を探る必要がありそうです。

 

原因は光源系MODによるものからSMPだったり、エンジンの問題だったりと複合的な要因で発生するらしく環境によってさまざまなようです。厄介ですね。

SSE Engine FIxでこの問題に対する修正がされているようですが、こちらを導入済みでも私の環境ではこのCTDが発生していました。一つ上のCTD問題とも関連がありそうな気がします。

対策1:光源MODのファイルを上書きさせない(MO2での優先度を上げる)

光源系のMODは何かとデリケートのようなので、他のテクスチャリプレイス系MODなどで上書きがないか確認し、最も優先度を高く設定。

自環境では最も環境に大きく影響を及ぼしていると思われるLuxを最優先、次にEmber XDという形にしました。

 

一つ上のCTDの対策と合わせて対策以降、shadow scene node関連のCTDはここ数日発生していません。とはいえ、もう少し様子見の必要がありそうです。

 

対策2:FNIS、Nemesisを再度実行する

基本的にはアニメーションの抜き差しをした際に実行しますが、ケルトンMODをアプデした時、変更した時なども必要になります。これを忘れているとShadow scene nodeのCTDが発生するようになったり環境が不安定になるみたいです。

 

対策3:アニメーションファイルを整理する

アニメーションファイルを入れすぎているとCTD、カクツキの原因になるようです。Animation Limit Crash Fix SSEを導入していても、やはり入れすぎはよくないみたい。

www.nexusmods.com

アニメーション2万を超える常態でプレイすると、件のランダムCTDに加え、NPCが読み込まれるタイミングで異様に画面がカクついたりしました。NPCが多ければ多いほど顕著になるようで、自環境にはグレイムーア砦に山賊が20人くらいいるのですが近づくたびにガガガガガッと大きくかくついていました。

アニメーション23000件から12000件まで整理(数はPandora Behaviour Engineのログで確認した数値)したところ、この現象が収まりました。おそらくもっと減らすことができればさらに安定するとは思うのですが…厳選しないとですね。

 

追記:1か月ほど経ちましたが特に発生していないので効果があったようです。

 

その他の原因、対策:Better Dynamic Snow SEとSimplicity of Snowを同時に併用してCTD

どちらか片方でないとshadow scene nodeのCTDが発生するようでした。NEXUSのページにも併用すると特定エリアにてCTDするという書き込みアリ。shadow scene nodeのCTDかどうかは不明です。

[解決]CTD:Harmugstahlで確定CTD

Harmugstahlは魔法クロークをまとう蜘蛛が大量にいる洞窟のことです。入り口で蜘蛛嫌いの冒険者が蜘蛛と戦ってるところが印象的ですね。

発生したCTDは上にも書いているshadow scene node関連のCTDですが、セル移動時でもランダムでもなく、下記タイミング限定で発生する確定CTDです。

・雷のクロークをまとっている蜘蛛を倒した瞬間にCTDする

蜘蛛の糸がかかった通路の近づくとCTDする

原因は光源系MODの影響のようで、FaceLightと灯火(バニラの魔法)をきってみると、CTDが発生しませんでした。

www.nexusmods.com

FaceLightは自キャラに、灯火はフォロワーが勝手に唱えてついていたものですが、前者が雷クロークの敵を倒した瞬間にCTDするトリガー、後者が通路に近づいたときのトリガーになっていました。

他の光源MODなども含めた複合的な原因によるエラー何じゃないかと思っていますが、よくはわかりません。

 

今のところこのダンジョン限定なのでとりあえずそれほど気にするものではなさそうですが、今後の類似CTDが発生した時の対策の参考にはなりそう。

 

[検証中]CTD:hdtSMP64.dll+00C1E09というログがクラッシュログに出力

Fast SMP関連のCTDで時々発生します。

これも原因は様々でしょうが、インストールのオプションが不適切だと発生の頻度が上がる気がします。

対策:Fast SMPのインストールオプションを見直してみる。

このエラーの直接的原因かどうかは定かではありませんが、以前私は以下の設定でインストールしていました。

 

CUDA:NOT CUDA

AVX:AVX2

Configulation: Extreme performance

 

下記に変えたところ、CTDの発生頻度が下がり、さらにかくつき、特定の方角にカメラを向けるとFPSが低下するなどの症状が消え、FPSの向上が見られました。

 

CUDA:NOT CUDA

AVX:AVX

Configulation: Extreme performance

 

変えたのはAVXのオプション。

CPUはi5-12400を使っており、AVX2だったのでそれを指定していました。

ark.intel.com

さらにCUDAをオプションで無効に指定しても、なぜか設定ファイルでは有効状態になってインストールされてしまうようで、手動で無効に書き換える必要もありました。enableCudaという項目がtrueになっているのをfalseに変更しました。

 

NexusのForumを覗くと、どのAVXを選ぶべきか、というのは意見が分かれているみたいで単純にCPUに対応しているAVXオプションを選択する、というのが最適解というわけでもないようです。(対応していない上位のAVXを使うのはよくなさそうですけど

自環境に合う設定を見つけるまでいろいろ設定を試してみるのがいいのかもしれません。

と、AE環境に変えてからAVXを選択するとランダムCTDするようになってしまいました。AVX2なら安定するようで、結局元に戻す形になってしまいました。でも動作自体はAVXの方がカクツキがなかったりして快適ではあるので謎。

入れているMODやスカイリムのバージョンによっても相性が違うのかもしれません。

 

[解決]CTD:セーブ時にCTD

以下のMODを入れているとセーブ時にそこそこの確率でCTDするようでした。様々な魔法に光源を追加するMODですね。

クラッシュログにも本MODのespファイル名と"Fire"の文字が必ず出力されていました。

↓クラッシュログの内容

[RSP+348 ] 0x22D25DF3820      (Hazard*)
        Object Reference: 
        File: "Paraphernalia - Magicka.esp"
        Modified by: Skyrim.esm -> Paraphernalia - Magicka.esp
        Flags: 0x00000009 kDestructible | kInitialized
        Name: "Fire"
        FormID: 0x00109CE4
        FormType: Hazard (51)
        Flags: 0x00000508 kInitialized | kMustUpdate
        FormID: 0xFF003414
        FormType: PlacedHazard (70)www.nexusmods.com

おそらく自身の環境で光源のリミットを超えてしまって落ちているとかなんとか、そんな感じなのかと妄想しています。ほかにも複数の光源MODを入れていて、ENB Lightを使ったMODも複数入れています。

光源MODを入れる際は入れすぎでないかとか検討した方がよさそう。(どう検討するのかはさておき…感覚?

 

[解決]CTD:Autosave時にCTD

クラッシュログには「skse64_1_6_640.dll+005D466」と出力され、skse64.logは「Saving SKSEPersistentObjectStorage data...」で出力が止まっており、EngineFixes.logログには「Error occurred trying to open file: xxxx.ess.tmp, r+b), errno 2」とオートセーブされたファイルを開こうとしてCTDしているっぽい挙動です。セーブなのに読み込みというのがよくわからないですが、既存のオートセーブの上書きのために読み込んでるとかそんな感じなのでしょうか?

 

調べたところでは何らかの原因でSKSEのセーブデータが壊れていたりするとセーブ時に稀にCTDするとか、オブジェクトの数が多すぎて負荷が高いところでセーブするとCTDするということらしいです。

考えてみるとこのエラーは限定的で、いつも酔いどれパンツハンツマンに入ったときのオートセーブ時にCTDしていました。酔いどれにはUBEで作ったフォロワーを3人ほど駐在させているんで、負荷の問題だろうという気がしています。

elepanskyrim.hatenablog.com

また以前のSkyrimのアプデ(1130アプデ)で更新されたクリエイションクラブのファイルをそのまま1.6.640環境で使っていた時にもこのCTDが発生していたような…気がします。1.6.640環境に手動で戻す作業は実施済でしたが、戻す前にMO2でクリエイションクラブのファイルを管理するように変更していたことをすっかり忘れていました。何の気の迷いか、1130に勝手に更新されたときに「そうだMO2で管理しよう」などと思い立ったことがあだとなっていたのですが、なんと間抜けな話。

elepanskyrim.hatenablog.com

多分オートセーブというよりは、エリアチェンジをはさんだセーブの処理で負荷が高くなると発生する不具合なのかなぁと思っています。

とりあえずSKSEプラグインMODを調べて怪しそうなのを抜き、フォロワーの置き場所を変更して対処。

[解決]CTD:Avenging Wraithを召喚時にCTD

下記MODの召喚魔法であるAvenging Wraithを召喚すると確定でCTD

www.nexusmods.com

クラッシュログのREGISTERSには憎きshadow scene nodeとskee.dll、そして見慣れない「(std::_Func_impl_no_alloc<``MorphFileCache::ApplyMorph'::`2'::<lambda_1>::operator()'::`31'::<lambda_1>,void,std::shared_ptr<TriShapeVertexData>,float>*)」というログが。CALL STACKには何も出力されていませんでした。

 

色々と試したところ、下記MODを入れていると発生するようでした。

 

www.nexusmods.com

自環境では兜ではなくズラをとってしまったりと想定通りに動作しないのと、Nexusのページをみるとどうもバグが多いみたいなので外してみたところCTDも発生しなくなりました。

[解決]フリーズ:ドラゴンズブリッジを超えた先で確定フリーズ

Dawnguardのクエストでも立ち寄る血痕をたどってくクエストが発生するあたりでうろついていると確定フリーズ。原因は以下のMODの古いバージョンを使っていたためでした。

www.nexusmods.com

1.02を使っていましたが、1.0.3にてCTD要因になるものを直したとのことで、更新してみたところ解消しました。

 

[解決]CTD:Skee関連のランダムCTD

Crashログには「Unhandled exception "EXCEPTION_ACCESS_VIOLATION" at 0x000000000001」とあり、メモリアクセスのエラーが発生している模様です。

詳細のログには「RTTIName: "BSTriShape"」とか 「(std::_Func_impl_no_alloc<``MorphFileCache::ApplyMorph'::`2'::<lambda_1>::operator()'::`31'::<lambda_1>,void,std::shared_ptr<TriShapeVertexData>,float>*)」とかが吐かれていて、メッシュ関連のCTDの様子。SKSEログフォルダを除くと直近にobodyやskeeのログがあり、

「[2024-02-28 20:46:24.109] [Global] [info] [21236] [Body.cpp:62] Actor Mirabelle Ervine is valid, updating morphs nowと吐かれていました。

再度crashログを見返すと「Name: "Mirabelle Ervine"」と吐かれておりObodyの自動プリセット配布時にメモリエラーが発生している、というような感じ。

対策:skee.iniの設定を見直す

いろいろ調べたところObodyを使用する場合はskee.iniのuBodyMorphMemoryLimitの値を上げるといい、という情報を発見。

とりあえず以下の設定に変えて様子見しています。

uBodyMorphMemoryLimit=2048000000 ; Default[256000000]

推測ですが、描画するNPCの数によってこの値の適正値が変わってくる気がします。私の環境はNPCを増やすMODをいくつか入れており、1024(1g)でもCTDしたので2048(2G)で運用中

対策2:NPCへのオーバーレイ自動付与MODの設定見直し

複数のNPCにオーバーレイをかけるようなMODを入れている場合もCTDが発生する要因になる模様。例えばWet Function Reduxなど。

www.nexusmods.com

MODのNPCへの自動付加機能をオフにして様子見中

 

対策3:The New Gentlemanを最新にする

今回の問題の要因になっているかは現時点で全く不明ですが、以前Obodyとの相性の問題でCTDの発生要因になっていたことがありました。2.1に更新して以来ずっと更新しておらず、ひょっとしたらまだなにかあったのか…?と推測をたてつつ現時点で最新の2.2.4に更新して様子見中

www.nexusmods.com

対策4:ObodyのNG種族リストにバニラ種族を全部ぶち込む。

主人公と自作フォロワー以外のNPCは正直どうでもよく、自動配布機能も別に不要、ならそれを切ってしまえばいい、主人公と自作フォロワーの体系プリセットの差別化目的で入れているだけなら手動で設定すれば問題ない、

ということで自動配布機能そのものを停止することはできませんが、実質的にほぼ停止させる方法としてObodyのNGリスト機能を使います。バニラ種族(もしくは必要ならほかの追加種族も)をすべてNGリストにぶち込むだけです。

※Obody.logには適用しようとするログがでますが、実際に適応されたときのログはでないので多分想定通りに動作はしてる…はず。

↓適用しようとしているログ(この時点では未適用)

[2024-03-20 13:44:57.324] [Global] [info] [21060] [Body.cpp:146] Trying to find and apply preset to Witch

↓適用されたときのログ
[2024-03-20 13:55:44.315] [Global] [info] [17304] [Body.cpp:222] Applying preset: UBEMINA

 

ちなみにNGリストの種族であっても手動でプリセットを設定は可能。というか、NGリストの内容はであっても手動の場合は無視する仕様になっています。

ブラックリストの内容は以下。

 "blacklistedRacesFemale": [
        "ArgonianRace",
        "NordRace",
        "HighElfRace",
        "WoodElfRace",
        "DarkElfRace",
        "BretonRace",
        "ImperialRace",
        "KhajiitRace",
        "RedguardRace",
        "OrcRace",
        "ArgonianRaceVampire",
        "NordRaceVampire",
        "HighElfRaceVampire",
        "WoodElfRaceVampire",
        "DarkElfRaceVampire",
        "BretonRaceVampire",
        "ImperialRaceVampire",
        "KhajiitRaceVampire",
        "RedguardRaceVampire",
        "OrcRaceVampire",
        "ElderRace"
    ],
    "blacklistedRacesMale": [
        "ArgonianRace",
        "NordRace",
        "HighElfRace",
        "WoodElfRace",
        "DarkElfRace",
        "BretonRace",
        "ImperialRace",
        "KhajiitRace",
        "RedguardRace",
        "OrcRace",
        "ArgonianRaceVampire",
        "NordRaceVampire",
        "HighElfRaceVampire",
        "WoodElfRaceVampire",
        "DarkElfRaceVampire",
        "BretonRaceVampire",
        "ImperialRaceVampire",
        "KhajiitRaceVampire",
        "RedguardRaceVampire",
        "OrcRaceVampire",
        "ElderRace"
    ],

 

とりあえず本CTDがObodyの問題ではない可能性もまだあるので運用しながら様子見。

---------それからしばらくして…

最終的な決め手は対策4だったのか、ランダムCTDが止まりました。

NPCをランダムにスポーンするMODとOBodyの相性が悪いのか、あるいは一度に多くのNPCにプリセットを配布しようして落ちるのか…推測の域を出ませんがいずれにせよOBodyの自動プリセット配布によるCTDだったっぽいようでした。

 

[解決]フリーズ:セル移動で確定フリーズ

ある日からセル移動をはさむと高確率でフリーズ、ワールドマップ上のグリッドをまたいでもフリーズ(洞窟などのロード画面をはさまないセルの読み込み)するように。

NEW Gameしても変わらず、ヘルゲンへ向かってアルドゥインが飛び去って行こうとする瞬間に確定フリーズ。

MOD全部抜いても改善せず。一体何なんだと途方に暮れ、ダメ元でPC再起動 + Saveファイル全て削除したらなぜか直りました。

Skyrimってセーブファイル数の上限みたいなものでもあるんでしょうかね。あるいは自動セーブ系のMODの上限かなにかだったのか…もしやSKSEのセーブファイル関連か?しかしなぜそれでフリーズがでるのか?

とりあえず定期的にセーブファイルを整理する必要があるようでした。

 

[解決]フリーズ:モーサルの首長の屋敷に移動、もしくは移動後、入って左側の部屋に侵入しようとすると確定フリーズ

以下のMODの1.6.1Verで発生していました。現在最新の1.9では発生しません。

追記:Ver 2.02でランダムフリーズが発生していましたが最新(2.1.0)で解消されました。

 

www.nexusmods.com

 

[解決]非CTD:パワーバッシュ時、ガードしっぱなしになる。

ガード後に攻撃をしようとするとパワーバッシュしてしまったりする不具合。

原因はOne Click Power Attack NG。MCO環境下でパワーバッシュ後、ガードボタンを離しているにもかかわらずガードのままになってしまい、そのまま攻撃ボタンを押すことでパワーバッシュになってしまっていました。

www.nexusmods.com

対策:Disable Block  During Attackのチェックを外す

これでガード後もガードボタンを離していれば攻撃できるはずです。

[解決]ESLをmid-game save(進行中セーブデータ)で抜いたらゲームが不安定になる

あたりまえ体操。MODを途中で抜くとIndexがずれて最悪セーブデータが壊れる。

基本一旦ゲームを開始したらそのセーブデータではそのときに有効にしていたMODは抜かないこと、が鉄則なのですが、ESLだしいけるんじゃないか…?と思い込んでやらかした。

ESLはマスターファイルなので、こいつのインデックスがずれるとおかしくなります。マスターなのでほかのESPがマスター指定しているケースがあるため。そのESL自体は問題なかったとしても、後続のESLをマスター指定しているespがあればずれて問題が発生します。

というわけでESLファイルは他のesp、esmと同じく途中で抜かない。解決というかそもそも途中でMOD抜かない、という話でした。

CTD:SMPが一定間隔で停止する

SMP装備や髪の挙動が一定間隔で停止と動作再開を繰り返す現象が発生。

原因:Faster smpの設定ファイルの内容

www.nexusmods.com

autoAdjustMaxSkeletonsがtrue、maximumActiveSkeletonsで発生。

autoAdjustMaxSkeletonsをfalseにしてみたところこの現象はなくなりました。根本的な対策とは違うかもしれませんが、今のところこれで特に問題はないです。

おそらくmaximumActiveSkeletonsの値が低すぎて、頻繁にSMPを適応するスケルトンが入れ替わっていたからなんじゃないかと推測。CPUの性能があまり高くないので低めに設定していたのですが、これがよくなかったのか…。

-------------------------

あとがき:フリーズについて

CTDと違って厄介なのがSKSEログやcrashログに何も残らないこと。フリーズする現象からしか推測ができず解決するのに時間がかかることがあります。Papyrusログが多少助けになることもありますが、あんまりあてになりません。(とくに後で書いているメッシュの不正で発生するフリーズに関しては何の意味もない)

フリーズする要因としてまずエンジンの限界を超えたスクリプトの高負荷によるものがありますが、こちらはPapyrus Tweaks NGをインストールすることである程度解決するかと思われます。

www.nexusmods.com

メモリ不足によるものはSSE Engine Fixesを入れて物理メモリが足りないなら増設。

www.nexusmods.com

 

そしてメッシュが壊れているケース。この場合は単純にそのMODを抜けばわかるので、MeshesフォルダがあるMODを外して検証していけばそのうちわかる…のですがMeshesフォルダのあるMODは大量にある上、メッシュファイルの他にアニメーションファイルもありますからその中から選別しながらちまちま探すのはなかなか大変です。そもそもMOD一つ毎にフォルダの中身をいちいち確認するのもめんどうくさいです。

なので地形、建物、オブジェクトなどのメッシュ変更、NPCの見た目変更オーバーホール系からざっくり外して検証すると早いと思います。

前者に問題がある場合特定のロケーションで確定フリーズするのでわかりやすい。後者は特定のNPCであれば同じく特定ロケーションの確定フリーズとなりますが、山賊などの顔を置き換える場合はNPCプールから選ばれるケース、ランダムスポーン系MODなどを入れることでランダムにフリーズが発生するケースがあります。さらにSPIDなどでNPCに装備を配布している場合はその装備MODも対象にあがってきます。

確定フリーズなら前者、ランダムフリーズなら後者、という感じで当たりをつけ、最近インストールしたMODから順番に検証していくと早いです。

 

それでもだめならセーブファイルの整理とPC再起動。それでも直らなかったら…再構築でもしますか…

 

あとがき:総合

思わぬところでCTDの要因になっていたり非互換MODが見つかったりすることを考えると、MODはちょっとずつ入れて動作テスト、またちょっと入れて動作テスト…のルーチンがやはり基本ですね。

 

また個人的な考えですが、リリースされて日が浅いMODは要観察MODとしてアプデを確認するようにしておいた方がいいように思います。バグも少なからずあるでしょうし、場合によっては致命的なCTDの要因も隠れていることもあるので。

全然CTDと関係ない話ですがwabbajackリストはそのテストがある程度終わっているMODリストであると考えることができるので膨大なテストの手間の短縮、品質管理的にも有益なんでしょうね。MODコミュニティにおいてプレイヤーはテスターでもあるのだ…

Skyrim Ultimate が公開されたら遊んでみたい。

 

 

フリッカー

 

20240120142116_1