FC2ブログ

【OBLIVION】 安定化マニュアル

OBLIVIONの安定化について

なんとなく思い立ったのでOBLIVION安定化企画を記事にしていこうと思います。
さてさてみなさま方、OBLIVIONを遊んでいて突如ゲームが強制終了してしまう
いわばCTDに見舞われた方は恐らく100人中100人いらっしゃるかと思われます。

最早親戚のような間柄でもあり、顔も見たくない厄介なものでございますが
そんなCTDに対して私が行っている対処法をいくつかご紹介していこうと思います。

OBLIVIONもとい、MODを導入して遊ぶ事ができるゲーム全てに言えることですが
CTDするにはそれ相応の理由が必ずあります。
その原因を潰していけばヘビーなMOD環境でも
CTDの発生率をかなり減らすことができます。
私を例にしますと、私は結構グラフィックマシマシで景観に重点を置いたりしていますが
CTDはMOD導入ミスなどによる確定CTD以外はほとんど出ない感じで留まってます。
今回はあくまで私が行っている対処法をいくつかご紹介していきます。
間違った情報もあると思いますので、その際はフォローしていただけると助かります。
また他にも何か有用な情報がございましたらご教授いただければ幸いです。




CTDの見極め

一口にCTDといっても様々なタイプがあります。
OBLIVION_CTD_02.jpg
・ 起動時の確定CTD
・ セーブロード中の確定CTD
・ ゲームプレイ中の確定CTD
・ ゲームプレイ中の不確定CTD

起動時の確定CTDの主な原因
MOD導入時に必須となるマスターファイルが足りてない
必要なファイルが欠けている
スペックが足りていない

セーブロード中の確定CTDの主な原因
MOD環境不適合によるファイル欠損
MODアンインストールによるファイル欠損
セーブデータ破損

ゲームプレイ中の確定CTDの主な原因
MODの導入ミスによるもの
MODの競合によるもの
スクリプトエラー
サウンドボードに起因するもの

ゲームプレイ中の不確定CTDの主な原因
VRAM不足
過負荷によるクラッシュ
スクリプトエラー


※確定CTDの多くはファイル欠損が原因で起こる
必須MODが足りていなかったり、動作に必要なファイルがなかったりすると
当然確定でCTDが発生します。
起動はできても特定のエリア侵入時に確定でCTDする場合も恐らくこれに当てはまります。
まずは必要なものがしっかり導入できているかチェックしてみるといいかもしれません。

ゲーム起動時CTDに引っかかる場合の多くは
元々あるVanilaのファイルが欠損した可能性が高いです。
これはWryeBash (Bain) やOBMMを使用していて
MODをアンインストールした時に起こりやすいです。
これらのツールはMOD導入時に上書きされた特定のファイルは
そのMODアンインストール時に一部自動修復されないのが原因です。
Menuファイルの欠損があるあるですね。

次にマスターファイルの欠落が考えられます。
WryeBashの Rebuild Patch の例が分かりやすいかも。
WryeBashの Rebuild Patch で Bashed Patch を生成すると
Bashed Patch に現環境のたくさんのesm, espが自動的にマスターに登録されます。
ここでマスターに登録されていたMODをアンインストールすると
その esm, esp が欠損してしまうため起動時確定CTDが発生します。
再度 Rebuild すれば直りますが、この辺は慣れていない方だと見落としがちですね。
ただこのespの欠損に関しては万一不足していた場合
各ツールで指摘してくれるものが多いので比較的特定しやすい部類かと思います。
OBLIVION_CTD_11.png
このようにファイルが欠損してしまった際
すぐに修復できるようバックアップは必ず取っておきましょう。
特にVanilaデータの全バックアップは必須かなと思います。
またどのファイルが欠損したか判断できるよう、BainやOBMMを使用している方は
一度に複数のMODをアンインストールするのは避けたほうが無難かもですね。




MODの競合をチェックする

