読者です 読者をやめる 読者になる 読者になる

Thinking Skeever

Skyrim/The Witcher 3 Modについてのあれこれ。FoModの作り方、Mod導入時のトラブル事例などのニッチな話を書いていきます。a.k.a. BowmoreLover@nexusmods

Skyrim Mod導入トラブル事例:Mod Organizerの左右のリストの違いについて

Mod導入トラブル事例

質問

MOにはModのリストが左右に2つあるけど、何が違うの?
右のリストはソートボタンで自動並べかえできるけど、左のリストの順序はどうすればいいの?


回答

右のリストはSkyrimがModのプラグインファイル(esm/esp)をロードする順序です。Skyrim標準ランチャーのデータファイル一覧と機能的に等価です。
左のリストはModファイルの上書き順序です(≒Modのインストール順序)。左のリストの順にファイルの上書きが行われ、下にあるModのファイルが優先されます。Modの種類によっては手作業での並べ替えが必要です。

ケース1:リテクスチャMod導入時

ModAとそのリテクスチャModBがある場合、ModA->ModBの順にしないとリテクスチャが適用されません。

ケース2:同じNPCに対する美化Modが複数ある場合

NPCの見た目情報は、メッシュとテクスチャだけでなくesp中にも含まれています(色情報など)。このためmodで提供されたものをセットで使わないと正しく表示されません(顔がおかしくなったり黒くなったりする)。
同じNPCへの美化を含むModAとModBがある場合、基本的には左右のリストで並び順を同じにしておく必要があります。
※これだけではうまく行かないケースもあります。下記補足の「BSAファイルとルーズファイル」も参照してください。

補足

上記の回答の意味を正確に把握するには、Modのインストールの仕組みを把握するのが近道です。
なんとなく把握しておくだけでも役に立つと思うので、分かる範囲で解説してみます。

Skyrimが読み込むファイルについて

Skyrimのプログラム(TESV.exe)は次のフォルダのファイルを読み込んでゲームを起動します。
Mod管理ツールに何を使っていようと、プログラムが「起動された時に」フォルダにあるファイルを読み込む点に留意してください。

・Dataフォルダ (標準では C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data)
 プラグインファイルおよびそれに付随するテクスチャ/メッシュ/音楽/音声/フォントなど
・My Gamesフォルダ(標準では C:\Users\Windowsユーザー名\Documents\My Games\Skyrim)
 Skyrim.ini / SkyrimPrefs.ini / セーブデータ / ログファイル など
・AppDataフォルダ(標準では C:\Users\Windowsユーザー名\AppData\Local\Skyrim)
 Plugins.txt (プラグインのロード順序定義ファイル)

管理ツールの違いによるModのインストール方法の違い

管理ツールを使わない場合(いわゆるノルド直入れ方式)

手作業でDataフォルダにModファイルを解凍してコピーし、iniファイルを直接修正、Skyrim標準のランチャーからプラグインの有効/無効とロード順序を変更して起動します。

ファイルをどんどん上書きしていく方法なので、特定のModだけをアンインストールするのが困難です。また、Modのインストール順序が間違っていた場合、一度初期状態(Steamからダウンロードした直後)の状態に戻し、最初からやりなおす必要があります。

Nexus Mod Manager (NMM)を使う場合

※最近のNMMでは仮想フォルダ機能が追加されているようですが、筆者は未使用なので2015/7頃以前の旧仕様を前提に記載しています。

Modを一旦NMMの管理フォルダにインストールし、Modを有効化することでDataフォルダにファイルをコピーします。

ノルド直入れ方式と異なり、NMMが「どのファイルをコピーしたか」を覚えているので、Modを無効化して特定のModをDataフォルダから削除できます。
Modのインストール順序が間違っていた場合、すべてのModを無効化してから正しい順序で有効化しなおすことで修正することができます。

基本的にはノルド直入れ方式の操作をある程度自動化するものなので仕組みが単純です。
「良く分からないならとりあえずNMMを使っておけ」という声が多いのはこのためですが、2015/12現在では仕様変更によるトラブルが多いようで、こうした声も減ってきました。

Mod Organizer (MO)を使う場合

Modを一旦MOの管理フォルダにインストールします。ここまではNMMと良く似ていますが、大きく異なるのはDataフォルダへのファイルコピーやMy Gamesフォルダ/AppDataフォルダのファイル修正を「一切行わない」ことです(実際には管理ファイルなど少量のファイルがコピーされますが、無視できる範囲です)。
でもこれらのフォルダやファイルを変更しないとSkyrimにModを追加できませんね。一体どういうことでしょうか?

