【MCM実装-5】スクリプトMODを配布形式にまとめる

スクリプトを含むMODを配布形式にまとめる方法を書いていきます。これができれば Nexus Mods やアップローダーで公開することができます。

配布形式には Loose files 形式とBSA形式とがあります。特にMCMスクリプトをBSAに含める場合には注意が必要です。


1. Loose files 形式

1-1. 配布ファイル用のフォルダを用意する

まずは、ファイル構成を理解しやすい Loose files 形式をやっていきます。

配布ファイルは 7-Zip を使って 7z 形式でまとめます。まずはどこかに配布ファイル用のフォルダを用意します。フォルダ名は “EkaMod 1-0” のようにMOD名+バージョン番号でつけられることが多いです。

このとき、MOD名とバージョン番号の間に半角空白を1つ入れることをお勧めします。これはMO2で導入しようとするユーザーにとって意味があります。導入時にMOD名を任意に決めるダイアログが出るのですが、MO2は半角空白の前までの文字列をデフォルトのMOD名として判定します。上の例では “EkaMod” の部分です。

そのMODをユーザーがアップデートする際、旧バージョンを抜いて新バージョンに入れ替えても同じMOD名で導入されるので、ロードオーダーが自動的に旧バージョンの位置に調整されるのです。MO2ユーザーでないと何を言っているかわからないと思うのですが、とりあえず半角空白がお勧めです。

ちなみにアンダーバーは避けた方が無難です。”EkaMod_1-0″ というフォルダ名だと、MO2は “EkaMod_” という微妙に気になるMOD名をデフォルトにしてきます。

1-2. Data フォルダと同じ配置でファイルをコピーする

MODとして使うファイルを、”Data” フォルダから配布フォルダの中にコピーします。

まずは esp を配布フォルダの直下にコピーし、”Interface”、”Scripts”、”Source/Scripts” フォルダを新規に作ります。MODで使うスクリプトファイルやMCM画像、翻訳ファイル等を、”Data” フォルダ内と同じ配置でコピーします。

psc ファイルについてはゲームの動作に影響しないため、同梱するかどうかは作者の任意です。ただ、pex の逆コンパイルが可能なことからコードの秘匿はできませんし、ファイルのバックアップの意味を込めて同梱しておいても良いと思います。pex にはパソコンのアカウント名とPCの名前が記録されていますので、気になる方は何か対策してください。

忘れがちな翻訳ファイル等も含めて抜けがないか最終確認を行い、7z 形式に圧縮すれば完成です。


2. BSA形式

2-1. CKで Create Archive を行う

BSAは、Loose files のうち esp 以外のファイルをまとめたものです。CKで esp を読み込み、File メニューの「Create Archive」を選択すると作成ダイアログが開きます。

2-2. SkyUI SDK の pex を取り除く

CKは、BSAに入れるファイルをある程度は自動的にリストアップしてくれます。ただし、MODにMCMスクリプトが含まれる場合には、同梱すべきでない “SKI_” で始まるファイルもリストアップしてしまうので、必ず取り除くようにしてください。選択状態にして「Remove」を押せば消せます。

このファイルは SkyUI SDK に含まれるファイルです。そもそも同梱する理由がない上、SkyUI のBSAより優先されると不具合の要因となり得るため、MODのBSAを作成する際には毎回取り除く必要があります。同梱するのは再配布と同じことですから、マナーの観点から言っても気をつけたいところです。

2-3. psc や翻訳ファイル類を入れてBSAを作成する

リストアップされるのは pex だけなので、そこに psc や翻訳ファイル類も入れていきます。

Windows のエクスプローラで該当のファイルを表示し、CKのダイアログ内にドラッグ&ドロップします。Vortex を使っている場合はゲームフォルダにファイルの実体があるのでこの作業が簡単にできますが、MO2ではそうはいきません。MO2でも追加作業を挟めば作れなくはないものの、スクリプトMODでBSAを作成するなら Vortex をお勧めしておきます。

「Pack files」を押すとBSAのファイル名を入力するダイアログが出ます。このとき、MCM画像のDDSは別のBSAになるため、ダイアログは2回出てきます。1回目はメインのBSAなので “esp名.bsa” という名前で、2回目はテクスチャのBSAなので “esp名 – Textures.bsa” という名前で保存します。2回目のファイル名は、esp名の後に半角で、空白、ハイフン、空白、Textures と入力します。

2-4. 7z 形式に圧縮する

2種類のBSAができたら、配布用のフォルダ直下に移動させます。esp はコピーしてフォルダ直下に置きます。これを 7z 形式に圧縮すれば完成です。

2-5. 日本語の翻訳ファイルの配布方法を検討する

日本語の翻訳ファイル “Mod名_JAPANESE.txt” を配布する方法はいくつかあります。

  • BSAに同梱する。
  • Loose files としてBSAとは別に配置しておく。
  • オプションファイルとして公開する。

一般にはBSAに同梱されていることが多いです。ユーザーは BSA Browser を使って日本語の翻訳ファイルを抽出し、”_ENGLISH.txt” にリネームして “Data/Interface/Translations” に入れることになります。

これを見越して、BSAには “_ENGLISH.txt” のみを入れておき、日本語の方は Loose files として配置しておく方法もあります。こうするとBSA Browser での抽出作業が不要になるため、ユーザーはリネーム作業だけで済むようになります。

また、Nexus Mods ではオプションファイルを公開することができるので、そこに別途日本語ファイルを上げておいても良いでしょう。


【MCM実装 シリーズ】
1. Creation Kit で Papyrus を扱えるようにする
2. MCMに登録するための基本構造を作る
3. 初期画面とページの枠組みを作る
4. ページ内の項目を作る
5. スクリプトMODを配布形式にまとめる
6. MCM設定を自動で保存する

Leave a comment

メールアドレスが公開されることはありません。

13 + 20 =