Sarmaticus

誰も読まないような趣味の話しかしないほうのブログ

Bannerlord の mod のインストールと管理

追記: 何度も書き足していたら話の流れが分かりにくくなった気がするので, v1.2が出た直後くらいに書き直す

いろいろ書き足してごちゃごちゃしたのでマウントアンドブレード2のmodの管理方法について順を追って解説する記事を書き直した.

under-identified.hatenablog.com

以降の内容も上記の記事で改めて編集し直したので, もう読む必要がない.


マウントアンドブレード2バナーロード (以下, MB2)でいくつもmodを利用したい, とりわけ日本語ファイルを追加でインストールする際の煩雑な作業をより効率的かつ安全に管理するための方法として, インストールにはMod Organizer2を使い, ランチャーにはバニラのものではなく Novus Bannerlord Launcher を利用する方法を紹介する.

MB2は過去以上に大小様々なmodがいろいろ作られており, しかも魅力的である. ゲーム本体は前作同様に粗削りであり, アーリーアクセスを終えて「安定版」と称するようになっても相変わらず初歩的なバグや未実装箇所, そして稚拙な翻訳文が多数放置されている. そのため本体に遊び飽きてしまい新しい遊び方を求める人でなくても, 快適なプレイのためにmodを, それも複数インストールした方がいい場面が多い. 実際, 開発元もこのゲームをmodを使って遊ぶ事を前提にしている. Nexus Mods を見てもDL数で上位にあるmodにはグラフィックのバグやUIの不便な箇所を改良する内容のものがとても多い.

一方で, MB2はmodをいくつもインストールした後に管理するのが大変である. 特に日本語ユーザー, とりわけ英語がマジで苦手という人にとっては, 日本語ファイルの問題がある. modをインストールした時にはさらに, それらのテキストを日本語にするために別にファイルをインストールする必要があることが多い. MB2では日本語でプレイできるようになるまでの障害は以下の3つに要約できる.

  • modの作者は日本語の翻訳を用意してくれないことが多い
  • mod本体に対する日本語ファイルのパッチを個別にインストール (上書き)する必要がある
  • 日本語ファイルには後方互換性がなく, modの更新のたびに, 日本語ファイルの更新状況を確認し, 再インストールあるいは削除が必要になる可能性がある

特に3つ目が厄介である. 面白いmodを作ってくれる作成者であってもローカライゼーションへの対応を整備してないことが多く, 全ての変更箇所を日本語に直すのが難しい (そもそも公式もまともに管理していない疑いがある). ローカライゼーション未整備のmodで日本語を表示する最も簡単な対処法は, Mod 本体に含まれる XML ファイルを全て上書きすることである. しかし, この XML ファイルにはアイテム名等のテキスト以外にも3DモデルのIDやステータスなどいろいろな設定項目があり, これらの項目は mod の更新で変更される可能性がある. そうなるとバージョンが少し違っただけで, 古いXMLのテキストだけ日本語に置き換えたファイルを上書きすることでエラーを引き起こす可能性がある. 既に色々なmodを遊んだ人ならば, Realistic Battle Mod (RBM)のことも知っているかもしれない. 変更箇所が多いため, 他のmodと競合することが多い. そのため他のmodとの競合を解消する互換性パッチがいくつも作られているが, これらのパッチで一度上書きしてしまうやっぱりこのmodは併用しないからやめた, と戻す時にとても面倒になる. これはmod作者が悪いというよりあまりにも不便で混乱をもたらすことが十分予想できるにもかからわずローカライゼーションとゲーム内容の設定ファイルの仕様をこのようにしてしまった開発側が9割以上悪いと思っているが, それは置いておく.

こういったmod管理の面倒さを少しでも楽にできるかもしれない方法として, 今回はMod Organizer 2 (MO2)とNovus Bannerlord Launcherという2つのツールを紹介する. 以降の説明は, modのインストール方法に関して最低限のことを知っている前提で書いている. つまり、実際にいくつかmodをインストールに成功して遊んだことがある, NexusModsというサイトの存在を知っている, あとCorrect Localization JPの存在を知っているという前提でこの記事を書いている.


前置き


Vortex を使うべきか

私は使うべきでないと思う. もう少しはっきり言うと, 皆さんにはVortexを使ってほしくない. modのユーザーにも, 開発者が側にとっても使うメリットがない. 以前, 日本語修正Modのトラブルシュートの項目にも書いたように, MB2 は (設計や実装の拙さは置いといて) コンテンツをモジュール化し, 起動時のランチャーでmodごとの使用を切り替えられるようになっているので, ゲーム本体に Mod 管理機能が内蔵されていると言える. 現状ほとんどのmodのインストールはModulesフォルダに手動で置くだけでできる上に, Vortex の自動インストール機能は MB2 でうまく動作しないことがよくあるのでお勧めしない.

