Sarmaticus

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

ブレードアンドソーサリーU12の注意点メモ

2024/3/24 追記:

最近, Mod.io やNexusModsなどブレードアンドソーサリーのmodを配布しているサイトで, ウィルスを仕込んだファイルがアップロードされている例が何度か発見された. 公式discordなどでこの問題に関して注意が喚起されている. しかし, このゲームの日本語のコミュニティはほぼ存在しないので, 英語で情報収集ができない人たちの間では知られていない可能性が高い. そこで, 私もとりあえずここで注意を喚起しておく. といっても, 誰でもできる対策は限られている. とりあえず, 公開されて数時間くらいしか経っていないような新しすぎるmodは用心してダウンロードしないでおくしかない. Nexusであれば, ダウンロード前にファイルの一覧を確認し, 不自然なファイルが存在しないかの確認ができなくはない.


U12が出たので気がついたことを思いつくまま書いておく.

Mod管理画面の追加

個人的にはU12の一番大きな変更はUIの機能追加と改善だと思っている.

冒頭のキャラクター選択画面でできることがかなり変わった. 今までは文字通りキャラクター選択くらいしかできなかったが, 以前から予告されていたMod管理画面が早くも導入されている. Nexus Mods ではなくMod.ioというサイトと連携して, このサイトで配布されているmodをゲーム内でダウンロード・インストール・アンイストールできる. もちろん従来のようにNexusからダウンロードしてフォルダにコピーしてもいい. Mod.io の利点はnexusと違いPCVR版とQuest版がまとめられている一方で, フィルタ機能でmodのジャンルや対応バージョン・プラットフォーム (PCVRかNomadか) でフィルタをかけられるところにある.
アカウント登録は基本的にメールアドレスを入力するだけで良さそうだ*1. 私自身はまだMO2のほうが便利だと思っているのでNexusを主に使い続けているが, Nomadではmodのインストール手順が煩雑らしいので, Mod.io を使えばだいぶ楽になると思われる (持ってないので確認してない). 今後は自作したmodをなるべくNexusとMod.ioの両方にアップロードするようにする.

Mod.ioのWeb版
ゲーム内mod管理画面

ただし, 現状は本体の日本語が変なのでわかりにくいところが多いかもしれない. 例えば「グローモッズ」「セーバー」「メガモッド/コンピレーション」といったよくわからないマントラめいたコトダマが踊っている.

それぞれ「ゴア表現」「サーベル」「大規模mod/複数のmodのマージ」的な意味だが, こういう問題への対処は現状ちょっとややこしいので後述する.

メニューブックについて

以前からのアナウンス通り, U12では従来の本のようなメニュー画面の見た目が一新された. しかしより本質的な変化は他にある.

まず, メニューブックからもmodの管理ができるようになった. 以前はLevel_*.json という名前のテキストファイルを書き換えるか, MCMでmodのオプションを変更する必要があった. U12ではこのテキストファイルが廃止されるとともに, MCMとだいたい同じ用途のUIがデフォルトで追加された. MCMはmod作者がmcmに対応しやすいように作る必要があり, MCMではなく独自のインターフェースを作る人も多かった. それがU12で公式に整備されたことでかなりUIが統一された. また, MCMは英語のみの表示だったが, 他の言語でも表示できるようにした. 私も既に公開した自作modには全て日本語テキストを用意している. ただしこれも現状いくらか制約やバグがある.

U12のメニューブックではmodオプションの管理ができ, しかも項目の日本語表示もできる*

(* 効果には個人差があります (後述))

また, modにエラーが発生している場合はこの画面にエラーメッセージが表示されるようになる. 私としてはあやふやなヒントをもとにバグ報告に対応する必要が減りそうで大変ありがたい. みなさんもバグに出くわしたと思ったらエラーメッセージの表示されている画面のスクショを撮って見せてほしい.

日本語環境について

U11の時点で日本語テキストが用意されている. しかし変な文章が多い. ゲーム本編に長い文章はほとんど出て来ないが, オプション項目の表記が意味不明なのは困る. これはU12でも全く変わっていなかった. 加えてU12で追加されたmod管理画面もところどころ変な文がある. なのでU12が公開されて早速Bas-JPを更新したが, 新しい機能が増えている代わりに不具合も増えてしまっているようだ.