MODの競合をチェックするのにお勧めのツールはTES4EDITです。
このツールで大概の競合は確認できます。

OBLIVION_CTD_01.jpg

TESをプレイしている方にとっては馴染みのツールだと思いますので
使い方に関しては割愛します。
とにかく esp を含んだMODを導入する際は
かならず導入直後、起動前にTES4EDITで競合チェックをする
くらいの感覚で使っても損はないと思います。

さて、ここで "大概の競合は防げる" という言葉を使いましたが
TES4EDITでも競合を確認できない箇所があります。
そしてそれがゲームプレイ中の確定CTDに直結する事もあるので
その部分を補足していこうと思います。

それはスクリプト (Script) の項目になります。
スクリプトはそのMODを動かすために組まれたプログラムのようなものなので
新規に組まれているものが多いです。
そしてそのプログラムが他のMODのプログラムと干渉したりすると
それが確定CTDを引き起こす原因にもなったります。
スクリプトはそのほとんどが競合をチェックすることが出来ません。
よってスクリプトの項目を含んだespを持つMODを導入する際は
そのMODが他MODと干渉するかどうかを自身で判断していく必要があります。
もし競合するようなMODがありそうなら導入は避けたほうが無難かもしれません。

スクリプト処理の最悪なパターンの1つに
一度セーブするとセーブデータに永続的に残るというものもあります。
ですのでそれらのMODは慎重に導入すべきでしょう。
それでも導入を検討する場合はセーブデータを複数用意しておくのが無難です。




OBLIVION.ini の確認

OBLIVIONではゲームがクラッシュした際にiniが勝手に書き換わる症状があります。
これにより予想外の問題が発生したりしますので
OBLIVION.ini は "読み取り専用" にしておくという対処法があります。
ちなみに私はMO環境なのですが、iniが勝手に書き換わり
ファイル容量が数十MBになる現象に何度も遭遇してます。
MOだと "読み取り専用" にしてもダメみたいですね・・・。

逆に不具合が発生した際には一度iniを削除して新しく生成させることで
症状が改善される可能性があるのもこういった事が理由になります。

※OBLIVION.ini を書き換える際の注意点
UI用のMOD導入時にFontの書き換えをしていないか注意しましょう。
これも慣れていない方が見落としやすい箇所です。
DarNified UI などを導入する際 OBLIVION.ini の [Font] の項目を
直接編集する作業を指示されます。
OBLIVION.ini を削除する場合や、入れ替える際に
この編集作業を忘れてしまうのがあるあるです。


OBLIVION_CTD_04.jpg

別のUIMODを使用したい場合や
テストプレイでVanilaの環境 (Vanila UI) に戻した場合
[Font] の情報に食い違いがあると起動時に確定CTDしますので気をつけましょう。
MO (Mod organizer) 環境ですとiniを環境別に用意できるので
この食い違いをある程度予防できるので便利かもですね。
OBLIVION.ini は随時バックアップ推奨です。




VRAMについて

プレイ中の不定期的に訪れるCTDの原因の1つ。
このVRAMの処理の仕方の違いが
スカイリム (LE) とオブリビオンで大きく違うところになります。


ENBoostについて
TESのこの2つのタイトルは32bitアプリのゲームなので
VRAMの上限は4GBまでと制限されています。
スカイリム側はこのリミットをENBoostというMODを用いて限界突破することができます。
OBLIVION_CTD_05.jpg
これにより2k~4kの高解像度テクスチャをふんだんに利用することが可能に。
オブリビオン側はENBoostはv0259 にのみ搭載されています。
ただしv0259はENBプリセットとしては動作しないという欠点があります。
(※ENBを普通に使うならv0181になる、但しこちらはENBoost機能がない)

よってオブリはENBを使用するか、ENBを使わずにENBoostのみ使うかで
ゲームの安定性に大きな違いが出ることになります。


