HotlineMiami2日本語化MODを作ったよ


HotlineMiami2のセリフ日本語化MODを作成しました。

ダウンロード

MOD概要

HotlineMiami2 PC版は日本語を選択できませんが、日本語データが存在します。
ただ、強制的に選択しても日本語に対応したフォントが存在しないので文字化けします。

このMODでは

日本語化MODの作成手順

もしも、上記日本語化modに不満がある場合以下の手順を参考に作成してください。   ※ binファイルは32bit(4Byte)のリトルエンディアンで数値が記録してある点に注意

必要なツール

日本語を選択可能にする

  1. HLM WAD Explolerでhlm2_localization.binを取り出します。
  2. バイナリエディタでJapanese文字列後ろの0C02などに書き換える。
  3. 書き換えた hlm2_localization.binをHLM wad explolerでReplaceする。

日本語フォントの埋め込み

HLM wad explolerで日本語化したいフォントを確認をします。

次に、bmfontで使用するフォントを画像化します。

  1. Font Optionsで種類とサイズの決定
  2. hlm2_localizationで使用する文字を列挙したUTF-16のテキストを作成
  3. 上記ファイルをSelect chars from fileで開く
  4. 00000 Latin + Lation Supplementも一応選択
  5. ExportOptionsフォント画像がpng形式で1ファイルになるように調整
  6. 出力

最後にHLM wad explolerで置き換えたいフォントをReplaceします。  

セリフの書き換え

C言語風で書くと以下のような構造になっています(文法的に正しくないです)。

struct hlm2_localization{
  int32_t language_length;
  int32_t unknown1;
  struct language_data language_section[language_length];
};
struct language_data{
  int32_t lang_name_length;
  char lang_name[lang_name_length];
  int32_t control_id;//選択の可否とか設定している
  int32_t text_number;
  struct position head_section[text_number];
  struct text body_section{text_number];
};
struct position{
  int32_t text_position;
};
struct text{
  char text[];//head_sectionのtext_positionから次のtext_positionまでの文字列
};

上記を考慮して以下のようなスクリプトを作るか
gist
海外の人が作っているエディタを使えば編集できます。

何か合ったらメールかtwitterまでお願いします。