遊んでいるのがMB2のみで, なおかつ1つや2つだけしかmodを使ってない人にとってはあまり気にならない. しかし, Vortex は他のゲームソフトでもごみファイルを残したりクラッシュしたり挙動が不安定なことが多い. (というかこの記事書くために改めて動作確認しようと久々に起動したら際にも, インストールした別のゲームを検知できないというエラーが延々出続けてクリーンインストールするはめになった) そしてVortexの不具合なのかmodの問題なのかは一般ユーザー側にはわからないので, これらはまず最初に個別のmod作者に対する苦情となって現れるので「Vortexだけは使わないでくれ」という声が上がるのを複数のゲームタイトルのmod製作者コミュニティで観測している. mod配布ページではVortexでインストールすることを薦めるような書き方がされていることが多いが, あれはエクスプローラーで目的のフォルダを探して開いて指示通りにコピーすることに慣れてないような人に対しては, そうさせるよりはVortexのほうがトラブルが少ないから書いているのだと認識している (あるいは本人もあまり詳しくなくてvortexの問題を認識していないか). とにかく私としては, 管理ツールを一切使わずインストールするか, Vortex以外の管理ツールを使うかの二択を提示する. インストールの手間だって, 1つか2つしかmodを使わない予定ならば, Vortexがあってもなくても大差ないだろう.


Nexus と Workshop とどちらが良いか

いまさらMB2が Steam Workshop に対応していることに気づいたので追記する. いくつかのmodはNexusだけでなくSteam 公式のmod配布サービスである Workshop でも公開されている. Nexus と違って英語しか対応してないフォームでユーザー登録する必要もなく, 広告も少ないという利点があるが, 逆に欠点もある. NexusとSteam Workshopに関してどちらか片方しか使うなとは言わない. しかしそれぞれの特性を把握しておいたほうが便利だろう. 具体的には以下のような欠点がある.

  • 自動アップデートを強要される (今回紹介するMO2で管理できない)
  • 日本語ファイルを含むパッチファイルの管理ができない (仕様上Workshopで配布するのが困難)
  • Nexusより公開点数が少ない

自動アップデート機能は本来なら便利な機能になるはずだが, MB2は 「安定版」となった現在も未だにバグが多く, 更新のたびに大きく中身が変わるので, modの互換性もなくなることが多い. ついでに言うなら悪名高い「サイレントアップデート」もある. modはメーカーがサポートしてくれるわけではないので自己責任である. つまりMB2のコンテンツで大きなウエイトを占めるmod利用に関しては, ユーザーがバージョン番号と互換性を把握してある程度自衛することが必要になるので, 自動アップデート機能が逆に不便をもたらす可能性がある. よって, modのバージョン管理は自分でできる余地があるといいのだが, Steam Workshopは手動でのバージョン管理がしづらい (不便すぎて長いことあまり使ってないから確認してないが, さすがにここまで不便だと今はなにかしら改善されているかもしれない).

また, modを日本語表示させるには, だいたいmodの一部のファイルを書き換えただけのパッチでなんとかなる. しかしSteamではそういうmodとして不完全な形態のものを配布できない仕様になっている. (他のファイルも一緒にまるごと配布する? 著作権という言葉をご存知だろうか?((まあそれを言うと厳密には翻訳の公開の許可も著作者に権利があるはずだが...皆さんはちゃんと確認しているだろうか?)))

そして最後に, Steam Workshopのほうがmodの点数が少ないという欠点がある. 逆にWorkshopにしかないものもたまにあるので, 正確には欠点とは言えないかもしれない. そしてNexusのものを無断転載している奴もまれにいる. (愚痴) これはそもそもSteam Workshopはmod制作者にとって不人気で, 配布数がNexusのほうが圧倒的に多く, modを探すならこっちのほうが見つけやすいというのもある. 不人気の理由は, Nexusと違って広告収入という「実入り」がないのも理由の1つだろうが, Steamへのアップロードが圧倒的に不便だというのもあると思う. 非常に不便でどう使えばいいのかとてもわかりにくい専用アップロードツールを使わないとアップロードできないのだ. Nexusもドキュメントを書くためのBBCodeが不便だとか, メタデータがバグるとかいろいろ不便なところは多いが, Steamはそれよりもさらに使いづらい.


Mod 管理を効率的にするツールの要件

しかし, Vortexを使うなと言っても, Vortex にはあって MB2 にはない機能としてModのアップデート通知機能がある. MBは安定版になっても更新のたびに大きくプログラムを修正してるので, modも対応のために頻繁に更新が必要になることが予想される. また, 我々日本語ユーザー独自の事情として, アップデート通知だけでなくmod のテキストを日本語にするためにmodの上書きが頻繁に必要になるというものがある. 既に書いたようにMB2ではmodと日本語ファイルの対応バージョンが違うとエラーの原因になりうるので, できれば日本語化パッチのバージョンも管理できることが望ましい. これらは Mod Organizer 2 という別の Mod 管理ツールを使って対処することを提案する.

加えて, 単純に MB2 のランチャーの UI が使いにくいという問題がある. どのMod管理ツールを使うにしても, modの有効無効の設定はMB側のランチャーに集約されている. そしてMB2では Native, Sandbox, StoryMode, … というように, ゲーム本体のコンテンツがすでにいくつかのモジュールとして固定されていることは言うまでもない. modをいくつかインストールし始めてみればわかると思うが, 大掛かりな mod の多くは共用のスクリプト制御用 mod を要求する. つまり, Harmony, Butterlib, UIextensionEx, MCM の4つである. これらと, Native, Sandox, StoryMode といったゲーム本体を構成するモジュールだけでもランチャー画面はほぼ埋まってしまう. 私の日本語修正modもフォントとテキストを修正するために2つのモジュールに分ける必要があった. そしてランチャーウィンドウは大きさを変えられない上にクリックのレスポンスが奇妙なのでロード順調整のための操作がとてもやりづらく, 現在どのmodが有効になっているのか, ロード順はどうなっているのかといったことがとてもわかりにくい.

