2015年12月19日土曜日

Sword Coast Legends の日本語化

[2016/01/05 追記: ファイルの取り出しに失敗した時の対応方法を追加した]

Steam版 Sword Coast Legends の日本語化の方法がわかりましたので、まとめておきます。なお、ここには日本語データはありませんので各自で翻訳を行ってください。

この記事は 2015/12/19-20に行われた Steam Free Weekend 版(製品バージョン 5.1.4.8503135)で確認したものです。

■日本語表示例

Google翻訳を利用したサンプルです。

メインメニュー



オプション画面

ロビー

アイテムの説明

キャラクター シート

スキル画面

ジャーナル

ロケーション


マップ

ゲーム内オプション画面

■日本語化の手順

この手順ではMOD名を「sclJpMod」と仮定して説明をします。MOD名は任意ですのでお好みの名前を付けていただいて結構です。ただし、日本語名などは指定せず英数字のみにした方が良いと思います。また、このゲームは日本語表示に対応しているためフォントの導入などは必要ありません。

0.前準備

致命的なトラブルに備え必ずセーブファイルのバックアップを行ってください。また、出来るだけこまめに別の名前でセーブをすることをお勧めします。

セーブファイルは以下のフォルダーにあります。
Steam\userdata\########\325600\remote\
 「########」部分は各ユーザー毎に異なる番号が割り振られています。 エクスプローラーで「325600」を検索すると簡単に見つけられます。

1.assetファイルから英語版テキストを取り出す

「Unity Assets Explorer 1.5」で「Sword Coast Legends\SwordCoast_Data」フォルダー内にある「resources.assets」を開き、「English.json.txt」を取り出す。

English.json.txt を右クリックしExtract This File で取り出す。
english で検索すると楽です。

取り出した「English.json.txt」ファイルは「Unity Assets Explorer 1.5」フォルダー下の「resources」フォルダー内に作成される。

注:この方法でファイルを取り出せなかった場合は、このページの最後にある
「■UnityEXを使用してファイルを取り出す場合」を参照ください。

2.MODフォルダーを作成する

「Mods」フォルダー内に「sclJpMod」フォルダーを作成する。
「Mods」 フォルダーは以下の場所にあります。
Sword Coast Legends\SwordCoast_Data\StreamingAssets\Mods

3.英語版テキストをコピーする

「1」で取り出した「English.json.txt」を「sclJpMod」フォルダーにコピーする。

4.MODを登録する

Sword Coast Legends はMODをサポートしているので、以下の手順で「sclJpMod 」を登録します。

「Sword Coast Legends」フォルダー下にある「GameConfig.json」をテキスト・エディターで開き、以下のようにMOD名「sclJpMod 」を設定する。

設定前:
{
    "Modding": {
        "Mod":""
    }
}

設定後:
{
    "Modding": {
        "Mod":"sclJpMod"
    }
}

5.翻訳する

テキスト・エディターで「English.json.txt」を開き、翻訳する。
注意事項:
・文字コードは UTF-8。BOMあり、BOMなし、どちらでも可。
・JSON形式のファイルなので JSLint でシンタックス・チェックを行ってください。1箇所でもエラーがあると全くテキストが表示されなくなります。

エラーのある English.json.txt を使用した時の画面サンプル


翻訳例:English.json.txt:9777行目

翻訳前 --- "ui_player": "Players",
翻訳後 --- "ui_player": "プレイヤー", 

6.確認

ゲームを起動し日本語が表示されることを確認する。


■MODの削除方法

MODの削除手順は以下のとおりです。

  • 「4」で登録したMOD名を削除する(設定前の状態に戻す)
  • 「2」で作成したフォルダーを削除する
    (この例では「sclJpMod」フォルダー)

■JSLintについて

JSLintはJSONファイルなどJavaScriptで記述されたファイルをチェックするツールです。「English.json.txt」は約三万行ほどあるので、Webサービスなどでチェックするのは不可能です。そこでテキストエディタ「Notepad++」のプラグイン「JSLint(http://sourceforge.net/projects/jslintnpp/)」を使用しチェックを行うのが良いと思います。JSLintのインストールは「Notepad++」の「Plugin Manager」から行うことが出来ます。

■UnityEXを使用してファイルを取り出す場合

「Unity Assets Explorer 1.5」が「Out of Memory」などで開けない場合は、UnityEX を使用すると取り出すことが出来ます。

適当な場所に作業用フォルダーを作成してください。
この例では作業用フォルダーを「k:\work」として作業しています。

1.UnityEXのダウンロード

以下のフォーラムに UnityEX の作者の記事(ロシア語)がありますので、これを参考にダウンロードします。
「UnityEX - Zone Of Games Forum」
http://www.zoneofgames.ru/forum/index.php?s=68af9cb0f389f028c7298c48a008814b&showtopic=36240
ダウンロードのリンクは以下の部分です。
Скачать программу UnityEX

2.ダウンロードしたファイルをウイルスチェックする

以下のサイトでチェックするのが良いと思います。
「VirusTotal - ウイルス、マルウェア、URL の無料オンライン スキャナー」
https://www.virustotal.com/ja/

3.ダウンロードしたファイルを解凍し作業用フォルダーにコピーする

4.「resources.assets」を作業用フォルダーにコピーする

5.バッチファイルを作成する

作業用フォルダー内にバッチファイル「export.bat」を作成し以下の内容を書き込む。
UnityEX.exe export resources.assets -t txt
pause

6.確認

作業用フォルダー内に以下の3ファイルが入っていることを確認する。

・export.bat
・resources.assets
・UnityEX.exe

 7.バッチファイル「export.bat」をダブルクリックし実行する

実行にはしばらく時間がかかります。
2~3分待つと作業用フォルダー内に「Unity_Assets_Files\resources」フォルダーが作成されます。この中に「English.json.txt」あります。


■参考情報

・「Modding - The Official Sword Coast Legends Wiki」
http://swordcoastlegends.gamepedia.com/Modding

・「Unity Assets Explorer [v 1.3] - ZenHAX」
http://zenhax.com/viewtopic.php?t=36
タイトルは「v 1.3」 ですが、中身は「v1.5 test」となっています(2015.12.19現在)

・「ダンジョンズ&ドラゴンズ日本語版公式ホームページ」
http://hobbyjapan.co.jp/dd/news/5th_dnd_pg/index.html
ここにD&D第五版ベーシック・ルールの日本語版PDFがあります。

・「Share Your Mod! - Modding Corner - Sword Coast Legends」
https://forums.swordcoast.com/index.php?/topic/8882-share-your-mod/
これは D&D 5e ルールに準拠するように変更するMODのようです。
この中にも「English.json.txt」が入っています。

では・・・

2 件のコメント:

  1. resources.assetsを開こうとしてもOut of Memoryで開けません。
    Unity Assets Explorerは1.2~1.5まで試してみましたがどれも変わりませんでした。
    win7 64bit とwin10 64bit で試してみました。

    返信削除
    返信
    1. 64bit環境でメモリー不足とは困りましたね。
      私の環境(Windows8.1 64bit メモリー:12GB)では問題なく動作しています。原因はわからないので、別のツール(UnityEX)を使用した例を追記しました。参考にしてみてください。

      削除