Skyrim箱庭DIY

MODによる固有の環境不具合は自分で直して快適ゲーム。CTDにさようなら。Do It Yourself!!

CTDやトラブルの原因究明をするための取り組み方



スポンサーリンク

SkyrimでMODを入れていると、絶対に避けて通れないのがCTD、Crash To Desktopです。様々な要因で発生しますが、まずはどういう姿勢で対策に臨むべきか、ということを書いてみます。問題を起こしている犯人を特定することが、解決の鍵であるのは言うまでもありませんが、この特定に失敗して検討違いな対策をとることが、CTD多発に繋がるかと思います。

まず大前提として、

バニラ(Unmodded)環境においては滅多にCTDは起きません。

つまり大半は自分のMOD環境に問題があるということです。

また、CTDはしないものの想定した通りの効果が出ていない場合も多数あります。こういったことの対策の仕方も、合わせて書いておきます。あくまで考え方であって、具体的手順では無いです。

自分の環境はマージしないと無理な量のMOD入ってますが、CTDの発生は記憶に無いほど少ないです。数十時間は安定して動くかと。相当量の互換パッチ作りましたが・・・(SS環境のは結構落ちます。無茶してるので。あとFNIS絡みの初回落ちは勿論有ります)

※Skyrimの構造理解をした上でCTD対策をしようという人向けです。SkyrimやMODの構造把握なんか知ったこっちゃない!という人は、CTD解決を試みること自体が間違ってますので、CTDする場所には近づかない、ロードして何度もリトライする、MODを全部抜く等の対策で、ゲームを楽しんでください。基本的にバニラ環境ではCTD起きないですが、適当にMOD使ってる場合は頻繁にCTDします。

感じ悪い書き方してますが、「MODを使う」というのはそういうものです。改造ですから。

CTDの「原因」と「状況」を混同しない

原因」というのは、スケルトンのボーンが足りなかったとか、マスター指定されてるMODを入れ忘れていた等、具体的に理由を明示できる、客観的な「証拠」です。証拠を頼りに対策を行えば、それに起因するCTDは解消します

対して状況というのは、「AAというMOD抜いたら直った」とか、「BBというMODで追加されたダンジョンに入るとCTDする」といった、確認できた「状況」です。この時点で「AAやBBというMODが悪い」、と結論付けることが、原因と状況の混同です。

あまり偉そうなことは言えないのですが、CTDに対応するには、エンジニアリング的な視点を持つことが重要かと。

 

CTDの「状況」だけでは駄目な理由

  • AAというMODを抜いたら直った。だからAAが悪い
  • BBというダンジョンMODでCTDするからBBが原因

この判断が何故駄目かというと。抜いたAAというMODが単に負荷の大きいMODだったとしたら、原因は他にあるにもかかわらず、「再現性が低くなっただけ」の可能性があります。

BBの方はMOD追加ダンジョンなので、確実にそれが悪く見えるかも知れません。ですが、例えばそのダンジョンに山賊NPCがスポーンするとします。その山賊は別のMODで変更されていて、そこにボーンが足りていない等のスケルトンのミスがあったとしたら?

この場合、「スケルトンが正しくない山賊のスポーンしたセルに入ること」が、CTD条件となるので、ダンジョンは全く関係ありません。たまたまMODで追加したダンジョンに、CTDを引き起こす山賊がスポーンしただけ、ということです。

もしこの場合、ダンジョンMODを抜いて解決、としていた場合は、別のエリアで同じ山賊がスポーンしたときに、再びCTDします。

 こういった場当たり的な対処をしていると、CTDを「先送り」にしているだけで、このまま新しいMODを増やしていくと、CTDを引き起こす要因が次々と溜まっていきます。複数の要因が増えすぎると、原因の特定が困難になります

 

先送りのツケが生む更なる困難

new game直後は快適安定なのに、時間が経つにつれて不安定になっていく経験、みんなしてるんじゃないでしょうか。これはプレイが進むにつれてNPCの生成が進んだり、フラグが立つごとに新しいスクリプトが稼動しはじめるとか、負荷的要因も多いはずです。

しかしそれ以外に、こうした先送りのツケが溜まってくる場合も多いと思います。他にも潜在的な不具合が新たに見えてくる場合も。

例えばさっきのスケルトンの例で言えば、問題のある山賊のスポーンエリアが「Whiterun周辺以外」だったとしたら、Whiterun周辺で遊んでいる限りは安定してるでしょう。で、ある日遠くに探索にでかけたら、「急に不安定になった」と戸惑います。ですがこれは、最初から存在した「Whiterunから離れたら出るに決まってる不具合」が、ようやく表に現れただけの話です。

