Legends Of Amberland 日本語化支援ツール
Legends Of AmberlandはオールドスクールなRPGです。Might and Magic 3に大変よくにており、当時を知る方は興味があると思います。しかし、残念なことにマルチバイト文字(Unicode)への対応ができておらず外部にテキストがあるものの簡単に日本語化できません。そこで欧文フォントのLatin-1 Supplement領域を利用し、無理やり日本語化(カタカナ化)するためのフォントとツールを提供します。
日本語化の流れとしてはLatin-1 Supplement領域部分をカタカナにしたフォントを利用します。日本語で「あそびかた」としたい場合、「ÁÜòÊÞ」と入力することでゲーム中では「アソビカタ」と表示できるようになります。ただ、このアクセント付きアルファベットなどを直接入力することは困難でありどのように翻訳したかもパッと見た目で分からないので入力はひらがなで行い、それを対応するアクセント付きアルファベットに変化なするプログラムを利用することで対応させるのがこの補助ツールの目的です。
一番の問題はLatin-1 Supplement領域で使用できる文字は少ないため漢字は一切使用できないということです。文字としてりようできるのは下記の88文字のみとなります(半角英数字はそのまま使用できます。全角スペースはありません)。
・、!?。「」ーぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろわをん
日本語化の流れ
ゲーム内テキストは\Legends of Amberland\data\locale\フォルダに国別に入っています。新たに言語を追加できるシステムにはなっていますが、今回はフランス語を置き換えることで対応します。翻訳には英語のゲーム内テキストファイル(locale-en_EN.tsv)をします。これは未翻訳の部分を英語で表示するためです。これをGoogleドライブへアップします。
アップロードしたファイルはTSVファイルですので、Googleスプレッドシートとして開きます(Excelでできるかは未確認のため、未対応とします)。A列がID、B列が英語となっていると思います。C列に日本語を入れる列を作り、D列にはチェック用の列として使用します。E列以降は不要ですので削除して構いません。
上記のように多少セル幅などを調整して見やすいようにします。次にD2に以下の関数を入力します(コピー&ペーストでOK)。そして、最終行までコピーをします(D2を選択し、CTRL+SHIFT+↓で最終行に飛び、CTRL+Dでコピーできます)。なお、このシートの名前を「翻訳用」としておきます。
=iferror(REGEXEXTRACT(C2,“[^りゆぅしそづぷぽだまみむめもゃやゅょよらるれろわを、!・ーん?ぁあぃいうぇえぉおかがきぎくぐけげこごさざじすずせぜぞたちぢっつてでとどなにぬねのはばぱひびぴふぶへべぺほぼ「。」[:ascii:]]”),“”)
これはC2に入力された文字列を正規表現で検索しています。C2に使用された文字に使用可能文字以外が見つかった場合、最初の文字がD列に表示されます。例えば、「パーティーはかいふくした。」と入力した場合、「パ」が表示されます。関数で処理をしているため、未対応の「ティ」は表示されませんが、「パ」を「ぱ」に修正すると次に「テ」が表示されます。D列に文字が表示されないように文字を入力してください(全角スペースは表示されないため注意)。
日本語の入力に関してですが、すべて「ひらがなで入力」してください。使用できる文字は最初に記載した通りですが、「。、」はほぼ半角扱いの幅に変更してあります。また長文テキストを入力する際は適度に半角SPを入れてください。上記の例(SS)では助詞の後ろに必ず半角SPを入れています。なぜこのような処理をしないといけないのかといえば、空白なしで入力するとゲーム上では1行で表示されてしまう場合があるからです。このゲームは半角SPと改行記号(\n)で自動改行を実装しているためです。
テキスト内にある%d(%+dや%-dなども同じ)や%sはC++で使用される出力フォーマット指定子というものです。%dには10進数の数字、%sには文字列が入ります。ここで気を付けなければならないのは順番は入れ替わらないということです。
%s cast Heal %d times, and %s recovered %d HP.
例えば、上記のテキストがあった場合「%sはヒールを%d回唱え、%sは%dHP回復した。」となり、順番がかわらないため問題がありません。しかし、
%d exp.pts are required for level %d.
の場合、%dの値が前後で入れ替わる場合があります(レベル%dには%d経験値が必要)ので翻訳には注意してください(そんなに多くはありませんが、覚えておいてください)。これ以外には改行を示す「\n」があります。
出力用シートとTSVでダウンロード
翻訳用シートとは別に出力用シートを1つ作成してください。AとB列しか必要ありませんのでC列以降は削除してかまいません。
A1には「=ARRAYFORMULA(‘翻訳用’!A:A)」と入力してください。A1に入力するだけでA2以下全てが自動的に入力されます。ただし、不要な行ができると思いますので、IDがある最終行まで進み(A1を選択してCTRL+↓を押せば最終行に移動します)、IDが存在しない行を全て削除してください。
B列は翻訳が終わっていない場所の処理をするためにB1に「=ARRAYFORMULA(if(‘翻訳用’!C:C<>“”,‘翻訳用’!C:C,‘翻訳用’!B:B))」と入力します。A列同様、B2以下が自動的に入力されます(念のため空白行が出来ていないか確認しておいてください。もしあれば削除しておきましょう)。
このシートをGoogleスプレッドシートのメニューから「ファイル→ダウンロード→タブ区切り形式(.tsv)」としてダウンロードします。
Latin-1 Supplementへコンバート
アーカイブ内にある「LOA_Converter.exe」というプログラムにダウンロードしたファイルをドロップします(拡張子しか確認していません。目的外のTSVファイルをドロップした場合、エラーが表示され処理が中止されます)。処理が終了すると「locale-fr_FR.tsv」というファイルが生成されます。生成されたファイルは文字コードLatin-1(Meryの場合「西ヨーロッパ言語」です)となっています。Meryの場合、オプションの「既定のエンコード」で「西ヨーロッパ言語」にしていない場合、「日本語(シフトJIS)」で開かれますので、その際はMeryのメニューから「ファイル→読み直し→西ヨーロッパ言語」で読み込みなおしてください。
日本語化
アーカイブに含まれているdataフォルダをゲームフォルダ(\Legends of Amberland\フォルダ)へ上書きコピーします。その後、先ほど変換したTSVファイルをフランス語のフォルダ(\Legends of Amberland\data\locale\fr_FR\フォルダ)へコピーします。
これで準備は完了です。ゲームを起動してメニュー画面の左上にある国旗から「French」を選択するか「Option」内にある言語選択から「French」を選択してください。翻訳した箇所がカタカナで表示されれば終了です。
動画配信での使用、日本語化したゲーム画像の使用について
ゲーム本体の規約に沿ったうえで下記の注意事項を記載をしてください。どのように日本語化したかを記載の上、配信をお願いします(公式で対応していると思われたりしないための処置です)。
注意事項と利用規約
- 日本語化支援ツールの使用は自己責任でお願いいたします。
- ゲームのアップデートでツールが使用できなくなった場合、対応する義務はないものとします。
- ツールを使った日本語化ファイルの配布は自由に行って構いません。ただし、このツールを使った旨を必ず記載してください。