まず, 私の修正した日本語をMod管理画面に対して適用するには, 一旦ゲームを開始しキャラクター選択を経ててマップに入ってから, もう一度メインメニューに戻る必要がある.

もう1つの問題として, 文字化けの問題がある. 個人的にはもっと遅いと思ったが, U12ではTMPが導入され, 各国言語フォントが個別に用意されるようになった. そのためこれまでのように簡体字フォントであるNoto Sans SCで日本語が表示されることはなくなった…と言いたいところだが, 例によってグリフ数が少ないため頻繁に文字化けが発生してしまう. なぜか常用漢字すら収録してないものがかなりあるので本当に文字化けが多い. 結果としてNoto Sans SCも再び表示されてしまうし, 簡体字にも収録されてない文字 (異字体含む) も空白に置き換えられてしまう. たぶんゲーム中に使われてる文字だけマテリアル生成するオプションを使っているのだろう. そのため私の修正した日本語は何箇所も文字化けする. そしてこのゲームはmodの多さが売りなので, こういう拡張性のなさは致命的になる.


最後に, 既に書いたmodオプションの日本語表示について言う. U12ではmodオプションの項目名と補足説明文中のローカライズが可能だが, 作りながらBaSの中の人と話していたらバグが発覚した. 私は自作modのオプションを全て日本語表示できるように作っているが, そのままではこれが表示できないらしい. ゲーム開始後にメニューブックで言語設定を開いて, 別の言語に切り替えてから再度日本語に戻さないとmodオプションが日本語表示されないようだ. この問題はU12.3パッチで修正された. 今は気にしなくてもいい.

また, もう1つ悪いことに, このmodオプションのローカライズはハードコードする必要がある. 文言自体はテキストファイルで与えられるが, 紐づけるにはソースコードにIDを書く必要がある. そして現状mod作者の大半は英語圏の人間なのでわざわざローカライズ用の設定を書いていない可能性が高い. 現状modオプションの設定の煩雑さは中の人も認めているので, 次のアップデートでの改善に期待したい.


追記: BaS-JP v0.6.2 で応急処置的にAdobe Japan 1-6相当のフォントを追加したので, 文字化けはほとんど発生しなくなると思う. BaS-JP v0.7 からは一旦フォントデータを削除した.
現状は, Font Localizer and Replacer v2.0 に日本語の文字化けを補うためのフォントを追加し, オプション項目が英語で表示される問題にも対処する機能を含めた. (以前はこのmodは好きなフォントを使うためのmodだったが, U12対応版である v2.0 以降は基本的に文字化け対策用になっている. そしてスクリプトを使用しているので, Nomadではうまく動作しない可能性がある).
そして, BaS-JP v0.7 には, わかりやすい内容に改めた日本語テキストと, オプション項目が英語で表示される問題を修正する機能を含めている. オプション項目の表示修正機能は両方のmodにあるが, かぶっていても競合することはない. しかし, どちらもスクリプトを使わないと実現が難しいので, nomad版では現状うまく動作しない可能性がある.

(スクリプトを使わずにやるには, 本体のアセットファイルを上書きすればできるとは思うが, TMPの解説は日本語でもちらほら見かけるが addressables bundleファイルに含まれているフォントアセットを改造する方法に関する情報は見つからないので難しい.)


補足として少し技術的な話をする. これまでmodは起動直後に読み込まれていたが, U12からはスタートボタンを押したタイミングで読み込まれるようになった. そしてmod管理画面はスタートボタンを押す前に開く想定なので, 日本語の修正が適用されない. 対処法は, 上記のように一旦ゲームを開始してキャラクター選択を終えてからメインメニューに戻るか, 本体のファイルを上書きすることである. この辺の仕様変更の影響で, 私がいくつも作っていたUI改善系のmodの改修がかなりめんどくなって時間がかかっている. とはいえスクリプトばかりなのでU12版SDKの公開を待たずに作業できるから公開自体は早いほうになるだろう.

*1:ただし私はU12公開に先立ちアカウント登録していたのでこれから登録する人は違うかもしれない