トラブル/Shivering Islesのバグ のバックアップ(No.1)

Top/トラブル/Shivering Islesのバグ

2007/5/1

2007/4/18

2007/4/17

Shivering Islesのバグについて Edit

概要 Edit

Shivering Islesにゲームが続行不可になるバグが発見されました。
Shivering Islesインストール後に50〜120時間ほどプレイするとバグが発症します。
(いつ起きるかはフレームレート(以下fps)によります。fpsが高いほど発症するのも早いでしょう。)
Shivering Islesをインストールした時点で発症へのカウントダウンが始まっています。
まだShivering Islesに行ってなくても発症します。

バグの内容 Edit

Oblivionではオブジェクト(アイテム、NPC、etc)を生成するたびにFormIDというのを割り当てているのですが、Shivering Islesのとある箇所でこのFormIDを延々と生成し続けてしまい、FormIDを使い尽くしてしまうという不具合が発生しています。
fpsが高いほど発症が早まるのは、処理が早いだけFormIDの生成も早いからと言うわけです。

 

FormIDはFFXXXXXX(16進数)で表されており、上2桁はFFに決まっています。下6桁があふれて上2桁が00になってしまうとFormIDとして機能しなくなってしまいます。
(カウンターをFF000000に戻すなりすればいいだけだったのでしょうが、あふれるなんて想定外だったのでしょう。)

 

このためにオブジェクトが生成されないなどのバグが起こり始めるのです。

修正パッチ Edit

公式の修正パッチが公開されています。
公式の対応が遅れることを懸念した有志による「ユーザー作成のパッチ」はもはや必要ありません。作成に関わった皆さん、ありがとうございました。

●PC版向け Edit

5月1日、公式パッチの正式版が公開されました [smile]
SHIVERING ISLES PATCH v1.2

パッチを当てれば、ユーザ作成のパッチは不要となります。

●XBOX版向け Edit

XBOX版のバグもパッチにより修正されました [smile]

過去の記録 Edit

公式修正パッチが公開され、以下の情報は無用の物となっていますが、参考のため残しておきました。

XBOX版について Edit

XBOX版はバグがあるのかどうか自体わかっていません。
XBOX版にも同様のバグが存在することが確かめられました。
参照:公式フォーラム

記事はPC版でバグを解決したDateranoth氏によるもの。XBOX版にバグがあることを発見したのはNephele氏です。また、Nephele氏はBethesdaにメールを送っており、「現在、調査中です」との回答を受け取っています。

ユーザー作成のパッチ Edit

修正パッチはDateranoth氏により作成されました。
以下のサイトからファイルをダウンロードして他のプラグインと同じように有効にすればOKです。
FORM ID SHIVERING ISLES FIX
これでFormIDの高速無限生成は修正されます。

修正内容
Shivering Isles某所の衛兵のパトロールスクリプトに問題があったらしく、プレイヤーがそこにいないときはスクリプトを停止させる、という修正を実施しています。
Bethesdaから公式パッチが出てもプラグインをDisableするだけで元通りなので安心です。
以下に公式フォーラムでバグ修正に当たった中心的な方々を挙げさせていただきます。Many Thanks to you all!

  • パッチ作成:Dateranoth氏
  • バグ報告:The Conjuring氏
  • 原因NPC特定:UQForgotton氏
  • セーブデータ修正ツール作成:Wrye氏
  • 情報収集:ashakanar氏

ただし、この修正はFormIDの高速無限生成の修正のみなので、セーブデータのFormIDがオーバーフロー寸前、あるいはバグが発症してしまっているといった場合には修正になりません
その場合の修復方法、および、どれだけ危険な状況にあるかを調べる方法もパッチ作成者の方々が公表されていますので、それについては下記「発症危険度の確認とその対策」を参照してください。

発症危険度の確認とその対策 Edit

確認、対策ともにWryeBashのv0.7.1で可能です。
(リンク先はOblivion Wiki JPです。このツールは導入がやや面倒ですが、ここならインストール方法なども説明されていますので問題ないでしょう。)
とにかくShivering Islesのバグ対策だけ済ませたいという場合はORIDFixというツールでFormIDの確認と修正をするのがおすすめです。

●発症危険度を調べる Edit

FormIDを調べます。手順は以下の通り。

  1. Savesタブを開く
  2. チェックしたいセーブデータを右クリック
  3. Statisticsを選択
  4. 「Fbomb Counter」というところの値がFormID

ここの上2桁がFFでなければ既に発症。
上から3桁目が桁上がりしそう(16進数!)なら発症寸前の状態です。

●発症を食い止める Edit

発症寸前ないし発症状態なら以下の操作を実行します。
実行は推奨されていません。上記のような本当にどうにもならない場合にのみ実行するようにしてください。)

  1. Savesタブを開く
  2. 修復したいセーブデータを右クリック
  3. Repair Fbombを選択
  4. 入力を促すダイアログが出てきますが、そのまま「OK」をクリック
    入力を促すダイアログが出てきたらFF000000をFF100000にして、「OK」をクリックします。

で修復完了です。

次に使うFormIDを無理矢理FF100000にするという処理を行っています。
FF000000のままだと新しくエンチャントしたアイテムがリロード時に消えてしまうといった障害が発生してしまうようです。情報:UESPWiki
FF000000に修正済みなら、FF100000に修正し直した方が良いかもしれません。

●より簡単な確認と修正(別ツールORIDFixによる修正) Edit

Wrye Bashは様々なことのできる優れたツールですが導入に難があります。とりあえずShivering Islesのバグだけ何とかしたいという場合はOblivion Reference ID/FormID Fixerがおすすめです。
導入から使用までは下記の通り。

  1. ダウンロードしたファイルを解凍し、ORIDFix.exeをSaves(マイドキュメントのMy Games\Oblivion\Saves)フォルダに入れる
  2. ORIDFix.exeを実行する
  3. Openをクリックして修正(or確認)したいファイルを読み込む
    (場合によってはファイル一覧にファイルが殆ど無くて慌てますが、ファイル名が長すぎて一画面に収まっていないだけです)
  4. FixMeボタンの横の"Current Ref_ID count:"の下のがFormIDなので修正が必要かどうか確認する
  5. 修正が必要なようならSaveをクリック
  6. ダイアログが出てきますが、そのまま「保存(S)」で問題なし(セーブファイル名の頭に"ORID_"が付加されます)
  7. FixMeをクリック

以上で修正は完了です。上記の手順なら修正したセーブ名の頭に"ORID_"がついているので、それをロードして下さい。

その他の対策 Edit


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS