Oblivionプレイ記録 066 Wrye Bashのマージ機能について

Book Jackets: Oblivion」の「Book Placement」対応版.espを利用したいな、と思い立ちました。「Book Jackets: Oblivion」には、しとしん氏の日本語化パッチが存在するということがわかったのですが、BP対応版.espに向けたパッチは含まれていませんでした。また、自分はもとより英語名詞環境で遊んでいたので、うーんと唸ってしまいました。

Oblivion Wiki JP 避難所のページなどを参考にして、

  1. Wrye BashのBashed Patchで対処する
  2. JPBooksの書籍テキストを、Book Jacketsの.espファイルにConstruction Setを用いてインポートする

この2つの方法を試してみました。

1.の作業を通じて、何となく認識したWrye Bashのはたらきについて、書いてみます。利用したWrye Bashのバージョンは301 Standalone版となります。

Wrye Bashのマージのはたらきを観察してみた

  • JPBooks_Vanilla+SI.esp
  • Book Jackets Oblivion – BP.esp

まず、このロード順で”Book Jackets Oblivion – BP.esp”にGraphicsとScriptsのタグをつけてみました。Bashed Patchのビルドに先立って、”JPBooks_Vanilla+SI.esp”をdeactivateし、Merge Patchesの欄において、同.espにチェックを入れます。In-gameで確認すると、書籍の装丁は「Book Jackets: Oblivion」のものになっており、「Book Placement」の書籍配置補助の機能も有効でした。しかし、JPBooksの翻訳内容は反映されておらず、書籍内の文章は英語でした。TES4Editで”Bashed Patch, 0.esp”を見ても、BookのDESC(Description)は英語でした。

  • Book Jackets Oblivion – BP.esp
  • JPBooks_Vanilla+SI.esp

次に、このロード順で、”Book Jackets Oblivion – BP.esp”にGraphicsとScriptsのタグをつけてみました。Bashed Patchのビルドに先立って、”JPBooks_Vanilla+SI.esp”をdeactivateし、Merge Patchesの欄において、同.espにチェックを入れます。In-gameで確認すると、書籍の装丁は「Book Jackets: Oblivion」のものになっており、「Book Placement」の書籍配置補助の機能も有効でした。そして、JPBooksの翻訳内容も反映されており、書籍内の文章は日本語でした。TES4Editで”Bashed Patch, 0.esp”を見ると、BookのDESC(Description)は日本語でした。

要するにどういうこと?

どういうことだろう、とネットの文献にあたってみました。それらに目を通すことによって、視界はそれなりにクリアになった気がしたので(それらの文献は決して新しい物とは言えないのですが)、その中から幾つかを引用します。まずはWrye Bashの旧Manualから。

bashed patchのビルド中に、Modの中のレコードを、後にロードされる他のModがoverrideしたとしたら、後にロードされるModが勝つ。言い換えると、bashed patchへのマージにおいて、いつものrecord shadowing ruleが適用されるということだ(それ故に、マージされるModもvirtually activeであると捉えると有益だ)。

Wrye Bash – Bashed Patches – Merge Patches より引用・訳出
http://wryemusings.com/Wrye%20Bash.html#MergePatches

また、こんな記述もあります

なぜ、マージされたModからの変更部分がBashed Patchに現れないの?

“マージ”という用語がある意味、的を射てない。もっと正確な語句をあてると”Virtually Active”となる。

  • Mod、Alpha.espがとある商人が取引に際して2000 gold持つように変更するとしよう。その後、Mod、Beta.esp(Alphaより後にロードされる)が取引に際して1000 gold持つよう設定するとする。普段のロードオーダー(Bashed Patch不在時)では、Mod、Beta.espが”勝ち”、その商人は取引に際して1000 gold所持する。
  • だけど、Alpha.espをBashed Patchへとマージしたとして、Bashed PatchはBeta.espの後にロードされる、それはその商人が(Bashed Patchの働きにより)2000 goldを持つということにならないの?
  • ノー。なぜならBashがAlphaをマージする際、Bashは普段起こることを反映するからだ。言い換えればBashed Patchは実際にMod、Beta.espが所持するNPCに関するレコードを含む。なぜならBeta.espがAlpha.espを(そのレコードに関して)overruleしたからだ。
  • しかし、そうではなく、Beta.espがアクティブでないときに、Alpha.espをマージしたとする。そのケースではBashed PatchはAlpha.espからのレコードを含むだろう、そしてBashed PatchはBeta.espの変更箇所をoverruleするだろう。これが(数ある理由の一つなのだが)、Modを追加/削除した際に、Bashed Patchをビルドしなおすべき理由だ。

Wrye Bash/Flash – Bashed Patch Guide : Elder Scrolls IV – Oblivion より引用・訳出
http://modsreloaded.com/wrye-bash-bashed-patch-t3455.html

