2025年6月3日火曜日

Steam版SagradaのXUnity.AutoTranslatorを用いた日本語化手順

 美しいステンドグラスを作るボードゲームのサグラダ(Sagrada)、DireWolf さんがPC版を販売しています。

長いこと積みゲーでしたがなぜか気が向いてプレイしてみると結構面白かったのですが、残念なことに日本語化されていません。折角ですから PC版のSagrada を XUnity.AutoTranslator で翻訳してもらうことにしました。

ちょっとややこしかったので手順をメモします。

本記事の記述時点の前提は次の通りです。

  • ゲームクライアントバージョン:  steam版 1.4.4.652 (ゲーム内で設定画面を開くと画面下に表示されます)
  • BepInEx: IL2CPP版 6.0.0-pre.2
  • XUnity.AutoTranslator: BepInEx-IL2CPP版 5.4.5

適用するとこんな感じになります。(2025年6月現在)

サンプル画像

Windows版への適用を箇条書きで記録します。(他OS版はwin-x64をmacosと読み替えればよさそうですが検証していません。ごめんなさい)

  1. GitHubよりBepInEx-Unity.IL2CPP-win-x64-6.0.0-pre.2.zipをダウンロードします(もちろん、git cloneしてビルドしても構いません)。
  2. Sagradaがインストールされているフォルダ(Sagrada.exeがあるディレクトリです)にBepInEx-Unity.IL2CPP-win-x64-6.0.0-pre.2.zipの中身をすべて展開します。
    Sagrada.exeがあるフォルダと同じ場所に以下のフォルダまたはファイルが存在する状態になります。
    • 📂BepInEx (フォルダ)
    • 📂dotnet (フォルダ)
    • .doorstop_version (ファイル)
    • changelog.txt (ファイル)
    • doorstop_config.ini (ファイル)
    • winhttp.dll (ファイル)

  3. 一度Sagrada.exeを起動します。
    Steamクライアントから起動しても直接起動しても構いません。
    起動すると黒いウィンドが開いて何やら表示されますが、やがてゲームが起動するはずです。
    正常に起動することを確認したら、ゲームを終了して 📂BepInEx フォルダの中に LogOutput.log および ErrorLog.log という名前のファイルが生成されていることを確認してください。
    正常に起動しなかったり、LogOutput.log および ErrorLog.log のいずれも生成されていない場合はBepInEx-Unity.IL2CPPを正しく展開できていない可能性があります。
  4. GitHubより今度はXUnity.AutoTranslator-BepInEx-IL2CPP-5.4.5.zipおよびTMP_Font_AssetBundles_2025-05-12.7zをダウンロード(またはビルド)します。
    • XUnity.AutoTranslator-BepInEx-IL2CPP-5.4.5.zipファイルの中身は📂BepInExとなっています。
      すでに存在している📂BepInExフォルダを上書きしてください(macosでfinderを利用する場合は置換されてしまうのでフォルダの上書きはしないでください)
    • TMP_Font_AssetBundles_2025-05-12.7z の中身のうち、arialuni_sdf_u2018というファイルを Sagrada.exeがあるディレクトリに展開してください。
  5. 一度 Sagrada.exe を起動し、正常に起動出来たら終了してください。これもSteamクライアントから起動しても直接起動しても構いません。
    この際、先ほどの手順3と違って表示される画面およびLogOutput.logファイルにエラーが出力されますが、この段階では無視してください。
  6. 📂BepInExフォルダの中に📂configというフォルダができているはずです。
    その中にAutoTranslatorConfig.iniというファイルが生成されていますので開き、以下の変更を行ってください(4か所)。
    • [General]セクション
      • Language=en を ja に変更
      • FromLanguage=ja を en に変更
    • [Behaviour]セクション
      • OverrideFontTextMeshPro=(空欄) を 右辺値にarialuni_sdf_u2018を記述
      • FallbackFontTextMeshPro=(空欄) を 右辺値にarialuni_sdf_u2018を記述
以上の手順で、冒頭でお示しした画像の状態になります。

いうまでもありませんが、OverrideFontTextMeshProで指定しているのはフォントファイルなので、arialuni_sdf_u2018でなくともいいのですが、TMP_Font_AssetBundles内では最も豆腐(文字化け)がありませんでした。

以上、ここまでお読みいただきありがとうございました。