こちらの問題は, サードパーティのランチャーを使って解決する方法を提案する. 現時点ではNovus Bannerlord LauncherBannerLord Mod Launcherがこの問題を解決してくれるのでいいと思う.

以降はこれら2つのツールの具体的な使い方について紹介する.


Mod Organizer 2 について

Mod Organizer 2 (MO2) は, 元々『スカイリム』の mod 管理用に作られたソフトであるが, スカイリム以外のいろいろなタイトルにも対応している. Nexus Mods と関連付ければ, Nexus Mods のダウンロードボタンを押すと Vortex の代わりに自動で起動してくれる.

Nexus の公式ツールである Vortex との違いは, Vortex がゲームのフォルダに直接上書きするのに対し, MO2 は普段は別の場所にmodのファイルを保存しておいて, 起動時に仮想環境を起動することで, 実際にゲーム本体のインストールフォルダにコピーや上書きをすることなく, ゲームのフォルダにmod があるかのように動作してくれるところである (Vortexにも似たような事ができると称する機能があるが, まともに動いたことがない). さらに, mod同士でフォルダやファイルが重複している場合も, MO2 でどちらを優先するかを管理することができる. これらの機能を利用すれば, 日本語化や互換性パッチのためにファイルの上書きが必要であっても, クリック1回だけで上書きを適用したり, 上書き前に復元したりすることが可能になる. 逆にMO2のインストールや, modの最初のインストールには少し手動の作業が増えるが, 上書きを適用したことを忘れたまま起動したことによるフリーズやクラッシュの問題の原因が分からず何時間も無駄にするよりはましだろう.


MO2を使ってModと日本語ファイルをインストールするまで

以降は具体的なやり方を解説する. 念の為, MO2 や拡張ランチャー導入より前の話も書いておく.


解凍ソフトについて

後述するMO2はいろいろな圧縮形式に対応しているが, 時には手動で解凍する必要もある. 日本人的には, アーカイブファイル/圧縮ファイルの解凍用ソフトはWindowsプリインストールのものか, もしかすると Lhaplus を使っている人が多いと思う. しかし, Lhaplus はデフォルトでは一部の RAR 形式ファイルに対応していない. 正確には4GBを超えるファイルに対応していないらしいが, RARは圧縮効率が良いのでそういう巨大なファイルほどよく使われる傾向がある. 私としては Lhaplus 以外にも 7-Zip も用意することをおすすめする. デフォルト設定では Lhaplus と違いワンクリックで解凍できないが, 昔からある多機能な良いソフトである.


MO2 のインストールと初期設定

https://www.nexusmods.com/skyrimspecialedition/mods/6194 からダウンロードしてインストールする. レジストリを使うインストーラと, 使わないポータブル版がある.

MO2 を起動して初期設定を行う.

インストール直後だと英語表示なので, 日本語にしてしまおう. “Tools” -> “Settings” -> “General” の一番上に言語の項目がある. 初期設定では American English になっているものを Japanese に変更して再起動すれば日本語になる. Vortex と違って日本語が用意されているし, そこまで変な日本語にもなっていない. (追記: いつの間にかVortexに日本語テキストが用意されているのを確認した. かなり変で無い方がマシな水準のぎりぎり上程度なので使いたくないが.)

MO2の日本語選択

次に, MO2 に Bannerlord を認識させる. MO2 は Vortex と同様複数のゲームタイトルを管理できるので, 最初に管理するゲームの登録が必要である. MO2ではこれは「インスタンス」と呼ばれている. インスタンスの新規登録や削除は左上の矢印が循環しているアイコンを押すと行える. 対応しているゲームが自動で検出されるか, そうならなかった場合は手動で指定する. Steamならば, MB2のインストールフォルダは「管理」->「ローカルファイル」->「参照」で見つけることができる.

ゲームタイトルの自動検出の例

MO2のその他の機能は, スカイリムのプレイヤー向けに日本語情報がいろいろあるのでそっちを参考にしてほしい. ただし, スカイリムのみを想定した機能も多いので注意しながら見てほしい. 例えば競合ファイルの確認機能は, modごとに別フォルダになる Bannerlord ではあまり役に立たないだろう. 日本語ファイルが正しく配置されるかの確認に使える程度だと思う. カテゴリ分類もスカイリムとフォールアウトを想定したものなのでデフォルトでは変な分類になる.


Modをインストールし日本語化する


Modのインストールと動作確認まで

適当な Mod インストールする (既にインストールしてるならそれを使ってもいい), 今回は Open Source Armory を例にする.

www.nexusmods.com

このmodは多くのアイテムを追加するmodであり, ローカライゼーションIDがよく整備されているので上書きはほとんど必要ないが, v1.14.0 時点では1つだけIDの重複がある. 更新で修正されたのでこの問題は気にしなくていい. そして私がすでに日本語ファイルを作って配布しているので, 日本語ファイルをインストールする例としてわかりやすいと思う.

