読者です 読者をやめる 読者になる 読者になる

Thinking Skeever

Skyrim/The Witcher 3 Modについてのあれこれ。FoModの作り方、Mod導入時のトラブル事例などのニッチな話を書いていきます。a.k.a. BowmoreLover@nexusmods

Skyrim MOD日本語化:Skyrim Property String Patcherを使ったプロパティ文字列日本語化ガイド(v1.0版)

本ガイドでは、Skyrim Property String Patcherを使ったプロパティ文字列の日本語化方法について説明します。

2016/08/22追記:
TESVTranslator 2.0beta13でプロパティ文字列翻訳機能がサポートされました。
バージョン 2.0beta13b を試してみましたが良好に動作するようです。
これにより本スクリプトは無用となりましたが、ページはこのまま置いておきます。


f:id:thinkingskeever:20151114030550p:plain
目次


f:id:thinkingskeever:20151114030550p:plain

1. Skyrim Property String Patcherとは

Skyrimプラグインファイルには(スクリプトの)プロパティ文字列が入っていることがあります。
Skyrim String LocalizerやTESVTranslatorではプロパティ文字列を日本語化できません。
このため、通知メッセージやMCM画面が日本語化できず、英語表記となってしまうことがあります。
TES5Editを使って手作業で修正することもできますが、数が多いと手間がかかる上、翻訳結果を気軽にシェアすることができません(許可を取った上でesp/esmの再配布が必要)。

これを解決するためにSkyrim Property String Patcherをと呼ばれるTES5Edit用のスクリプトを作成しました。
これを使えば、TESVTranslatorと組み合わせて比較的簡単に日本語化できます。
また、翻訳結果をテキストファイルで再配布することができます。


1.1 プロパティ文字列の実例

Chesko氏のCampfire - Complete Camping Systemを例に、プロパティ文字列の詳細について説明します。

f:id:thinkingskeever:20160810190820p:plain

上の図はTESVTranslatorで日本語化済のCampfire.esmをTES5Editで開いた様子です。
レコード階層VMAD/Data/Quest/VMAD/Scripts/Script/Propertiesの文字列定義が分かるでしょうか。
これが(スクリプトの)プロパティ文字列です。Campfireでは主に通知メッセージ文字列が格納されています。
プロパティ文字列の用途はMODによりまちまちです。例えばEnai Siaion氏のApocalypse - Magic of SkyrimではMCM画面の文字列すべてがプロパティ文字列に入っています。

プロパティ文字列は拙作のTESVKaniCheckerでも見ることができます。
ツールにプラグインファイルをドロップすればプロパティ文字列が表示されます。

f:id:thinkingskeever:20160810190841p:plain



f:id:thinkingskeever:20151114030550p:plain

2. 必要環境

  • TES5Edit by ElminsterAU
    3.1.1以降
  • TES5Edit UTF-8支持(中文编辑)【alpha】 by ARROW&KNEE MOD TEAM™(膝盖中箭mod组™)
    中国のMOD開発チームARROW&KNEEによるTES5Edit UTF8化パッチです。ZIPをTES5Editのインストールフォルダに展開し、hdtTES5EditUTF8_loader.exe経由でTES5Editを起動することで、日本語が正しく取り扱えます。
    ※野良で公開されているバイナリファイルの導入はリスクを伴います。各自の判断で導入願います。
  • TESVTranslator by McGuffin
    1.3.4以降
    MODを翻訳して日本語化ファイルを作成する場合にのみ必要です。

※UTF8化パッチが必要な理由:TES5Editの変更履歴には3.1.2でUTF-8形式をサポートしたと書かれていますが、実際に試してみると日本語の入力は正しく動作しません。ソースを見る限り、.stringsファイルから読み込んだ文字列をコード系変換(UTF16->UTF8)して画面に表示する程度の対応のようです。従って、日本語の文字を取り扱うにはTES5Edit UTF8化パッチが必要となります。



f:id:thinkingskeever:20151114030550p:plain

3. インストール方法


f:id:thinkingskeever:20151114030550p:plain

4. MODを翻訳してプロパティ文字列ファイルを作成する手順(MOD翻訳者向け)

(1) TES5Editでプロパティ文字列を出力する

  1. UTF8化パッチ経由でTES5Editを起動し、翻訳対象のプラグインをロードします。
  2. 翻訳対象のプラグインを右クリックし、「Apply Script」メニューを選択します。
    f:id:thinkingskeever:20160810190930p:plain
  3. "Apply Script"画面でスクリプトの一覧から「_Skyrim_PropertyStringPatcher_Exporter.pas」を選択して「OK」を押します。
    f:id:thinkingskeever:20160810190943p:plain
  4. しばらくすると「名前を付けて保存」画面が表示されます。名前を付けてプロパティ文字列ファイルを保存します。
    f:id:thinkingskeever:20160810190952p:plain
  5. Messagesタブに処理結果が表示されます。「SUCCEED: Save completed.」が表示されれば成功です。
    f:id:thinkingskeever:20160810191001p:plain
  6. TES5Editを終了します。この時点ではプラグインを保存しないでください。


(2) TESVTranslatorでプロパティ文字列を翻訳する

  1. TESVTranslatorを起動し、先ほど出力したプロパティ文字列ファイル(~propstring_english.txt)を開きます
    f:id:thinkingskeever:20160810191014p:plain
  2. MCMテキストの翻訳と同じ要領で翻訳します。
    f:id:thinkingskeever:20160810191023p:plain
  3. 翻訳が終わったら、「ファイル - Export MCM/Translate (Finalize)」メニューを選択して翻訳結果を保存します。
  4. TESVTranslatorを終了します。

