2015年12月21日月曜日

Shadowrun: Dragonfall - Director's Cut 日本語表示可能


Engine: Unity 4.3.4f1
UI周りのテキストはresources.assets内のcode.*。
拡張子をmoにしてPoeditに付属するmsgunfmt.exeでpoファイルに変換する。
例:msgunfmt.exe "編集元moファイルパス" -o "poファイル保存先パス"

DragonfallのダイアログはDragonfall_Data\StreamingAssets\ContentPacks\DragonfallExtended\data以下のbytesファイル。
このゲームはContentの翻訳に対応しており、DragonfallもContent扱いなので以下の手順で翻訳できる。
ShadowrunEditorでproject.cpack.bytesを開いてTools→Extract Content Pack Localizationでpotファイルを出力。
potから翻訳プロジェクトを作成し、翻訳した後DragonfallExtended.moにコンパイルする。
後はこれをDragonfallExtended\data\loc\(UIの言語コード)\に配置すれば反映される。

…はずなのだが、UIを英語にしていると反映されない。どうやらContentの翻訳はゲームをES、FR、DE、IT、RU、CNのどれかに設定している時のみ反映されるようだ。
そこで上記のフォントModではフランス語UIのテキストを英語のものに差し替えた。
ゲームをFRに設定し、Dragonfall\loc\fr\にDragonfallExtended.moを置けばUIとダイアログの両方で日本語表示できる。

ただ英語以外に設定すると時々ニューゲームできなくなったりと動作が怪しくなる…
英語でもmoを読んでくれるようにAssembly-CSharp.dllを改変できればいいんだけど、自分には無理だった。
まず英語でニューゲームし、言語を変更後ロードすればプレイに支障は無いと思う。
いちいちレジストリ値を変更するのは面倒なので言語変更ツールをフォントModに同梱した。ロシアフォーラムにあったもののパクリだけど

追記:
Autumbra SagaもDragonfallと同じ手順で日本語表示できた。他のModも翻訳できると思う。

2015年12月19日土曜日

LISA 日本語表示可能


Engine: RPG Maker VX Ace
RPG Maker DecrypterGame.rgss3aをアンパック
・DataフォルダとGraphicsフォルダをGame.exeと同じディレクトリに配置
・Game.rgss3aをリネーム or 削除
rvpacker(要ruby)でrvdata2をテキストファイルにコンバート 
例:C:\Ruby22-x64\bin\rvpacker -a unpack -d "D:\Program Files (x86)\Steam\steamapps\common\LISA" -t ace

・YAMLフォルダ内のファイルを翻訳
・Fontsフォルダにttfを置いてスクリプトのどれかで指定
LISAの場合タイトル画面のフォントはtitle_trans.rb
ダイアログはYanfly_Core_Engine.rb
こんな感じで指定する。ダイアログのOutlineは切った方がいいかも。
・rvpackerでrvdata2にコンバート 
例:C:\Ruby22-x64\bin\rvpacker -a pack -d "D:\Program Files (x86)\Steam\steamapps\common\LISA" -t ace

・DataとGraphicsはリパック不要

テキストはスクリプトと一緒に書かれているので結構大変。

2015年12月9日水曜日

XNA 日本語フォント

Microsoftのやる気とは対照的に良ゲーも多かったXNA
その日本語フォントの作成についてツールと覚え書き

環境:
XNA Game Studio 4.0
Visual Studio 2010 Expressと2015で正常にビルドできるのを確認。2015の方が気持ちビルドが速いかな。
新しいプロジェクト→XNA Game Studio 4.0→Windows Game(4.0)
Contentに新しい項目からSpriteFontを追加。デフォルトで生成されるのはASCIIのみ。
Unicodeで範囲指定できるが、手動で指定していくのは非常に面倒なのでツールを作った。

必要なもの:
jpmodさんのcharlist
XNAfont

使い方:
charlistで使用文字一覧をUTF-8のtxtに出力。
そのtxtをXNAfont.exeにドラッグ&ドロップするとencoded.txtが生成されるので、中身を画像の位置に貼り付けてビルド。

サイズにもよるけどそこそこ時間がかかるので静かに待つ。

追記:
良さ気なツールを見つけたので紹介。
XNBFontCreater
BMFontでdescriptorをバイナリで保存し読み込む。

Apotheon 日本語表示可能


Engine: XNA 4.0
フォント
会話のテキストはApotheon\Dialog\conversations\以下のxnbファイル。
010 editor等のUTF-8に対応したバイナリエディタで編集。


文章の始まりの1バイト前が文章の長さで、ここが間違ってるとセリフの吹き出しごと消えるので注意。
そこさえ正しければ元の文字数を超過しても問題ない。

UI周りのテキストはほぼ全てexe内にあるのでReflexilで書き換える。

2015年12月7日月曜日

Sir, You Are Being Hunted 日本語表示可能

Engine: Unity 4.6.1f1
フォント
フォントはsharedassets0.assets内でBMFontそのまま
テキストはsharedassets2.assets内とAssembly-CSharp.dll