MOにはSkyrimを「起動した時」に仮想的なDataフォルダを作成し、Skyrimに対してModがインストールされていると「見せかけるための」仮想フォルダ機能が用意されています。仮想フォルダに対して左のリストの順番にModをコピーする(比ゆ的表現です。実際にコピーされることはなく、ファイルマッピングが行われます)ことで、SkyrimにModを読み込ませます。同様に、MOのプロファイルで定義したSkyrim.ini, SkyrimPrefs.iniと、MOが生成したPlugins.txtも仮想的に上書きします。MOでiniファイルを修正するとき、My Gamesではなくプロファイル定義のものを修正する必要があるのはこのためです。

試しにMOからSkyrimを起動した後、エクスプローラーでSkyrim/Dataフォルダを覗いてみてください。Modファイルがないはずです。このことから仮想フォルダはMOの起動メニューから起動されたプログラムにのみ認識されるように作成されることが分かります。ちなみに、起動メニューから起動すればSkyrim以外のプログラムに対しても仮想フォルダが作成されます(TES5EditやGenerateFNISforUsersなどのツールも動作するのはこのためです)。

仮想フォルダの様子はMOの「データ」タブで確認できます。Mod列にはどのModのファイルが採用されたか、競合により上書きが発生したかが表示されますので、左のリスト並べ替えの参考になります。

MOの仮想フォルダ機能については別の記事でもう少し詳しく説明する予定です。

その他のMod管理ツールを使う場合

他にもWrye Bash、Tes Mod Manager(OBMM)といった管理ツールもありますが、基本的にはNMMと同様の方式と思われます。




BSAファイルとルーズファイル

BSAファイルとはベゼスダ製ゲーム専用の圧縮ファイルです(ZIPのようなものです)。
ルーズファイルとは、BSAファイルに圧縮されていない生のファイルを指します。

ルーズファイル優先の原則

同じファイルがBSAファイルとルーズファイルの両方にある場合、常にルーズファイルが優先されます。

例えば次のファイルがある場合

 Data\フォルダ
   HOGE.BSA
     textures\actors\character\female\astridbody.dds
     textures\actors\character\female\femalebody_1.dds
   ルーズファイル(非圧縮ファイル)
     textures\actors\character\female\femalebody_1.dds

SkyrimはBSAファイルからastridbody.ddsを、ルーズファイルからfemalebody_1.ddsを読み込みます。簡単ですね。

BSAファイルとルーズファイル混在時の問題点

NPC美化Modを複数インストールする場合を考えてみます。

ModAの提供ファイル(ルーズファイル形式)

 ModA.esp
 ルーズファイル
  textures\actors\character\female\astridbody.dds
  textures\actors\character\female\femalebody_1.dds

ModBの提供ファイル(BSAファイル形式)

 ModB.esp
 ModB.bsa
  BSAの中身
  textures\actors\character\female\astridbody.dds
  textures\actors\character\female\femalebody_1.dds

これをMOにインストールして、左右のModA->ModBの順に並べます。

MO経由でSkyrimを起動したとき、仮想フォルダは次のようになります。

 ModA.esp
 ModB.esp
 ModB.bsa
  BSAの中身
  textures\actors\character\female\astridbody.dds(ModBのファイル)
  textures\actors\character\female\femalebody_1.dds(ModBのファイル)
 ルーズファイル
  textures\actors\character\female\astridbody.dds(ModAのファイル)
  textures\actors\character\female\femalebody_1.dds(ModAのファイル)

プラグインはModA.esp->ModB.espの順で読み込まれますが、テクスチャについてはルーズファイル優先の原則によりModAのテクスチャが読み込まれます。その結果、ModB.espのNPC定義とテクスチャの食い違いにより表示がおかしくなる可能性があります。
ここで注目すべきなのは、MOが仮想フォルダにファイルをコピーする際、BSAを展開したりせず、インストールされたファイルをそのままコピーするという点です。

MOにインストールされているModB.bsaをあらかじめ解凍しておくことで、意図通りのファイルが優先されます。

BSAファイルの解凍方法

BSAファイルを解凍してルーズファイルにする方法は次のとおりです。
・BSA解凍ツール(BSA Extractorなど)を使う
・MOでModを有効にした後、右の「アーカイブ」タブを開き、bsaファイルを右クリックして「解凍」メニューを選択する
・ルーズファイル版をインストールする(美化Modでは多くの場合Loose File版が用意されています)


以上

改訂履歴
2015/12/16:初回公開
2016/01/09:BSAとルーズファイルに関する補足を追記

Copyright (C) 2015,2017 ThinkingSkeever, All Rights Reserved.
ブログの記事内に記載されているメーカー名、製品名称等は、日本及びその他の国における各企業の商標または登録商標です。
リンクはご自由に。記事の転載はご遠慮ください。記事を引用する場合はトラックバックするか元のURLを明記してください。