textureの最適化について
texture最適化がゲームの安定性にどれほど影響するかと言いますと
何も考えずに2kテクスチャやハイポリゴンを多様すると
あっという間に不安定環境に陥ります。
グラフィックシェーダーは特に消費量が多いので
兼用されていたらCTDへの寿命は尚早まります。
ゲーム開始後1,2時間も持たずに不定期的にCTDするようならこれを疑いましょう。
オブリビオンがuGridsToLoadの拡張と相性が悪いと思われる理由の1つがこれです。
情報量が増えればあっという間に4Gに到達しCTDを引き起こすためです。
スカイリムで例えるなら過去 "無限ロード" に出くわした人は
この食いつぶされた状態に陥っていたということになりますね。

オブリビオンではENBoost環境であれば2k以上も可能ですが
非ENBoost環境ならテクスチャは1kで最適化させるのが
長期的な安定化につながると思います。
グラフィックシェーダー (OBLIVION Reloaded, OBGE など) を使用している場合は
それだけでVRAMをかなり消費しますので尚最適化が必要になってくると思います。

テクスチャ最適化には Optimizer Texture というツールが
一括処理が出来るのでお勧めです。
OBLIVION_CTD_06.jpg
FPSの改善などが注目されがちですが
オブリに関してはVRAM消費量が減る事に注目してます。

私的にですがこのテクスチャの最適化作業は
安定性にかなり高い効果があると感じました。
長時間プレイしていてもまったく落ちなくなりました。
逆に油断して2kを入れまくるとあっという間に不安定状態に逆戻りします。
スカイリムではENBoostは最早導入必須と言えるものになってると思いますので
今からオブリを触る方にとってはここが意外に盲点になりそうかなと思いました。


※texture最適化の注意点
ddsファイルにはそれぞれミップマップの有無があったり
DXT1 または DXT3 or 5 で生成されているものがあります。
保存する際にこの辺の設定を間違えると
透過処理がなくなったり、変に発光したりと表示がおかしくなるので注意しましょう。
慎重にやるならPaint.NETやPhotoShopなどで個別に行ったほうが無難です。
ちなみに私は個別にやる派ですw
後私も詳しくは分からないのですが、2kを1kに圧縮した際に
同じ設定で圧縮しても表示がおかしくなるテクスチャが一部ありました。
この辺は諦めて2kのままで使ってます。


VRAMキャッシュ開放MODについて
他にはオブリビオンにはVRAM開放MOD (ビデオメモリのバッファを行うMOD) が
いくつか存在するのでそれらを利用すれば多少の凌ぎにはなると思います。
が、やはり根本を改善しなければあっという間にパンクすると思いますので
過信はできないかなと思います。

これまたなるさんが記事にしてくださってましたので貼っておきます。
Wikiの紹介記事はこちら

ちなみに私は HTFpcbLazyPCB を2つを同時に使ってました。
HTFpcbはNPCの音声が途切れ途切れになる不具合がありますので注意。
1分間隔くらいに設定すると直ります。




過負荷によるクラッシュ

こちらもプレイ中の不定期的に訪れるCTDの原因の1つ。
こちらはVRAMとは違い主にMEMORY側 (物理メモリ) の問題になります。
オブリビオンは上記のVRAMの問題と似たり寄ったりで
古いエンジンのため物理メモリは2Gまでしか扱うことができません。
これらをサポートするMODがいくつか存在しますので導入を推奨しておきます。

4GB Patch
オブリビオンの物理メモリの上限を拡張するMODです。
32bitOSなら4Gまで、64bitOSなら4G以上に拡張されます。
この仕様を見る限り64bitOSを強く推奨します。
この物理メモリの拡張は安定性に高い効果が得られます。

Oblivion Stutter Remover
オブリビオンのメモリの処理機能を書き換えて安定化させるMOD。
詳しくはWikiやなるびりおん様が記載してくださってます。
上の 4GB Patch と併用するのがお勧め。