まずはmod本体をインストールする. まだインストールしていないなら, Nexus Mods のページからダウンロードする. 既に紐付けられているはずなので, MO2が起動してダウンロードされる. ただし, 5GB以上あるので時間がかかる. なので, ここでは比較的軽い Open Source Saddlery か Weaponry をダウンロードすればいいだろう.

インストールが終われば, ダウンロードファイル一覧に表示されているのでクリックする1. このとき, 名前の確認が必要になる. MO2では, OSA のように同じページで複数のmodを配布しているタイプのmodは, たいてい名前の認識がおかしい (Nexusは自動ダウンロード時のデフォルトのファイルを設定できるので, それしか参照していないのだろう. デフォルトは一番上に表示される) ので適宜修正する必要がある.

すると左のペーンに表示されるので, これで modがMO2にインストールされた状態である.

いろいろインストールした状態

なお, 既にCorrect Localization JPの説明書でも触れたが, ここでインストールしたフォルダを本体に移動し, MO2 には空のフォルダだけを残しておけば, modの更新通知としても使える. このように更新があった場合は警告アイコンが表示される. この状態でも右クリックで更新チェックを即時実行することも可能だ2. ただし, このやり方は手動作業が増えるので, 操作ミスが増える可能性がある. やるかどうかはそれぞれで決めてほしい.

このやり方にする場合, インストールしたmodを右クリックするとmodのフォルダが実際に置かれている場所がエクスプローラーで開かれるので, MB2のModulesフォルダに移動させ, このようにmeta.iniファイル以外何もない状態にしておく (meta.iniは放置しても消してもよい). これをやるとmodとして不正なフォルダ構造と認識され, 右側に☒マークがついて煩わしいが, 無視する3.

このように空にする

上記のようにフォルダを手動で移動せず, 全部MO2上で扱っても問題はない. その場合は忘れずに左側のチェックボックスにチェックを入れる. このチェックはMO2側がmodのファイルを読み込むかどうかの設定であり, Bannerlordのランチャーとは独立した設定なので, 使用したい場合はMO2とランチャーの両方でチェックを入れる必要がある. よって2つの方法はどちらも一長一短である.

  • (MO2側ではフォルダを空にする場合) MO2上で, mod本体と, 翻訳用の上書きパッチを見分けやすいが, 手作業が増える, 更新のたびにmodを一旦消さないと誤動作の原因になる
  • (全てMO2側で管理する場合) 操作のほとんどが自動化されるが, MO2での表示がごちゃごちゃしてみづらくなる, MO2とランチャー両方でチェックが必要になる

ここでいちおう動作確認してみると良いだろう. 右上に, たぶん Launcher という名前で馬のアイコンがあるので, このままその右隣の「実行」ボタンを押せばいつものランチャーが立ち上がる. あとは普段どおりに, 使いたいmodにチェックを入れて遊ぶだけである. なお, MO2で管理しているmodは実行ボタン経由でゲームを起動しないと, MB2のフォルダに存在しないことになるため, そもそも一覧に表示されない.. これが少し面倒だが, Steamにはショートカットを登録する機能もあるので, 設定すればSteamから直接立ち上げられないこともない.

繰り返しになるが, インストールしたmodをMO2側で管理するか, MO2側はダミーにして本体のModulesフォルダに移動するかは一長一短である. mod製作者によっては頻繁に細かいアップデートを繰り返す人もおり, 毎回古いフォルダを削除しコピーし直すのはそれなりに面倒である. 一方, MO2には置き換え機能があるので, MO2側で管理するならワンクリックで古いものを消して新しいファイルに置き換えてくれる.

ちなみに私は更新のたびに本体にファイルに移しているが, 日本語への翻訳作業のときに都合がいいというのが主な理由なので, ほとんどの人には関係ないだろう.


日本語ファイルのインストール

OSAの日本語ファイルは既に私が作って公開している. Armory, Weaponry, Saddlery の3つそれぞれ用意しているので, 先ほどダウンロードしたものに対応するものをダウンロードする.

Open Source Armory - Japanese Translation at Mount & Blade II: Bannerlord Nexus - Mods and community

これもmod本体と同様にMO2でダウンロードしてインストールできる. インストール時, modの階層構造がおかしいから確認しろと言われる. 私の作る日本語化ファイルは単体ではmodとして動かないのでここでは無視してインストールを続けて良い. その代わりウィンドウ上部の名前を確認する必要がある. 名前をmod本体と同じにしてしまうとMO2はインストールしたものを既存の同じ名前のものに上書きか置き換えることになってしまうので, 今回の目的に反する.もし名前が被ってる場合は適当に変更する. 変更するのはフォルダ名ではなくウィンドウ上部の名前である. これはMO2に対する登録名で, これが違っていると中身が同じでもMO2は別のmodとして扱う. 今回はこの仕様を利用して日本語ファイルやパッチを簡単に切り替えられるようにしようということになる.

日本語ファイルインストール時の警告の例

なお, 私が過去に公開した日本語ファイルのいくつかは, 最上位階層にREADMEファイルを置いてしまっているため, それが原因で警告されることもあるが, やはりインストールを強行しても問題ない. README のチェックボックスを外せばREADMEファイルは除外してインストールされるが, あってもおそらく動作に影響はない.

いずれにせよ, インストール後にファイル構造を確認し, 同じような構造になっていたら成功である. MO2 のリスト上に表示される名称は自由に変えてもいいが, このフォルダ名はmod本体と同じにしなければならない.

