PC ゲーム Kholat 有志日本語データ抽出方法と Unreal Engine 4 locres 翻訳ファイル編集方法メモ
PC ゲーム Kholat(Steam 版、GOG 版)は 2016年のアップデートにより公式日本語が実装 されていますが、以前は 有志日本語化パッチが公開(情報元はすでになくなっており、リンク先はインターネットアーカイブ) されていた経緯がありました。
この日本語化パッチはゲームデータをアンパックした後、その当時リリースされていた英語翻訳ファイルに差分パッチ更新ツール(プロパティ情報 からおそらく File Diff Patcher)を適用することで日本語化されて、日本語でゲームをプレイできるように提供されていました。
そのため、最新バージョンの Kholat ではこのやり方では適用することができず、またパッチ本体のみでは有志翻訳ファイルの中身を確認することができません。
この記事では Steam や GOG の配信プラットフォームで利用できるロールバック機能を使って翻訳ファイルの抽出と有志日本語化パッチの適用、さらに翻訳データのエクスポート・インポートまで確認してみました。
PC ゲーム Kholat 日本語情報
今回、公式日本語ファイルと有志日本語化ファイルを抽出するためにインストールした Steam 版 Kholat と GOG 版 Kholat です。
GOG 版 については GOG GALAXY のロールバック機能を使うので、GOG GALAXY からゲームをインストールしておいたほうが後々楽だと思います。
PC ゲーム Kholat のゲームエンジンは Unreal Engine 4、ゲームデータは拡張子 pak ファイルにまとめられており、翻訳ファイルも pak ファイルに含まれています。
データを抽出するためのアンパックツールとして QuickBMS を使用します。最新版の公式日本語ファイルを抽出するだけなら QuickBMS だけで済みます。
有志日本語化パッチを適用するためにはゲームを旧バージョンにロールバックしてから、QuickBMS でのアンパックが必要になります。ロールバックするためには Steam 版では DepotDownloader を、GOG 版では GOG GALAXY を使用します。
旧バージョン pak ファイルからアンパックした 言語ファイル Kholat.locres
に有志日本語化パッチを適用 することで、有志翻訳に書き換えることができます。
なお、言語ファイルの Kholat.locres
はそのままの形式では編集も翻訳内容も見ることができないため、locres 翻訳ファイル編集ツール を使ってエクスポートして確認・編集することになり、同ツールのインポート機能で Kholat.locres
ファイルを生成するという流れになります。
Steam 版 Kholat でインストール先フォルダを開きたい場合、Steam ライブラリからプロパティ画面を開き、ローカルファイルにある 「参照...」 ボタンをクリックすることでインストール先フォルダにすぐにアクセスできます。
または、Steam ライブラリでタイトルを右クリック → 管理 → ローカルファイルを閲覧、をクリックすることでインストール先フォルダを開くこともできます。
PC ゲーム Kholat 言語ファイル抽出方法
Kholat のゲームエンジンは Unreal Engine 4 となっており、ゲームデータは拡張子 pak ファイルにまとめられています。
翻訳ファイルもこの pak ファイルに含まれているので、pak ファイルから目的のデータを抽出するために、アンパックツールとして QuickBMS と bms スクリプトを使用します。
Steam 版 Kholat と GOG 版 Kholat が配信されていますがpak ファイルは共通なので、どちらの配信プラットフォームでもアンパック方法は同じです。
Kholat 最新版言語ファイル抽出方法(Steam 版・GOG 版共通)
最新バージョンの Kholat から公式日本語ファイルを入手したい場合は、以下のアンパック手順で抽出できます。
有志翻訳ファイルを入手したい場合は先に配信プラットフォームのロールバック機能(Steam 版は DepotDownloader、GOG 版は GOG GALAXY)で戻してからアンパックします。
QuickBMS と unreal_tournament_4.bms をダウンロード します。unreal_tournament_4.bms
ファイルはサイト内にある 「Unreal Tournament 4」 と表記されているリンクをクリックすることでダウンロードできます。
ダウンロードした QuickBMS を展開・解凍したら、そのフォルダ内に同じくダウンロードした unreal_tournament_4.bms
ファイルを配置します。
unreal_tournament_4.bms
ファイルを QuickBMS フォルダ内に配置するのは必須ではないですが、あとでこのファイルを選択するときの操作の手間が省けて楽になります。
QuickBMS にある quickbms.exe
を実行します。
QuickBMS スクリプト選択画面が表示されるので、ダウンロードした unreal_tournament_4.bms
ファイルを開きます。
次に QuickBMS アーカイブファイル選択画面が表示されるので、ゲームインストール先 KHOLAT\Kholat\Content\Paks
フォルダにある Kholat-WindowsNoEditor_P.pak
ファイルを開きます。
アンパック先の空フォルダを用意して、選択画面でそのフォルダを開いた状態にして保存ボタンをクリックします。
画像は用意していませんが、最後に QuickBMS 出力先フォルダ選択画面が表示されます。アンパック先フォルダを選択するとコマンドプロンプト画面が表示されてアンパック処理が走るので、完了するまでしばらく待ちます。
画像のように処理が終われば pak ファイルのアンパックは完了です。
指定したフォルダに展開された Kholat\Content\Localization\Game\ja-JP
フォルダにある Kholat.locres
ファイルが Kholat の公式日本語翻訳ファイルです。
言語ファイルの Kholat.locres
はそのままの形式では編集も翻訳内容も見ることができないため、locres 翻訳ファイル編集ツール を使ってエクスポート・インポートして確認・編集することになります。
ここまでの内容は pak ファイルをアンパックして目的のファイルを入手することを前提に説明していますが、編集した公式日本語言語ファイル Kholat.locres
をゲームに反映したい場合は こちらの 「手順 2. 修正パッチファイル Kholatjp.exe 実行」 をのぞく手順 でアンパックすることになります。
ここで紹介した手順との違いは次の 2点。
QuickBMS によるアンパック先を空フォルダではなくゲームインストール先一番上にある KHOLAT
フォルダを選択してアンパックすることと、ゲームインストール先 KHOLAT\Kholat\Content\Paks
フォルダにある Kholat-WindowsNoEditor_P.pak
ファイルを読み込ませないようにアンパック後はリネーム(名前変更) or 移動 or (バックアップした後に)削除などすることです。
Kholat 旧バージョン言語ファイル抽出方法(Steam 版)
有志日本語化パッチを適用するためには配信プラットフォーム別にあるロールバック機能を使うことになります。
Steam 版 Kholat の場合、以前は Steam 上でロールバックができましたが使えなくなってしまったので、DepotDownloader を使ってロールバックします。
DepotDownloader の使い方については こちらのブログ で紹介されているやり方を参考に設定しました。
この中で少し面倒なのが depotdownloader.bat
ファイルに各種情報を入力する必要があるのですが、先ほどのブログに編集用サンプルとして depotdownloader.bat
に記載すべき情報をテンプレートとして用意してあるのでこれをコピーして流用、Steam アカウント名・パスワードとダウンロードに必要な必要な情報に書き換える形をとりました。
アカウント名、パスワード以外にダウンロードの対象となるゲームの各種 ID が必要です。今回は以下の旧バージョン Kholat ID を SteamDB から探して設定しています。
depotdownloader.bat
設定後に実行してうまく正常に動作すると、上の画像のようにコマンドプロンプト画面が表示されます。Steam ガードモバイル認証 を導入している場合はコード入力後にダウンロードが開始します。
ちなみに、私の環境では当初どうしてもパスワードが通らないことがあり、いったん別のパスワードに変更することでダウンロードできた経緯がありました。
この辺は未検証ですが英数字以外の文字をパスワードに設定している場合、depotdownloader.bat
にパスワードを設定しても通らない可能性があるかもしれません。(この時間違って違うパスワードを入力していた可能性はありますが)
DepotDownloader が配置してあるフルパス名に半角スペースのフォルダがあると 「Could not execute because the application was not found or a compatible .NET SDK is not installed.」 というエラーメッセージが表示されて実行できません。半角スペースがないフォルダに DepotDownloader を配置するか、フルパス名に半角スペースがある状態で実行したい場合は dotnet コマンド後に 「"%~dp0DepotDownloader.dll"
」 となるようにダブルクォーテーションで囲めば上記エラーメッセージ問題は解決します。
DepotDownloader と上記 depotdownloader.bat
ファイルの設定内容による旧バージョン Kholat のダウンロード完了後、depotdownloader\depots\343711\3530083\Kholat\Content\Paks
フォルダに Kholat-WindowsNoEditor_P.pak
ファイルがあるので、これを QuickBMS でアンパックします。
旧バージョン pak ファイルからアンパックした Kholat\Content\Localization\Game\en
フォルダにある英語版言語ファイル Kholat.locres
を、有志日本語化パッチを適用 することで有志翻訳に書き換えることができます。
Kholat 旧バージョン言語ファイル抽出方法(GOG Galaxy 版)
有志日本語化パッチを適用するためには配信プラットフォーム別にあるロールバック機能を使うことになります。
GOG 版 Kholat の場合は、GOG GALAXY のロールバック機能を使います。
GOG GALAXY から Kholat のインストール管理 → 設定 → 自動アップデートを開きます。
GOG 版 Kholat の場合、2021年1月時点の最新版は バージョン 1.03a となっています。
表示するバージョンを増やすをクリックして、公式日本語が実装される前の バージョン 1.02 を選択してロールバックします。
GOG GALAXY でのバージョン 1.02 へロールバック完了後、Steam 版での DepotDownloader を使ったロールバック と違い GOG Galaxy\Games\Kholat\Kholat\Content
フォルダに Kholat-WindowsNoEditor_P.pak
ファイルが配置されるので、これを QuickBMS でアンパックします。
旧バージョン pak ファイルからアンパックした英語版言語ファイル Kholat.locres
に 有志日本語化パッチを適用 することで、有志翻訳に書き換えることができます。
Kholat 旧バージョン言語ファイル 英語 → 有志日本語化方法
Steam 版では DepotDownloader で、GOG 版では GOG GALAXY でロールバックした旧バージョン Kholat の pak ファイルを QuickBMS でアンパックしたら、英語版言語ファイル Kholat.locres
に日本語化パッチを適用して有志日本語化に書き換えます。
KHOLAT 有志日本語化パッチ Kholatjp20160414.zip をダウンロードして展開・解凍すると、kholatjp.exe
があるのでこれと使って有志日本語化します。
kholatjp.exe
ファイルを英語版言語ファイル Kholat.locres
と同じフォルダ内に配置して実行します。
ちなみに、こちらは有志日本語化パッチ kholatjp.exe
のプロパティ画面です。
プロパティ画面の内容から File Diff Patcher を使用して作成されたパッチかと思われます。
kholatjp.exe
実行後、差分パッチ適用確認画面が表示されるので 「はい」 をクリック。
英語版言語ファイル Kholat.locres
に問題がなければ、kholatjp.exe
によるパッチ適用処理が進み画像のように完了画面が表示され、Kholat.locres
のデータ及びファイル容量が更新されます。
Kholat のバージョンにより英語版言語ファイル Kholat.locres
の中身が異なることがあるので、その場合はエラー表示となって有志日本語化パッチが適用できないことがあります。(最新版は不可)
言語ファイルの Kholat.locres
はそのままの形式では編集も翻訳内容も見ることができないため、locres 翻訳ファイル編集ツール を使ってエクスポート・インポートして確認・編集することになります。
その他注意点として、公式日本語翻訳ファイルと有志日本語化ファイルを WinMerge で比較した際に中身に結構な違いがあります。
そのため未確認ですが、最新バージョンの Kholat で有志日本語化ファイルの Kholat.locres
を設定してプレイした場合に、なんからの不具合が発生するかもしれません。
PC ゲーム Kholat - locres 翻訳ファイル編集方法
拡張子 locres ファイルを開き、テキストを編集するには以下のツールのいずれかを使うことになります。
PC ゲーム Kholat においては Text tool by swuforce と Unreal Engine 4 .locres (Text tool by swuforce) で動作していることを確認しています。これらのツールはエクスポート・インポートがかんたんで楽なので、特に理由がない限りは更新日が新しいこの 2つのツールのどちらかで十分でしょう。
- Text tool by swuforce → 2020年更新ツール
- Unreal Engine 4 .locres (Text tool by swuforce) → 2019年更新ツール
- UE4 locres 変換ツール(locres_util_011) → 2016年公開ツール
Kholat だけに限らず、Unreal Engine 4 の locres ファイルはこれらのツールで対応できる可能性がありますが、ゲームタイトルによっては対応していないこともあるようです。
ZenHAX のフォーラムにトピック Unreal Engine 4 .locres, .uasset (Text) があるのでそこから最新情報を確認したほうがよいでしょう。
Text tool by swuforce を使った locres ファイルエクスポート・インポート
Text tool by swuforce を使って locres ファイルエクスポート・インポートしてみます。
Text tool by swuforce をダウンロードして展開・解凍したら、同フォルダ内に編集したい Kholat.locres
ファイルを配置して、unreal_locres_export.exe
を実行します。
unreal_locres_export.exe
実行後、locres ファイル指定画面が開くので Kholat.locres
ファイルを指定します。
正常にエクスポート処理が完了するとテキストファイルとして Kholat.locres.txt
ファイルがエクスポートされます。あとはテキストエディタで Kholat.locres.txt
ファイルを閲覧・編集が可能となります。
テキストファイルをインポートして locres ファイルにしたい場合は、unreal_locres_import.exe
か unreal_locres_import_v2.exe
を実行します。(この 2つの exe の違いについてはわかりませんでした。ほかの UE4 ゲーム locres インポート用機能?)
unreal_locres_import.exe
か unreal_locres_import_v2.exe
実行後、テキストファイル指定画面が開くので Kholat.locres.txt
ファイルを指定します。
正常にインポート処理が完了すると NEW_Kholat.locres
ファイルを生成します。これを Kholat.locres
にリネーム(名前変更)すれば locres ファイルの完成です。
Unreal Engine 4 .locres (Text tool by swuforce) を使った locres ファイルエクスポート・インポート
Unreal Engine 4 .locres (Text tool by swuforce) を使って locres ファイルエクスポート・インポートしてみます。
使い方は Text tool by swuforce とほぼ同じです。
Unreal Engine 4 .locres (Text tool by swuforce) をダウンロードして展開・解凍したら、同フォルダ内に編集したい Kholat.locres
ファイルを配置して、unreal_locres_export.exe
を実行します。
unreal_locres_export.exe
実行後、locres ファイル指定画面が開くので Kholat.locres
ファイルを指定します。
正常にエクスポート処理が完了するとテキストファイルとして Kholat.locres.txt
ファイルがエクスポートされます。あとはテキストエディタで Kholat.locres.txt
ファイルを閲覧・編集が可能となります。
テキストファイルをインポートして locres ファイルにしたい場合は、unreal_locres_import.exe
を実行します。
unreal_locres_import.exe
実行後、テキストファイル指定画面が開くので Kholat.locres.txt
ファイルを指定します。
正常にインポート処理が完了すると NEW_Kholat.locres
ファイルを生成します。これを Kholat.locres
にリネーム(名前変更)すれば locres ファイルの完成です。
UE4 locres 変換ツール(locres_util_011)について
今回軽く動作確認程度で触ったのみで最後まで使用しませんでしたが、UE4 locres 変換ツール(locres_util_011) が公開されています。
UE4 locres 変換ツール(locres_util_011) は 2016年に登場したツールでテキストではなく ods 形式 に変換して、Google ドキュメントでの作業を想定とした locres エクスポート・インポートツールです。
さらに Khola の場合ですが、インポート後、バイナリエディタで locres ファイルの編集が必要 となっています。
DepotDownloader を使って Steam の特定のファイルをダウンロードする方法
DepotDownloader を使って旧バージョンのファイルをダウンロードする場合、通常はすべてのゲームデータをダウンロードするようになっています。
必要なファイルがすでに判明しており、特定のファイルのみを指定してダウンロードしたい場合は、DepotDownloader の基本設定を済ませている状態 で以下の設定をすることでダウンロードできます。
DepotDownloader フォルダにダウンロードしたいファイル名(正規表現可)を記述したテキストファイルを配置します。テキストファイル名は任意です。
ここでは Kholat.txt
というテキストファイル名を作成して、テキストファイルにはダウンロードしたいファイル名(今回は Kholat-WindowsNoEditor_P.pak
)を記述します。
depotdownloader.bat のコマンド行に 「 -filelist Kholat.txt
」 を追加して保存します。
depotdownloader.bat 実行後(Steam ガードモバイル認証 を導入している場合は続けてコード入力後)、テキストファイルに記述したファイルのダウンロードが始まります。
depots
フォルダ以下にテキストファイルに記述したファイルがあればダウンロード成功です。