要するに、ただ行動エリアを広げただけでさえ新たな問題が出てくる可能性があるということです。今まで大丈夫だった=問題無い環境とは限りません。思い込みを捨てて、客観的に状況を分析しないと、一層カオスです。

 

CTDの「状況」からCTDの「原因」を特定する

状況」は、単体では原因が特定できなくとも、何度も発生したときの状況を 積み重ねていくと、傾向が見えてきます。そこから本当の「原因」をつきとめます。

例えば、走るとCTDしやすい、NPCの多い所でCTDしやすい等の傾向がわかれば、一要因としてVRAM転送速度が足りていない事が考えられます。

特定のセルに侵入すると確定CTDする場合は、そのセル内にCTDを引き起こす「原因」が確実に存在します。

例えば、30日待機によるNPCのリスポーン(セルリセット)で状況が回復したら、CTDを引き起こすNPCがいた可能性が高いですし、回復しなければ、ナビメッシュの大改編でドアテレポートが狂ったかもしれません。

もちろん、「最近入れたMODを抜いてみたら起こらなくなった」というのも立派な「状況」確認です。原因と混同しなければ、非常に有効な情報です。 

 

 基礎シリーズで書いた記事は、メッシュやスケルトン、アニメーションやロードオーダー等、こういったことでCTDやその他問題を起こしていないかを自分で確認するためにも必要な訳です。基礎的なことを知らないと、集めた「状況」の積み重ねを見ても、その中から原因を特定することができません。

 

「思込み」や「短絡思考」が原因特定を更に困難にする

別の記事でも書きましたが、たまに聞く例として、

「NPC美化MODとAIが競合する筈がない」

という発想。気持ちは判らなくも無いですが、根拠の無い思い込みです。TES5Editで見れば分かりますが実際は競合します

 

「Leveled List使う装備MOD外したらNPCがマッパ。Leveled Listの競合が原因」

間接的にはLeveled Listも影響してますが直接要因ではありません。トラブルの原因っぽい単語に短絡しただけ全く根拠がありません。Leveled Listや競合を正しく知っていれば、この発想は無いです。

 

こういった発想は、気分的には自分が思考しているような錯覚をしますが、実際の原因特定には訳に立たないどころかマイナスになっています。

事実を確認した上で一段の仮説を立ててみることは有効ですが、二段三段と飛躍するとキバヤシになってしまいます。(彼は神ががっているので許されますが)

 

1つのMODだけでCTDや不具合になることは稀

CTDに至らない場合でも、1つのMODだけで悪さをしていることは、あまり無いです。問題となるMODをバニラ環境に1つだけ入れて、それで問題が起きた場合は、そのMODの不具合といって良いでしょう。しかし複数のMODを入れている場合は、必ず同じレコードを食い合っている2つ以上のMODがあって、結果的に不具合、悪いとCTDという形になります。

「○○というMODが悪い」という見解を安易に示す人もいますが、大抵は「○○とxxの組み合わせが悪い」という場合が殆どです。それが分れば、まずはTES5Editで比較してみれば良いだけです。それが出来ずに「干渉してる」「競合してるっぽい」と言ってるだけでは、どちらか諦めるしか無くなります。

 

CTDや不具合の原因究明の手助けに、せめてTES5Editだけでも使う

最後に。競合やトラブル起きた場合は、無理に共存せずに片方のMODを外せばいい、という人もいると思います。改造してまでやるつもりないよ!的なスタンスです。

もちろん悪いとは言いませんし、それもプレイスタイルだと思います。ただ、それでもTES5Editだけは使うことを推奨します。クリーニングだけで使ってる人は多いと思いますが、それ以外にレコードを軽く読むくらいでは使える方が良いです。それが出来るだけで「競合」してるか否かが判読できるからです。便利ですよ。

 

関連記事

 

 

その上で、どうしても手詰まりになった時は、以下の記事を参照してみてください。もしかしたら解決の糸口があるかもしれません。完璧に一致している状況の例はあまり期待しないでください。似た様な状況からヒントを得られれば、自力解決の目処もつくというものです。

※以下のリンクの内容がわからない場合、基本的ノウハウが全く足りていません。そのままでCTD対策するのは恐らく無理です。「絶対落ちない方法」等の検索ワードでランディングしてる人も同様に。基礎シリーズ等の記事有りますので読んでみることをお勧めします。

 

その他の関連記事は下にあります。