プログラミング・動画編集 備忘録

プログラミングや動画編集についての備忘録です

Morrowind Mod エディター製作 - v0.3

前回まで

ダイアログ応答以外で癖のあるレコードについて個別に対応を進めていた。
Morrowind Mod エディター製作 - 3 - 派閥 - プログラミング・動画編集 備忘録

今回

大体予定していた機能を組み込めた状況。
少しゲームを進めてみて、ゲームをしながら気になった箇所の翻訳を追加・編集してみたが、それなりに使える状態となった。

ダイアログ応答の編集

次のような画面となる。

f:id:rrryutaro:20200723113405p:plain
v0.3でのダイアログ応答の編集

データ量が多いので検索文字列を指定しないと何も表示しないようにしている。
画面は「ボート」で検索して一致した結果が表示されている。
検索は一つの同一のダイアログ応答にて、複数のModがある場合はいずれかのModの文言に一致すれば対象としている。
左ペインは一致したダイアログトピックの一覧で、ダイアログ応答のキー名称と種類、ヒットした件数。
ダイアログトピック応答でさらに絞り込みたい場合に選択するのと、どのようなダイアログトピックがあるかをわかるように表示している。
右ペイン上部がダイアログ応答でここで表示される応答の内容は、複数Modを読込んだ最後の対象で、内部的にはそのコピー。
上部の項目をクリックすると、さらに中部に競合しているModと読込んだ順の応答を表示する。
下部はクリックしたセルのテキストを表示している。
編集は下部のテキスト欄か、上部のセルを直接編集すれば内部で管理しているレコードに反映され、変更がマークされる。
この状態で保存か新規保存すれば、編集結果が出力される。
保存については、Mod選択した際に保存対象にチェックした場合に対象のModファイルを上書し、新規保存は変更があったものについてだけ新規ファイルに保存される。

文字だけだとわかりづらいので、この辺はどこかの段階で各画面のキャプチャを付けて個別に説明を作りたいと思う。

エクスポートとインポート

レコードとフィールドのフォーマット定義にてエクスポートとインポートが可能かの項目を追加。
項目がなければ対象外。

{
    "RecordName": "WEAP",
    "Description": "Weapon",
    "IsShow": true,
    "IsEdit": true,
    "IsImport": true,
    "IsExport": true,
    "UniqueKeyFieldName": "NAME",
    "Fields": [
      {
        "CountType": "Required",
        "FieldName": "NAME",
        "DataType": "zstring",
        "Description": "Weapon ID",
        "IsShow": true,
        "IsEdit": false,
        "IsImport": true,
        "IsExport": true
      },
      {
        "CountType": "Required",
        "FieldName": "MODL",
        "DataType": "zstring",
        "Description": "Model filename",
        "IsShow": true,
        "IsEdit": false
      },
      {
        "CountType": "Optional",
        "FieldName": "FNAM",
        "DataType": "zstring",
        "Description": "Weapon name",
        "IsShow": true,
        "IsEdit": true,
        "IsImport": true,
        "IsExport": true
      },

こうして見ると、エクスポートするものはインポートもするし、指定がなければ対象としないので、レコードにエクスポートとインポートをする対象のフィールド名を記載する配列にでもすればよかったかもしれない。

"ExportImportFieldNames": ["NAME", "FNAM"]

エクスポートすると次のようにタブ区切で出力される。ここでは武器を出力してみた。

NAME	FNAM
VFX_DefaultBolt
steel mace	Steel Mace
steel dagger	Steel Dagger
spiked club	Spiked Club
steel broadsword	Steel Broadsword
steel shortsword	Steel Shortsword
imperial shortsword	Imperial Shortsword
steel spear	Steel Spear
steel tanto	Steel Tanto
imperial broadsword	Imperial Broadsword
iron longsword	Iron Longsword
iron shortsword	Iron Shortsword
nordic claymore	Nordic Claymore
steel dai-katana	Steel Dai-katana
iron claymore	Iron Claymore
silver longsword	Silver Longsword
ebony shortsword	Ebony Shortsword
ebony longsword	Ebony Longsword
silver shortsword	Silver Shortsword
 :

これをスプレッドシートなりに貼り付けて、英語部分の列を丸ごとGoogle翻訳に貼り付けて、日本語の結果を貼り付けるといった感じで翻訳する。
それほど手間でもないので、翻訳自動化するほどでもなさそう。
翻訳については文字数制限があるので、スプレッドシートにて文字数などもチェックする。
以下はその結果をそのままインポートファイルとして作成した。
ヘッダー部分で対象を絞り込むので、余計な列が合っても影響はしない。

NAME	英語	FNAM	文字数
VFX_DefaultBolt			0
steel mace	Steel Mace	鋼のメイス	10
steel dagger	Steel Dagger	鋼の短剣	8
spiked club	Spiked Club	スパイククラブ	14
steel broadsword	Steel Broadsword	鋼のブロードソード	18
steel shortsword	Steel Shortsword	鋼のショートソード	18
imperial shortsword	Imperial Shortsword	インペリアルショートソード	26
steel spear	Steel Spear	鋼の槍	6
steel tanto	Steel Tanto	鋼タント	8
imperial broadsword	Imperial Broadsword	インペリアルブロードソード	26
iron longsword	Iron Longsword	アイアンロングソード	20
iron shortsword	Iron Shortsword	アイアンショートソード	22
nordic claymore	Nordic Claymore	ノルディッククレイモア	22
steel dai-katana	Steel Dai-katana	鋼大刀	6
iron claymore	Iron Claymore	アイアンクレイモア	18
silver longsword	Silver Longsword	シルバーロングソード	20
ebony shortsword	Ebony Shortsword	エボニーショートソード	22
ebony longsword	Ebony Longsword	黒檀ロングソード	16
silver shortsword	Silver Shortsword	シルバーショートソード	22


これを実際にインポートすると次のようになる。

f:id:rrryutaro:20200723115859p:plain
v0.3武器をインポート

これを新規保存して、個別Modとして読込み異常があるようであれば外せばよい。
これで、ほとんどの固有名詞などを簡単手軽に翻訳できるようになった。

今後

実際にゲームを進めつつ翻訳作業を進めて使い勝手やバグを修正して、よさそうなら公開できるように調整していく。