--.--.--

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

2009.01.17

Oblivion.exeの不可解な挙動

[BUGz] Oblivion.exe File/Directory Thrashing, Causes some CTDs?

<Oblivion.exeの怪しい挙動>
・Oblivion.exeが、[Data]フォルダ直下にある全てのInactiveなプラグイン(Esm/Esp)をスキャンするなど何らかのアクションを起こしている可能性がある。大量のプラグインを[Data]フォルダ直下に放り込んでいると、これが起因となって不可解なパフォーマンスの低下やFPSの低下が発生した。この問題は、使わないプラグインを[Data/Sub Folder]以下に移し、使うプラグインだけ[Data]フォルダ直下に置くことで解決した。
・Oblivion.exeは、「Oblivion~」で始まる名前のプラグインに対して特殊な処理を施している可能性がある。そのため、「Oblivion~」で始まる名前のプラグインを使用していると、CTDする場合がある。
・Oblivion.exeが、不定期に[Data]フォルダ以下のファイルに対してアトランダムにアクセスをしている可能性がある。プロセスモニターで調査したところ、[Data]フォルダ以下のみでなく、[Install Dir]以下及び[My Games]以下のファイルに対してもランダムアクセスしていることが確認できた。この挙動のせいで、プラグインに使用されていないファイルなど、不要なゴミファイルがランダムアクセスの対象フォルダ中に大量に存在する場合、CTDを引き起こす原因となる場合がある。BSAとしてまとめるのも一つの手ではあるらしい。

<プロセスモニターによる調査方法>
1. Microsoft.comのページから、Process Monitor v2.03をDLする。
2. Process Monitorを起動し、丈夫ツールバーの右部分で「Show File System Activity」以外の機能を全てOFFにする。
3. フィルターメニューで、Oblivion.exe以外をフィルターアウトし、非表示にする。例えば、「Filter>Filter」でメニューを開き、「Process Name is Oblivion.exe then Include」などとしてフィルターをAddすればOK。
4. 後は、「Operation」「Path」「Result」を見て、そのプロセスの挙動をチェックする。

<おまけ:BSA編>
・複数のBSAが存在する場合、一定条件下でCTDを引き起こす場合がある。例えば以下の2種類のBSAがあったとする。

 ・FILE_A.bsa
 ・FILE_B.bsa

そして、それぞれのBSAに以下のようにメッシュが重複して存在したとする。

 ・FILE_A.bsa (Meshes\Weapons\Sword.nif)
 ・FILE_B.bsa (Meshes\Weapons\Sword.nif)

このとき、Oblivion.exeはFILE_A.bsaとFILE_B.bsaを読み込むわけだが、メッシュ自体が表示されなかったり、テクスチャが欠けたままメッシュが表示されたりする。ひどい場合には、CTDしてしまうこともある。また、ミップマップのないテクスチャが使用されていると、正常に表示されなかったりなどの不具合が起きる場合がある。とにかくBSA周りはデリケートな仕様になっているようなので、ファイル群をBSA形式に圧縮する場合は、ファイルパスの重複がないかとか、各ファイルの参照ファイルがそれぞれ正しく存在するかなどを綿密に精査しておく必要がある。

※斜め読みしたのをざっくばらんにはき出してみただけなので、詳しくはリンク先のトピック参照。
この記事へのトラックバックURL
http://mojak.blog81.fc2.com/tb.php/273-2e96be29
この記事へのトラックバック
この記事へのコメント
管理者にだけ表示を許可する
 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。