Nif最適化について

Nif最適化は比較的新しめの話題になりますね。
これは以前なるびりおん様がNifのゴミをやっつけろ!という記事で
詳しくご紹介してくださっております。
他にも記事にしてくださってる方が多数いらっしゃいます。
Nif最適化はmeshにあるゴミを取り除くことで
読み込みの軽減やFPSの向上が見込めるため全体的な安定性に繋がります。
特に光源処理の負荷軽減に大きな効果を発揮します。

オブリは今までの情報によると光源の処理はCPU側で負担していることが判明されています。
(スカイリムはグラボ側で負担しています)
よってNifのゴミを処理することで光源処理が最適化されるのだと思います。
オブリの光源処理の問題について分かりやすいのが
松明使用時場所によってFPSがガクっと低下するのを体感した方も多いのではないでしょうか。
光源処理を主とするENBなんかでもNif最適化を行うことで
場所によってはFPSが10~20ほど改善する場合もあります。
Nehrim環境でもNif最適化によりFPSが10~20ほど改善しました。
装備MODでたまにFPSがガクっと低下するものがありますが
それらもこのNif最適化で改善される可能性が高いです。
場合によってはオブリで最もFPS向上が見込める方法かもしれません。




Nif最適化に使うツール

■必須なもの
python-2.6.6 (Nvideaなら Windows x86 MSI Installer (2.6.6) (sig) をDL)
PyFFI-2.1.6.df5512c.win32

■導入方法
先に python2.6.6 からインストール。
PyFFIはインストール済みのpythonを認識するので後からインストールします。
インストールに成功していれば、右クリックから "Optimize with PyFFI" が選択出来ます。
最適化させたいnifファイルを1つのフォルダにまとめてフォルダごと最適化をかけます。

※Nif最適化はリターンが高い方法と言われておりますが
 失敗のリスクも高いので、どのNifなら最適化をかけても問題がないか
 バックアップを取りつつトライしてみてください。

※Python版のWryeBashを使っている場合
 Pythonのバージョンが書き換わるので注意してください。


またTwitterで手羽先さんの記事を紹介していただきました。
Blenderの出力の仕方で装備MODのFPSが激変するというお話です。
こちらも光源が関係しているみたいですね~。




無圧縮BSAについて

ゲームプレイ中の読み込みをスムーズにする作業です。
TESのオープンワールドはフィールド移動中は
次のセル次のセルへとマップ情報が随時切り替わっていきます。
この次のセルの読み込みの際 "マップをロードしています" という情報が
画面下部に表示されることがありますよね。

オブリビオンの場合、ここで各ファイルの走査が行われるのですが
全てのファイルがBSAという拡張子に圧縮されているため
それを一度解凍してから読み込むという2度手間の作業を行っているらしいです。
よってそのBSAの圧縮を一度無圧縮の状態に戻して
圧縮せずに再度BSA化することで情報処理速度を引き上げることが可能なようです。
結果的にセルロードへの負担が減るので安定化にも繋がると思います。

BSAの解凍は BSA Browser (第三世代版) がお勧め。
BSAの圧縮は BSA Commander がお勧め。

無圧縮後はこんな感じ
OBLIVION_CTD_09.jpg
       
OBLIVION_CTD_10.jpg
容量が増えているのが分かります。

また赤線で引いた更新日時のところですが
オブリのVanilaのBSAは更新日時が "2006/01/01 0:00" になっていないと
正常に読み込まれません。
無圧縮化作業をした際、更新日がその日に書き変わってしまうと思うので
納入助 というツールで直しておきましょう。


※Nif最適化した際の注意点 (おま環??)
Vanilaの "Oblivion - Meshes.bsa" を解凍し最適化作業にかけ
その後無圧縮BSA化した際に、一部黄色いお化けが発生するのを確認しました。
私が確認したのは "rock" meshのごく一部で確認しております。
OBLIVION_CTD_08.jpg
OBLIVION_CTD_07.jpg
今回の経緯を振り返ってみますと
・ Oblivion - Meshes.bsa 解凍時点では問題なし
・ Nif最適化作業後も問題なし
・ Nif最適化後のmeshを再度BSA化した時点で症状を確認

