STEAM GROUP
Divinity: Original Sin 2 日本語化プロジ DOS2日本語化
STEAM GROUP
Divinity: Original Sin 2 日本語化プロジ DOS2日本語化
7
IN-GAME
140
ONLINE
Founded
12 September, 2017
Language
Japanese
Location
Japan 
Showing 231-240 of 256 entries
109
作業履歴
テキストのIDデータの抽出作業の確認2

ダイアログ以外のファイルについては、pakからアンパックした状態でlsfとlsbというバイナリ形式になっているので、「ExportTool-v1.8.2」で一括でlsfファイルおよびlsbファイルからlsxファイルへ変換する

以前に作成した解析プログラム「ExtractIDforDivinityOriginalSin2」を読みつつ、最新のフォルダ構成を確認する

ざっと確認した限りでは各データのフォルダは下記の通りか

  • 会話:\Mods\DivinityOrigins_1301db3d-1f54-4e98-9be5-5094030916e4\Story\Dialogs\*\*.lsj
  • キャラ:\Mods\DivinityOrigins_1301db3d-1f54-4e98-9be5-5094030916e4\Globals\*\Characters\_merged.lsx
  • アイテム:\Mods\DivinityOrigins_1301db3d-1f54-4e98-9be5-5094030916e4\Globals\*\Items\_merged.lsx
  • クエスト1:\Mods\DivinityOrigins_1301db3d-1f54-4e98-9be5-5094030916e4\Story\Journal\quest_prototypes.lsx
  • クエスト2:\Mods\DivinityOrigins_1301db3d-1f54-4e98-9be5-5094030916e4\Story\Journal\questcategory_prototypes.lsx
  • マーカー:\Mods\DivinityOrigins_1301db3d-1f54-4e98-9be5-5094030916e4\Story\Journal\marker_prototypes.lsx
  • シークレット:\Mods\DivinityOrigins_1301db3d-1f54-4e98-9be5-5094030916e4\Story\Journal\secret_prototypes.lsx
  • その他:\Mods\DivinityOrigins_1301db3d-1f54-4e98-9be5-5094030916e4\Localization
  • ムービー字幕:\Localization\English\Subtitles\*.lsx

中身を精査していないので、製品版では使われていないデータがあるかもしれない

上記のうち「クエスト2」と「ムービー字幕」は前バージョンまではなかったため、以前作ったプログラムでは抽出できない。これらはそれほど量が多くないのと、今プログラムをいじるとミスが発生しそうなので、とりあえず後回しにする

プログラムを修正して実行すると、問題なくデータを抽出できた

テキストのIDデータの抽出作業の確認

アンパッカーで簡単に取り出すことができる「english.xml」にはテキストとユニークIDしか含まれておらず、このままでは翻訳作業が困難なため、ゲームデータを解析し、ユニークIDが使われている箇所のデータを抜き出すことで、テキストの話者や種類などの情報を抽出する作業を行う

ちなみに「テキスト」や「ユニークID」が何なのかを補足しておくと、以下のようなもの
  • テキスト:原文と訳文、作業所の「原文」列と「訳文」列のデータ
  • ユニークID:各テキストに割り当てられたID、作業所の「ID」列のデータ
  • 今回抽出するデータ:作業所の「種類」列と「名前」列のデータ

まずはゲームデータをアンパックする。下記フォルダ内の「Origins.pak」と「Origins_1.pak」を別フォルダにコピーし、「ExportTool-v1.8.2」で「Origins.pak」を展開する

C:\Program Files (x86)\Steam\steamapps\common\Divinity Original Sin 2\Data

すると「Mods」「Projects」「Public」の3つのフォルダが生成される

例えばこの中の「Mods\DivinityOrigins_1301db3d-1f54-4e98-9be5-5094030916e4\Story\Dialogs\FortJoy」フォルダにある「FTJ_AD_BeachCrab.lsj」をテキストエディタで開くと、下記のような情報が書かれている

"TagText" : [
{
"TagText" : {
"handle" : "h07e16253gfd76g41c5gb563g122d64255adf",
"type" : 28,
"value" : "Muah ha ha!"
},
"stub" : {"type" : 19, "value" : 1}
},

この「handle」がユニークID、「value」がテキストになっている。またファイル名の「FTJ_AD_BeachCrab」は話者とエリア名などを表している

またこのフォルダが「Dialogs」なので、このテキストは会話セリフということがわかる

これらのデータを抽出することで、それぞれのテキストの種類と話者などのデータを取り出すことができる

ただし、バージョンによってこれらのファイルの場所が変わったり追加されたりするので(現在の作業所の「種類」列と「名前」列に空白があるのはそのため)、手動でフォルダ構成などを確認した後に、それに合わせて修正した自作プログラムで抽出する流れになる

ので多少時間がかかる
テキストの変更点の解析

製品版のテキストとアーリーアクセス版のテキストで、変更があった部分を自作のプログラムを使って解析する

プログラムは昨年作成した「DiffXMLforDivinityOriginalSin2」を使用。このプログラムでは、下記のテキストを調べて出力する
  • 新バージョンで削除されたテキスト(ユニークIDが新バージョンでなくなっているもの)
  • 新バージョンで追加されたテキスト(ユニークIDが新バージョンで追加されたもの)
  • 新バージョンでテキストが変更されたもの(ユニークIDが同じでテキストが異なるもの)
  • 新バージョンで追加されたものと削除されたもので、テキストが一致するもの(つまりユニークIDが差し替えられたもの)
  • 新バージョンでテキストが変更されたもののうち、すでに翻訳済みのもの(手動で修正が必要)

このプログラムはそのうち中身を整理してGitHubとかに公開する予定

今回アンパックしたテキストデータを「new_english.xml」、バックアップしておいたv3.0.76.796のデータを「old_english.xml」、作業所からダウンロードした進捗データ付きのものを「old_japanese_progress.xml」とリネームして指定のフォルダに入れる

プログラムを実行してしばらくすると、解析結果のファイルが出力される

解析結果は下記の通り
  • テキスト削除:11319
  • テキスト追加:34730
  • テキスト変更:10433
  • ID差し替え:221
  • 衝突:1628

この「衝突」は、テキストが変更されたもののうちで、すでに翻訳済みのもの。テキスト変更が軽微(誤字修正)であれば、翻訳テキストをそのまま使えるが、大幅に変更されている場合は訳しなおしが必要となる。

1628行も手動のチェックが必要か... 大変だ...
Showing 231-240 of 256 entries