インストール後のファイル構造の例: OSAの日本語ファイル


追記: フォルダの階層が変な日本語ファイルの対応について書く. そもそも配布されている日本語ファイルの数はかなり少ないのだが, たまに配布している人のフォルダ構造が奇妙なものが見られる. 元のmodと同じ構造ではあるが, さらにその上に一層だけよけいにフォルダが存在する. 最近はもうすでに100以上のmodを試しているが, こういう構造で配布している人はまず見ないので, どういう理由なのかよくわからないが, とにかく日本語ファイルのみ何度か見かけた (そもそも他人の作った日本語ファイルをダウンロードすることはほとんどないのでなかなか見る機会がないというのはある). こういう場合もMO2はうまく認識してくれないが, 手動で対処することができる.

変わったフォルダ構造で配布されている例

上記がその例の1つである. 本来のmodフォルダのさらに上にModulesというフォルダがある. このままインストールしても配置がずれるので日本語テキストは反映されないはずだ. こういうケースでは, modフォルダの1つ上のフォルダ, つまり今回は Modules フォルダを右クリックして, 「ディレクトリとしてセット」を選択すれば適切な階層に修正される. あとはここまでに書いた方法と同じ手順でインストールできる.


なお, 実際に正しいフォルダ構造になっているかどうかは 「Explore Virtual Folder」を選択して実行することで確認できる. これを起動すると, ゲーム起動時に実際にmodがゲームフォルダに配置された仮想環境をエクスプローラーで見ることができる.

MB2のmodの日本語事情について

ある程度慣れると, 初心者には「知ってて当たり前」をつい要求してしまいがちだった. というわけで日本語対応事情に関するもっと初歩的な話も追記する

NexusModsは英語のサイトなので配布されているmodのほとんどが英語である. 作ってる人も英語を想定していることが多いので, 本体が多言語対応していることはほとんどない. Nexus Mods 側には「翻訳」というカテゴリで登録すれば, 元のmodのページにリンクを表示してくれる機能がある. 例えば上記の Open Source Armory のページでは以下のように表示されている. NexusMods以外にも言語ファイルを公開しているサイトはあるだろうが, いちいち探すのが面倒なので私はあまり確認していない. 元modの配布ページから1クリックで飛べて, インストールも管理ツールに連携できるほうが明らかに便利であるから, Nexusで公開されているmodを翻訳しているのならばNexusになるべく登録するといいだろう.*1

例: OSAの翻訳対応状況

国旗がある欄をクリックすると言語ファイルへのリンクが表示される*2. あとはリンク先の配布ページで追加でインストールすれば対応する言語で表示されるようになる. ほとんどの場合, 言語ファイルのインストールは元のmodに上書きするだけである. 上書きといっても今回のようにフォルダ構造が同じなだけで, ファイル自体は上書きしないことが多い.

しかしながら, 言語ファイルは全ての場合で, 元のmodの作者は関与していないことに注意しなければならない. つまり, 第三者が勝手に翻訳して作っているのであって, 対応状況や品質も様々であり, 「公式訳」というものも当然だが存在しない (そもそもmod自体が「公式」ではない). このOSAの例を見てもわかるように, いくつかの言語で訳が複数公開されている. これはどうやら, 最初に訳が公開されてから元のmodの更新で新アイテムが大幅に増加し, 未訳箇所が増えたが, 訳の作成者が更新しなかったので別人が改めて作った, ということらしい*3. そして翻訳を投稿するのはユーザーの自由だ. 他の言語のフォーラム欄を覗いていたら機械翻訳を使っただけの質の悪い訳に文句を言っているふうなものもいくつかあった. 一方で, まれに第三者の作った翻訳ファイルを本体に含めてくれる作者もいて (例えば Immersive Battlefields とか. もちろんお互いが同梱に同意した前提だが), ダウンロードの手間が省けて助かるが, 多様な言語全てに精通した人物などはそうそういないので, この場合でも, mod本体に新要素の追加があった時は翻訳ファイルもその言語を解する人が作り直さないとまず反映されない.

複数のバージョンが存在する例

そして, 何度も言っているように, スクリプトでテキストを表示させている場合, プログラム内に直接テキストを書いてからDLLファイルにしている例が少なくない. この場合は第三者がテキストを翻訳するのはかなり難しくなる. XMLのみであっても, 元の作者がMB2の翻訳の仕組みを理解していないとろくに翻訳できなくなる. それでもできる箇所だけでも日本語に置き換えたものを公開する, という場合もある. 今は私はなるべくそういうmodもなんとかして完全日本語化しようとしているが, 一人でやっていることなので作業量に限界がある


Mod の更新方法

更新通知が来ていたら, mod一覧の右側にアイコンが表示される. 右クリックして「Nexus にアクセス」を選べば mod のページに飛べるのですぐダウンロードできる. (ただしバージョン番号がバグってたり本体の更新でなかったり単に作者の書き間違えだったりもするのでよく確認する必要がある) それからは上記のインストールと同じである. MB2 の mod は基本的にフォルダごとに独立しているので更新時は古いフォルダを消したほうがいいことが多い. MO2 はその点インストール時に「一つにまとめる」 (上書き) か「置き換える」かを確認してくるのでわかりやすい. 基本的には置き換えで良い. たまにパッチ形式で更新ファイルを配布する人もいるが, それ以外の場合は基本的に「置き換える」で問題ない.