翻訳の際の注意点:

  • ID列が「$!FileFormat」「$!PluginName」の行は翻訳せず、原文のまま翻訳確定してください。
  • 翻訳してはいけない文字列があるので注意が必要です。翻訳してはいけない文字の例は次のとおりです。
    • 「Campfire」「Become a Bards」などのMOD名そのままの文字
      多くの場合はMCMの左メニューの名称です。翻訳するとメニュー名が日本語になります。実害はないですが、MOD名称は翻訳しないのが一般的です。
    • 「Campfire.esm」「Frostfall.esp」などのプラグイン名称
      実行時に他のプラグインを参照するのに利用されます。変更すると動作がおかしくなります。
    • 「AttackDamageMult」「ElectricResist」「health」「Stamina」など
      最後の2つは判断が難しいですが、Skyrimの関数呼び出しのキーワードである場合が多いです。変更すると動作がおかしくなります。
    • ACTIレコードの「Open」「Close」「Done」「StartOpen」など
      Skyrimのアクティベーター処理ののキーワードです。変更すると動作がおかしくなります。
  • 迷ったときはそのままにするか、スクリプトを追いかけて用途を判断してください。
    TES5Editでプロパティ定義から少し上にさかのぼるとスクリプト名がありますので、このスクリプトから調査を始めると捗ります。


(3) プロパティ文字列の配布

以上の手順でプロパティ文字列ファイル(プラグイン名_propstring_JAPANESE.txt)が完成しました。
このファイルを再配布すれば、別のユーザーもプロパティ文字列を日本語化することができます。
なお、本ツールは改変・再配布自由です。日本語化ファイルに添付しても構いません。
改変・再配布の条件は後述のクレジットを参照してください。


f:id:thinkingskeever:20151114030550p:plain

5. プロパティ文字列ファイルを使ってプラグインを日本語化する手順(一般利用者向け)

  1. UTF8化パッチ経由でTES5Editを起動し、日本語化対象のプラグインをロードします。
  2. 日本語化対象のプラグインを右クリックし、「Apply Script」メニューを選択します。
    f:id:thinkingskeever:20160810191048p:plain
  3. "Apply Script"画面でスクリプトの一覧から「_Skyrim_PropertyStringPatcher_Importer.pas」を選択して「OK」を押します。
    f:id:thinkingskeever:20160810191058p:plain
  4. 「開く」画面が表示されます。名前を付けてプロパティ文字列ファイルを選択して「OK」を押します。
    f:id:thinkingskeever:20160810191106p:plain
  5. Messagesタブに処理結果が表示されます。「SUCCEED: 数字 property string(s) changed.」が表示されれば成功です。
    f:id:thinkingskeever:20160810191114p:plain
  6. TES5Editを終了します。
    終了時に「Save changed files」ダイアログが表示されます。
    f:id:thinkingskeever:20160810191159p:plain
    結果を保存する場合には、変更したプラグインがチェックされていることを確認して「OK」を押します。
    結果を保存しない場合には、プラグインのチェックを外して「OK」を押します。

プロパティ文字列が日本語化済かどうかは拙作のTESVKaniCheckerでも見ることができます。
f:id:thinkingskeever:20160810191315p:plain


f:id:thinkingskeever:20151114030550p:plain

6. クレジット

作者: BowmoreLover
Twitter: https://twitter.com/@ThinkingSkeever
Blog: http://thinkingskeever.hatenablog.com/
NexusMods: http://www.nexusmods.com/skyrim/users/12326049
ツールの公開場所: https://www.dropbox.com/sh/25qmmxe6mocwh7e/AADFcjNl5wwKv2rFhANd32Xha?dl=0

謝辞
この場を借りて以下の方々に御礼申し上げます。

  • TES5Editの開発チームに感謝を
  • TES5Edit UTF8化パッチを作成してくださったARROW&KNEEの皆様に感謝を(谢谢开发支持UTF-8!)
  • TESVTranslatorの開発者McGuffinさんに感謝を。私にとって手放せないツールです
  • Campfireの作者Cheskoさんに感謝を。サンプルとして使用させていただきました

改変・再配布条件

  • このスクリプトは私の許諾なしに改変・再配布しても構いません。
    例えば、あなたが作成したプロパティ文字列ファイルに本ツールをそのまま添付しても構いませんし、独自の改変を加えたスクリプトを再配布しても構いません。
  • 改変したものを再配布する場合、オリジナルの作者(私)の名前をクレジットしてください。
  • 改変したものを再配布する場合、オリジナルと名前が被らないようにスクリプト名称を変更してください。


f:id:thinkingskeever:20151114030550p:plain

7. スクリプトの変更履歴

  • Version 1.0 (2016/08/02)
    • 初回リリース
  • Version 1.0 (2016/08/10)
    • READMEの訂正(バージョンは据え置き)


f:id:thinkingskeever:20151114030550p:plain

8. 本ガイドの改訂履歴

  • 2016/08/10 - 公開

以上

Copyright (C) 2015,2017 ThinkingSkeever, All Rights Reserved.
ブログの記事内に記載されているメーカー名、製品名称等は、日本及びその他の国における各企業の商標または登録商標です。
リンクはご自由に。記事の転載はご遠慮ください。記事を引用する場合はトラックバックするか元のURLを明記してください。