そのページにはさらに、こんな記述もありました

  • “Merge Patches”という用語におけるMergeの意味
    • ModにおけるすべてのレコードはBashed Patchにマージされる。次の場合を除いて…
    • ロードオーダーにおいて後に位置するModが、”マージされた”Modに存在するレコードを、異なるバージョンの同じレコードによってovershadowする場合を除いて、だ。その場合、Bashed PatchはそのレコードをBashed Patchへとマージしないだろう。これが時折、Bashed PatchにマージされたModを”Virtually Active”と形容する理由だ。--ゲーム内における、その効果は、さも、実際にactiveである時と変わらない、実際にはactiveではないというのに。

Wrye Bash/Flash – Bashed Patch Guide : Elder Scrolls IV – Oblivion より引用・訳出
http://modsreloaded.com/wrye-bash-bashed-patch-t3455.html

この3つの文章(後ろの2つの文章に関しては公式のものではないので、鵜呑みにするわけにはいかないのですが)では、いずれも”virtually active”という語を用いています。いずれの文章も「Wrye BashにおいてBashed Patchにマージされた.espファイルはvirtually activeと捉えるといいよ」と言っています。”virtually”という語句を辞書で調べると「仮想上、実質的に、事実上」といった意を持ちます。

僕は、「Book Jackets: Oblivion」の導入を試みるまでは、Wrye Bashにおけるマージの機能を、インポートの機能と似通ったもの、つまりその変更部分をロードオーダーに依らずBashed Patchに取り込めるものと思っていました。しかし今回知ったのは、相変わらず、ロードオーダーは物を言うということでした。そして、それは飽くまでロードするプラグインの数を節約するための機能だということです。タグづけした項目をBashed Patchへインポートする際も、「変更箇所をマージする」といった表現が為されるので、正直、自分の中ではあやふやだったのですが。

僕自身、Wrye Bashのはたらきについては、依然あやふやです。また、みっちり検証した上で書いた記事というわけではありません。なので、「兄ちゃん、それはちょっとおかしいぜ」という点があればコメント等で指摘していただけると、ありがたいです。

話を「Book Jackets: Oblivion」に戻すと、自分は結局2.の方法、「JPBooksの書籍テキストを、Book Jacketsの.espファイルにConstruction Setを用いてインポートする」が無難で確実な方法のように感じられ、そちらを選びました。その際には、Oblivionの日本語化パッチに同梱されているツール「BookExport.exe」を用い、また併せて同梱されている文書に書いてあった「Construction Set.exeのバイナリを修正して、書籍テキストのインポートの際に、余計なhtmlコードが混入する仕様を取り除く」を実践しました。それらについては、またの機会に。ではでは。

1件のコメント

  1. はじめまして、masaといいます。skyrimにここ三ヶ月どはまりしています。今装備系のルール変更modで三個のmodが競合しているのでなんとか共存させれないかとおもい、wryebashを覚えようとしたはいいものの、どのサイトみても基本の説明とか画面の説明とかがこと細かくかかれていてわかりずらく困っていたところ貴方のサイトに流れ着き、マージの意味を理解できたのかなって感じです(笑)簡単に状況説明しますので、コメントいただけたらうれしいです。

    1.armor wheight adjustment←アーマー類かるくします
    2.helmet and circlet←ヘルムとサークレット同時装備できるようにします。
    3.hood and circlet←フード類(帽子含む)とサークレット同時装備できるようにします

    現状はヘルム以外は軽くなっていて、2.3のmodはそのままの変更がなされています。私としてはヘルムだけやたら重いのがきになっていてなんとかヘルムも軽くしたいのですが。1を最後にするとヘルムは軽くなるものの2.3とも死んでしまいます。なので現状のロード順になっています。

    説明よんだかぎりではマージしてもロードオーダーが優先されるので、結局かわらないという認識でよろしいですか?

  2. はじめまして、masaさん。

    2年以上たって返信します。
    申し訳ありません。

    アーマー類を軽くするModを1番にロードしていると。しかし2番、もしくは3番のModが1番の変更を打ち消してしまっている。アーマー(鎧、ブーツなど)のなかでもヘルムに関する変更が無効になっている。

    Oblivionでいうと、マージはあまり関係がないと思います。こういったケースでは、Bashed Patchを作成する際、Bashed PatchにModの項目(保全したいもの)をインポートすることになると思います。

    ただ。SkyrimではBashed Patchの機能が(Oblivionと比べると)限定されると聞きます。僕自身、SkyrimでWrye Bashを使用してなかった事もあり、Oblivionと同様のメソッドが使えるかどうかわかりません。

    二年越しのコメントの割にはあやふやでごめんなさい。
    では :-)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です