Vector Thrust日本語化メモ

Vector Thrust

Steamで売ってるエースコンバットもどき
日本語化してる人がいないみたいなのでチャレンジした

手順

そのうち公開するレポジトリから落として上書きする
公開した

ただフォントの定義がまだ適当だからこれだと一部の文字が小さくなる
core_font_JP.xmlのFont要素を必要な個数増やして必要な属性を修正して種類を増やした上で
Font_Lang_JP.iniに対応するFont要素名を書けば直せる
ただそれだと文字が欠けた時に修正が面倒なのでこういう構成になってる

ここまでやったは良いけどしばらく時間が取れないから続きの作業が出来ないし困った

メモ

ファイル構成

ゲームのインストールディレクトリ(Steam/steamapp/common/VectorThrust/)をルートとして

Language

翻訳ファイルとゲーム側の定義とフォントの定義の紐付けをするファイルが入ってる
Lang_JP.iniが翻訳ファイル
Font_Lang_JP.iniがゲーム側の定義とフォントの定義の紐付け

1[Fonts]
2Default = "JP.19"

と書くとゲーム側のDefaultフォントの参照がcore_font_JP.xmlのFont要素のname属性の対応するものが参照される
ゲーム内で使われてるフォントは「フォント定義名」のとこで調べられる

media/MyGUI_Media

GUI周りのファイルが入ってる
core_font_JP.xml

 1<?xml version="1.0" encoding="utf-8"?>
 2<MyGUI type="Font">
 3  <Font name="JP.19" source="jp.ttf" size="16" resolution="50" antialias_colour="false" space_width="4" tab_width="8" cursor_width="2" distance="5" offset_height="0">
 4    <Code range="33 126"/>
 5    <Code range="1025 1105"/>
 6    <Code range="8470"/>
 7    <!-- ぁ - ん -->
 8    <Code range="12353 12435"/>
 9    <!-- ア - ン -->
10    <Code range="12449 12534"/>
11    <!-- 亜 - 熙 -->
12    <Code range="19968 39640"/>
13    <!-- ー -->
14    <Code range="12540"/>
15
16    <Code hide="128"/>
17    <Code range="161 255" />
18    <Code hide="1026 1039"/>
19    <Code hide="1104"/>
20    <!-- Latin-1 Supplement -->
21    <Code range="128"/>
22    <Code range="129 160" />
23    <Code range="1026 1039"/>
24    <Code range="1104"/>
25    <Code range="8364"/>
26    <Code range="260 380" />
27  </Font>
28</MyGUI>

Font要素で1個のフォント名を定義出来るっぽい
name属性に先程のファイルで参照する際に使う名前を適宜する
source属性は参照される実際のファイル
size属性は実際の文字サイズ
Code要素はrange属性で参照する文字コードを書く
例えばぁ~んまでを参照したい場合は

1<Code range="12353 12435"/>

と書く

1$ python
2>>> ord(u"ぁ"), ord(u"ん")
3(12353, 12435)

現在は適当に宣言してある

参照したくない場合はhide属性を使う?
予めCode要素で宣言しておかないと表示しようとしても空白になってしまう
またxmlファイルはシンタックスをミスるとアプリが起動しないので編集する時は注意する

フォント定義名

ゲーム内で使用してるフォントはcore_font.xmlに宣言されてる
ので全部に対応するFont要素を作成してあげれば良いと思うけど後回し

こんな感じのコードで探せる

1from xml.etree.ElementTree import parse
2
3tree = parse("core_font.xml")
4elm = tree.getroot()
5
6for e in elm.findall(".//Font"):
7    print e.get("name")

定義名メモ

全体一括

1Default = "フォント名"

トップのメニューのフォント

1Monkirta.25 = "フォント名"

オプションのボタンフォント

1Monkirta.33 = "フォント名"

オプションのラベルフォント

1ArialRounded.19 = "フォント名"

キャンペーンのラベル

1ArialRounded.25 = "フォント名"

省略語メモ

  • MM
    メインメニュー
  • CS
    キャンペーン
  • HM
    キャンペーンのミッション開始前?
  • PM
    プレイヤープロフィール
  • オプション
    • OM
      オプションのボタン
    • OD
      全般設定
    • OS
      音設定