よって最適化後のmeshをBSA化した事が原因だというのは分かったのですが
最適化前のmeshをBSA化しても問題がないので謎なんですよねw
最適化後のmeshをBSA化せずにそのまま導入しても問題なしです。
うーん・・・この辺は分かる方いらっしゃれば情報求ムです。
恐らくは BSA Commander が悪さしているのだと思うのですが。

そんなわけで
私は "Oblivion - Meshes.bsa" は最適化せず、無圧縮化のみに留めてあります。
それとは別にBSAを解凍し、最適化した "Vanila meshファイル" を用意して
そちらをBSA化せずにMOで導入して使うことにしました。

ちょっと分かりにくいですねw
簡単に言うと Vanila mesh のBSAファイルの解凍圧縮は不安定なのでいじらず
別に解凍し最適化した meshフォルダ を作って二重に上書きしたという形です。
中身自体は一緒なので今後いじる場合は meshフォルダ側 をいじればOKという形です。

MO環境でしたらMODの出し入れが容易なので
あえてBSA化せずそのまま導入したほうが捗るかもしれませんね。




低負荷・高解像度化を目指す

最後にこれは私が環境構築をする際に意識している事になります。
低負荷・高解像度化というのは具体的には
なるべくゲームへの負荷 (FPS低下) を抑えつつ
いかに景観を良くしていけるかを考えた構築案になります。
あまりグラフィック、環境MODに興味がなければ
特に必要ない話題になると思います

オブリビオンは今までの考察からもお分かりの通り
meshファイル (Nif) によるCPUへのパフォーマンスヒットが大きいゲームになっています。
スカイリムとの比較例で最も分かりやすかったのが
TES4LODGenDynDOLOD
どちらも遠景の構築物を生成するMODですが
両タイトルで使ってみたところ、オブリはFPS低下が顕著で
あまり多くの建造物 (Nifデータ) を描写するのには向いていないのが分かります。
代わりにスカイリムではFPS低下はほとんどありませんでした (※グラボで処理しているため)
CPUへのシワ寄せがいかに負荷を高くしていたのかが分かりやすい例かなと思います。

そんなわけでオブリビオンで低負荷・高解像度化を目指す際の骨組みとなる考え方は
なるべくmesh (Nifのゴミ) を増やさず、かつオブジェクト総数も抑えつつ (CPU処理側)
テクスチャやシェーダーを中心に景観を整えていくと (グラボ処理側) 色々と安定しやすいです。
人口増加MOD、MOB増加MOD、これらのMODも
パフォーマンスに多大な影響を与えるため使用するなら要注意です。
使用する場合はしっかり安定化を図らないとCTDの引き金となりえるでしょう。

草増量もポリゴン数を増やすため結構重くなる処理ではありますが
草は景観に大きく影響するのでここはローポリ化せずにがんばってもらいます。
変わりに他の部分を最適化してそっちで温存する形です。

ENBoost環境でない方はVRAMの管理に要注意です。
上記のMODらとハイレゾMOD、シェーダー関連を併用する場合は特に注意しましょう。
VRAMに関してはENBoostである程度サポートできますが
結局CPU側にいく負担も考えるとそこにオブリビオンの限界を感じましたw

ちょうど最近Nehrimをプレイしておりまして
結構重かったので色々シェーダー関連入れ替えたりしてテストしてました。
Nehrimは自環境ではシロディールよりFPSが10~30くらい落ちますね~。
軽いエリアだとそれほど差はありませんが重い場所は特に。
すべての安定化作業を行っても重いエリアは結局重いの例

こっちはダラダラしてますのでのんびりご覧くださいw