MO2でのインストール時は基本「置き換える」


バージョン違いの日本語ファイルへの対処

MB2のローカライゼーションエンジンの挙動はかなりややこしいが, 一旦ここでは細かすぎる話はせずに, バージョン違いによる不具合への防衛術としてユーザー側が知っておくとよさそうな最低限の話だけ書いておく.

MO2のガイドでも表示したように, modとして動かすには以下のようなファイル構造が必要になる.

Europe 1100 に日本語ファイルを上書きした例

フォルダに適切な内容の SubModule.xml を置くことが, MB2にmodとして認識され, ランチャーに一覧として表示される最低要件である. SubModule.xml さえ適切に書かれて適切な場所に置かれていれば, 他に何もファイルがない, ゲーム内容を何も変更しないようなmodでも形式上はmodとして認識される. 実際に中身のあるmodの多くには, ModuleData というフォルダが含まれている. ModuleData フォルダのないmodもあるが, 今回は言語の話なので日本語化対象となるmodはほとんど全てにこのフォルダがある. ModuleData の中にはXML形式の設定ファイルが含まれており, これらにはテキストだけでなく, NPC の初期パラメータや武器の3Dモデルの指定, といったいろいろな項目が含まれている. さらに ModuleData フォルダの中の Languages フォルダに各言語の翻訳文を書いたXMLが含まれている. このフォルダ内であれば, どこであれ, 置かれているXMLは翻訳文を書いたものとして認識される. その場所は上記の例のように JP フォルダに日本語用のXMLを置かなくても動作するが, 整理のしやすさとバニラでもこの構造になっていることから私もその慣例に沿った構造にして公開している.4

LanguagesフォルダのXMLはModuleDataのXMLとは仕様が異なる点が多い. あってもなくても動作することも多く, バージョンが違ったり全てを翻訳してなかっりしたとしても, 一部表示がおかしくなることはあるものの動作することが多い. この一部おかしくなる, というのはたいていの場合は, 翻訳文を対応させるためのID設定に不備があることで起こる. このIDは ModuleData フォルダ以下のXMLで指定されている. よって, 私のmodでは日本語翻訳を徹底するために言語ファイルを追加するだけでなく他の既存のXMLを修正したもので上書きさせるものが少なくない. しかしこの上書き対象のファイルは他の設定も多く含んでいるため, バージョンが違うと何かしら変更される可能性が高く, 上書きが不具合の原因になりやすい.

そのため, もし, バージョンが違って一部表示がおかしくなる可能性があるがそれでもできる限り日本語を表示させたい, というのなら, ModuleData フォルダに直接置かれているXMLファイルを消せばバージョンが違っても動作する可能性が高い. ただし, IDの設定をどれくらい丁寧にやっているかは本当にmod作成者のやる気次第なので, かえっておかしくなる可能性も高い. ID設定がおかしく全く別の文の翻訳文があてられてしまうこともある.


Modのアンインストール方法

ほとんどの場合, 意図的にアンインストールする必要はない. MO2上かランチャーでチェックを外せば読み込まれなくなるからである. 今回例に挙げたOSAの日本語ファイルも, 少し前までは本体のXMLを一箇所上書きしていたので, その古いバージョンを v1.14.0 より後のバージョンに適用すると不具合が起こる可能性が高い. その時は, MO2上で日本語ファイルのチェックを外すだけで適用されなくなり, 不具合も回避される. あるいは問題になっているファイルだけ消すという手もある. この時, 「競合」タブでどのファイルが上書きされているかを確認することもできる.

よって, modを完全に削除したい場合は, ストレージを圧迫している時くらいになるだろう. 完全に削除したい場合は右クリックから「Mod削除」を選ぶ. なお, ダウンロード時の圧縮ファイルはこれとは別に保存されているので, ストレージを圧迫するようならこちらも消すといい. ダウンロードファイルは「ダウンロード」タブから削除できる. 逆に残しておけばいつでも再インストールできる.


MO2 に関するその他補足

日本語ファイルの適用の援用で, テキストファイルに設定を書き込むタイプのmodも設定ファイルを分離すると更新するときに楽かもしれない.

MO2 は複数のモジュールを同時にインストールできる. Vortex は複数のモジュールフォルダを含んだmodを適切にインストールすることができないが, MO2 はできる. これは以前私の日本語修正modに関するトラブル報告で判明したことである.

一方でMO2は左のリストの項目1つに, 複数のモジュールフォルダがあっても動作させられる. なお, 私の日本語修正mod以外で複数のモジュールで構成されるmodには “Calradia At War""” や “Huaxia Kingdom""” なんかがある.

HarmonyからMCMまでの日本語ファイルをまとめたものも, やはり警告はされるが一度にインストールできる

以前 MO2 で動作不良が起こると書いたが, ゲーム本体やMO2の不具合ではなく私のPCが物理的に壊れかけていたのが原因かもしれない (Mod 用ファイルは別本体をインストールしたストレージとは別の場所から読み込んでおり, このゲーム以外の場面でも, 複数のストレージに対し同時に読み書きするとよく動作がおかしくなった)

一部のmodはゲーム起動中に設定ファイルを出力することがある. 出力先はたいていがインストールフォルダかマイドキュメント以下にあるBannerlordのユーザーフォルダである. MO2を使って起動している間は, 前者は本来の場所には書き込まれずMO2が管理しているフォルダに出力される. Mod一覧の一番下のOverwriteという項目を開けば見つけられる. そしてこのOverwriteの項目も一種のmodのように扱える.


日本語ファイル配布者向けの話

ここで紹介したMO2での日本語ファイルインストール手順を簡単に行うには, フォルダ構造をmod本体と同じにする必要がある. よって, XMLファイルだけアップロードしたとかであると, 適用させるために同じフォルダ構造の作成を全部手動でやる必要がある. そういうことをする人は本体ファイルに手動で直接上書きする想定なのだろうが, 手動操作で, かつ環境を汚すと問題が起こったときの原因特定がやりづらくなるため, できる限りやりたくない・させたくないと考えている. そのため今回のようにMO2を使ってパッチも分離する方法を提案している. かりにMO2を使わず手動で上書きする場合, Vortexを使う場合でも, フォルダ構造を一致させたほうがやりやすいことには変わらないだろう. そのため私の配布する日本語ファイルは, 基本的に全て本体modのフォルダ構造と同じにするというルールで公開している.


拡張ランチャーを使って大量のmodを管理するまで

次に, modを大量にインストールするとデフォルトのランチャーで管理するのが面倒だという問題への解決案として, 2種類の拡張ランチャーを紹介する. どちらも MO2に登録することができる.


BannerLord Mod Launcher

BannerLord Mod Launcher at Mount & Blade II: Bannerlord Nexus - Mods and community

これは比較的昔からある拡張ランチャーである. 英語だが見ればわかるだろう. ウィンドウの高さも広げることができるので, たくさんモジュールがあっても並べ替え操作がしやすい. 私は並び替えさえしやすければそれでいいので, 他の機能は使っていない. 起動ボタンがどれなのかすらよくわからない.

引き伸ばせるので便利

インストールも簡単で, ダウンロードファイルの中にあるEXEファイルをMB2のインストールフォルダに置いて, このEXEを起動するだけである.

ウィンドウを引き伸ばせるというだけで大きな進歩だが, それ以外の機能は限定的で, 最近はあまり更新されていないので, 個人的には次に紹介する Novus Bannerlord Launcher をお薦めする.


Novus Bannerlord Launcher

Novus Bannerlord Launcher at Mount & Blade II: Bannerlord Nexus - Mods and community

こちらは比較的最近登場した拡張ランチャーである. ウィンドウサイズの変更ができ, ドラッグアンドドロップで各モジュールの有効無効を切り替えられるのでかなり便利である. 複数のプリセットを保存することもできる. 日本語文も用意されている. 作者は日本語がわからないのでChatGPTで生成しただけと言っているが, 通常の使用の範囲では1点を除いておかしなところは見られない (なおこれはXMLファイルの書き換えで自分で修正できる). WindowsセキュリティによるDLLファイルのブロックをワンクリックで解除する機能もある (私は使ったことがない). 言語の変更は左下のボタンから設定ウィンドウを開いてできる.

ただし, 2点注意点がある.

  1. 手動で並び替える際に, モジュールに設定したロード順の制約を無視してしまう
  2. マルチプレイ用のmodには対応していない

(2) はそもそもほとんどないので無視していいとして, (1) はよく注意してほしい. 私の日本語修正modである Correct Localization JP も, 説明文に書いてあるように, “-Text” のほうは Native より前に, フォント変更モジュールは基本モジュールの後に読み込ませないと意図通りの動作をしない. ユーザーが間違えないようにロード順の制約も設定している. しかしNovusはデフォルトのランチャーと違いドラッグ操作時にこの制約を無視して並び替えることができてしまう.5実態として, ロード順が重要なmodはほとんどない. 本当に私のCorrect --- くらいである. それ以外はHarmonyとかの共通プラグインとして機能するmodだが, これらは他にどんなmodを入れようが順番がほぼ固定なのであまり気にする必要がない. そのため実際にこれが問題を引き起こすケースは稀だと思われる.

うまく動作しないロード順の例

Novus はインストーラーがあるのでインストールがより簡単である. インストール先が MB2 のフォルダに自動設定されているかの確認だけで良い. あとはスタートメニューから検索できる. MO2を併用している場合は, やはりMO2を経由して起動しないとMO2でインストールしたmodが反映されないため, ランチャーのEXEファイルをMO2に登録する必要がある.

MO2に拡張ランチャーを登録する方法

やり方を書いてなかったので追記する. MO2でMB2のmodが管理できる状態まで設定が終わっているという想定で説明する. MO2の右上の「実行」の隣のアイコンをクリックし, ドロップダウンリストから「編集」を選ぶ. 現れるウィンドウの左上の "+" ボタンを押し, 「ファイルから追加」でNovus Bannerlord Launcher の EXEファイルを選択する (インストールの指示に従っているなら, MB2のインストールフォルダ内の "NovusLauncher" フォルダ内にあるはずである). すると以降はドロップダウンリストからこのランチャーを選択できるようになる.

MO2のドロップダウンリストから「編集」を選ぶ
登録ウィンドウでEXEファイルを追加する