そんなわけでコアなMOD環境を構築する場合に限るとは思いますが
この辺のバランスを考慮しながら環境構築をしていくと
より安定性の向上に繋がるかもしれません。


TOPへ戻る
OBLIVION 目次へ

コメント

非公開コメント

No title

お邪魔致しますぅ!|゚Д゚)<どーん!
安定化マニュアルとってもありがたや~!(ノ゚Д゚)ノオォオォ
こういった情報って「昔どこかで見たけど、どこだっけ・・」って
感じに陥りやすいワタクシの様な宇宙生物からすると、とっても
とっても有難いです!
それにしてもENBの作者さん、オブリ用のアップグレード
してくれないっすかね。。。(´Д`;)

Nif最適化やりたいんですけど、pythonが上手くインストール
できなくて頓挫中です。。
やはりWindows10は鬼門ですねぇ。。(´Д`;)

トライワットさんへ

あ、あ、あ、あちゅーい( ˟ ⌑ ˟ )
ワトソン先生!最近の日本諸島はもはや人類が生存できる限界を超えております!
至急国民たちがCTD症候群を引き起こさぬよう
地球安定化をすべきであります(`・ω・´)ゝ

と思っていたのですが、海外ニュースを見ましたところ
デスバレー52℃、ラスベガス46℃っておまw


こんばんは (^o^)ノ
今回なんとなく書いてみた安定化マニュアルでございますが
記事を書いている途中や今もですが
「あれぇ~?何かもっとCTDの原因になっていた厄介な症状が
 色々あったような気もするのだがー( ´^` )?」
何だっけーどこだっけーってなりますよねw
そんなわけで、都度思い出し次第色々追記していこうかなぁーと思っておりますw

>ENBの作者さん、オブリ用のアップグレードしてくれないっすかね。。。(´Д`;)
ENBとENBoostが両方使えるようにだけでもして頂ければ
色々節制していたものが使えるようになりますし
最適化作業もせずに済みますので本当助かるんですけどねーw

>pythonが上手くインストールできなくて頓挫中
私も昔Pyhon版のWryeBashを使用していたころは
WryeBashが急に立ち上がらなくなったり、処理が重くなったりと
予期せぬ事態に陥っておりましたです。
Python絡みもBSAの問題と同様環境によって色々不安定要素が多そうです(;´Д`)
あとWindows10絡みも問題多そうですよね・・・(私は未だ未使用ですw

そうだワットさんにWindows10絡みの安定化マニュアルを(° ꈊ °)✧キラーン

No title

おこんばんちゃです。
最適化だけでこんなに項目があるとは...ズボラな私には本当にありがたい。
あれもこれも見境なく入れて行くとSkyrimよりカックカクになりますもんね。

しかし文章の読みやすさといい、構成と言い、Rabiさんのブログはホントに読みやすいですね~
もはや近年のOblivionの必須マニュアルと言っても過言ではないかと( *´艸`)
ありがとうごぜえます...

sasaさんへ

こんばんちゃ(^o^)ノ

Nehrimをプレイし始めてから早2ヶ月目
プレイ時間にして50時間ほどたちそうなワタクシです。
それでも全体の半分消化したかどうかくらいのボリュームで驚きですw
予想以上に面白いですね~。

>最適化だけでこんなに項目があるとは...
スカイリムだと結構力推しでも大丈夫なところがあるのですが
オブリは何分古いゲームですから、安定化させようとすると色々なところが足引っ張って
面倒だったりするんですよね~(ノД`)

今回の記事ですが、多くの情報は使い古された情報だったりで
先人の方々の知恵は偉大だなぁとおもいましたです。
スカイリムの安定化についてはtktkさんが総まとめされていたのですが
オブリは当時まだプレイヤーの皆さんも手探り状態でCTDと格闘していたと思うので
小出しの情報が大多数でした。
そういった背景を踏まえると何か時代を感じますよねw