BLSEやBannerlord Mod Launcherも同じ方法で登録できる. 今後もし新たなランチャーやツール類が登場することがあっても, だいたい同じ方法で使うことができると思われる.


その他技術的な補足

私が既に公開している GitHub に, 私が使っている翻訳作業用スクリプトも上げている. これを使うと, ModuleData内のXMLファイルを全て読み込んで, 翻訳作業がしやすいPOファイル形式に変換したファイルを生成してくれる. その過程でIDの欠損や重複といった不備を見つければ, 修正したXMLファイルも自動生成する. 翻訳作業が終われば, POファイルを Lanmguages フォルダ用のXMLに再変換する. 加えて, Mod本体の更新でテキストが変更されても, 過去のPOファイルを保存しておけば変更されてない箇所は過去の翻訳文で自動で埋められるので, だいぶ楽になる.

しかし, 現時点ではあくまで個人的な作業用に作ったものなので, Pythonスクリプトをターミナル上で操作するというインターフェースになっている. GUI もバイナリ実行ファイルも用意していないので, 環境構築には多少の知識が必要である. それに, 必ずしも全てのmod作成者が行儀よくXMLを書いているとも限らないため, たまにうまくいかないことがある. このように他人が使いやすいように整備してないし, 予告なく仕様変更することもあるが, 使うのは自由である.

MB2BL-JP/tools at main · Gedevan-Aleksizde/MB2BL-JP · GitHub

多くの mod は Languages フォルダ以下にローカライゼーションIDと翻訳文を書いたXMLを入れれば日本語化されるが, ModuleData 以下の XML ファイルにローカライゼーションIDが適切に設定されていない場合や, DLL のソースコード内に直接テキストが書かれている場合, あるいは標準的なルールを守ってない実装の場合は日本語化がうまくいかない6. 後者2つは対応が難しいが, 単に XML にローカライゼーションIDが書いてない程度であれば対処できる. 以下のようなmodは, このスクリプトでうまく処理できない.

  • MB2のローカライゼーションに使われている TextObject クラスなどを使わずDLL にハードコードしているもの全般, RBM なんかはかなり多い
  • Improved Garrison - 言語ファイルを作れば動作するようだがIDがDLL内にハードコードされてるので上記のスクリプトではIDを取得できない (他言語のユーザーはなんかがんばってIDを特定して作っている. めんどくさ…) 別のファイルで配布されているのを見落としていた. しかし翻訳テンプレートは更新されてないので半分くらいしか翻訳できないので結局ソースコードを覗くはめになった. めんどくさ…
  • Europe Campaing Map - 船の管理UIが独自設計であり, また一部のXMLはMB2ではなく独自のパーサー用の規格なので一部が対応できない
  • 文字コードがおかしいもの
    • これまでに2つ, UTF-16で保存されているXMLを見つけた. 基本的にUTF-8想定である. どちらもUTF-8で保存しなおせば動作した.
  • 英語の原文が用意されていないもの
    • めったにないが, 一番ありえそうなのは中国語のみのケースで, オプションを工夫したりしてできないこともないが, 基本的にmod本体のIDと英語の原文で結合しているので基底とする言語が変わると管理が難しくなることがある
  • 元のテキストもIDも何もかも間違えているもの
    • 作者本人に直接ツッコミを入れて直してもらうか, いい加減さを嘆きながら手作業でやることしかできない
また、RBMへの互換性などでXMLを書き換えるパッチが何種類もある場合はそれぞれにスクリプトを適用してそれぞれ配布する必要があるので作る方も使う方も面倒な作業が増える



  1. ZIP圧縮したローカルファイルをダウンロードのタブにドラッグアンドドロップすれば, これもmodとして扱うことができる.↩︎

  2. ただし, Nexus Modsはバージョン番号のメタデータがよくバグるので, 正確でないこともよくある. 加えて, バージョンの概念を理解していないmod作成者もそれなりにおり, modのバージョンではなく対応する本体のバージョンを記入してしまう人もそれなりにいる. そのせいでバージョン番号が大きい=新しいとは限らなくなり, 意味をなさなくなっている例が時々見られる.↩︎

  3. いちおう「データの不備を無視」というオプションがあるが, これ以外の原因でファイルの適切な配置に失敗することもあるので私は基本的に表示したままにしている↩︎

  4. JP2 フォルダは日本語修正modの最初のバージョンで使用されていた, 「正しい日本語」という別枠の言語ファイルを入れるために作ることがある. しかし今は必要な場面がほぼないと思うので, 本体のv1.1更新で後方互換性が失われたこともあって今後は順次廃止していく予定である.↩︎

  5. もうちょっと技術的な話をすると, おそらく DependedModules の情報しか見ていない↩︎

  6. その標準的なルールというのがまた厄介なのだが, これは別の機会に書く↩︎

*1:翻訳できたのなら英語で書かれた登録手続きは分かるはずだし, 翻訳の配布に関する規約も読めるはずだ…

*2:たまにNexus側がサボって国旗の画像を用意してないことがあるが, 日本語を求めているならば気にする必要はない. それにしてもラテン文字表記のベラルーシ語の翻訳を大量投稿している人は何者なんだ…

*3:この一覧にバージョンや更新時刻も表示してくれればどれが最新かすぐわかるのだが, Nexusはそういう親切なUIはなかなか作ってくれない