見出し画像

How to 日本語化~初級篇 おまけ

Windowsでコマンドプロンプトを開いて使用するコマンドラインというものがあります。UnityEXもこのコマンドラインオプションがあり、それを使うことができます。
CUI(キャラクターユーザーインターフェイス)で操作するため、GUIのように直感的な操作はできませんが、全てのassetsからTTF(ID 128)とTXT(ID 49)を抜き出すということが手軽にできます。
以前はコマンドラインからヘルプが見れたのですが、現在はみれないようになっているようです。

準備

対象のゲームの「*_Data」フォルダに「UnityEX」をコピーします。
ここではサンプルとして、下記フォルダにコピーしたとします。
J:\SteamLibrary\steamapps\common\sample\

サンプルのツリー構成

コマンドプロンプトを開く

Win7/11ともにスタートメニュー(Windowsの画面左下のボタンをクリック)を開いて、そのまま「cmd」と入力します。

Windows 10で「cmd」と入力した直後
Windows 7 で「cmd」と入力した直後

選択し、実行するとDOS窓と呼ばれるコマンドプロンプト画面が開くと思います。開いた直後はユーザーフォルダとなっていまるため、画面には

Microsoft Windows [Version 10.0.19044.1645]
(c) Microsoft Corporation. All rights reserved.
C:\Users\ユーザー名>

となっていると思います(ユーザー名はあなたがWindowsにログインしている名前。

C:\Users\ユーザー名>

この状態で下記のように1行ずつ入力し、Enterを押します。

C:\Users\ユーザー名>CD J:\SteamLibrary\steamapps\common\sample\
C:\Users\ユーザー名>J:

間違えずに入力出来ていれば、

J:\SteamLibrary\steamapps\common\sample\>

となっているはずです。目的のフォルダはUnityEXをコピーした際に開いたエクスプローラーのアドレスバーの部分で右クリックをして「アドレスをテキストとしてコピー」を選択し、コマンドプロンプト上でCDと入力した後に「右クリック」するとそのアドレスが入力されますので活用しましょう。

UnityEXのコマンドラインは
UnityEX task <archive unity> [option]
となっています。
taskは export か import のどちらか。
archive unityは対象となるファイル
optionはそのファイルに対して行うコマンドとなります。よく使うのは「-t」です(Type別に抽出するためのもの)。

例えば、
UnityEX export sample_Data\resources.assets -t ttf, txt
と入力することでresources.assets内のttfとtxtをエクスポートすることがでいます。とは言え、これらを1つずつ入力するのは時間がかかりますので、BATファイルを作成し、そのBATファイルにフォルダをD&Dをすることでその入力を失くします。

BATファイルの作成

以下の内容をテキストエディタにコピー・ペーストし、SHIFT-JISで「UNpack.bat」として保存してください。

なぜSHIFT-JISで保存するかと言えば、Windows日本語版の既定の文字コードがSHIFT-JISになっているからです。これをUTF-8にすることも可能ですが、アプリにより不具合が起こるかもしれません(こればかりはやってみないとわかりません。古いアプリに起こる場合が多いと思います)。
なおBATファイル内に日本語が入っていなければUTF-8で保存しても問題はないと思います(ただしBOMなし)。

エクスポート

@echo off
if "%~1"=="" (
echo フォルダが指定されていません
) else if exist "%~1" (
echo 処理中です・・・
cd %1
for %%i in (.assets;.unity3d) do (
"%~p0UnityEX.exe" export %%i -t ttf, txt
)
cd ..
echo 終了しました
) else (
echo フォルダではありません。
)
pause

作成したBATファイルをUnityEXをコピーした場所へ配置します。
Windowsのエクスプローラー上から配置したBATファイルの上に「sample_Data」フォルダをD&Dします。これで拡張子が*.assetsと*.unity3d内に含まれるttfとtxtがUnity_Assets_Filesフォルダにassetsごとにエクスポートされます(含まれていなければ当然何もエクスポートされません)。

UnityEXのGUI環境を使って全てのassetsを開かなくてもこのようなBATファイルを作ることで簡単にエクスポートができることになります。逆にテクスチャの一部のみを抜き出すということはできないようです。

インポート

@echo off
if "%~1"=="" (
echo フォルダが指定されていません
) else if not exist %~1\Unity_Assets_Files (
echo Unity_Assets_Filesがありません
) else if exist "%~1\" (
echo 処理中です・・・
cd %1
for %%i in (*.assets;.unity3d) do (
"%~p0UnityEX.exe" import %%i -t ttf,txt
)
cd ..
echo 終了しました
) else (
echo フォルダではありません。
)
pause

エクスポートと同様に上記をテキストエディタにコピー・ペーストし「REpack.bat」として保存してください(文字コードに注意)。

使い方はUNpack.batと同じく「sample_Data」フォルダをBATファイルの上にD&Dするだけです。

処理としてはエクスポートと同じく、sample_Data内の拡張子が*.assetsと*.unity3dを処理してしまいますのでファイル数が多い場合は少し時間がかかり、そのためフリーズしたように見えることがあります(もちろん、Unity_Assets_Filesフォルダがないものは処理されません)。

最後に

GoDotのアンパック/リパックでもBATファイルを作成していますが、一部のプログラムはコマンドラインでしか動作しなかったりするものがあります。その場合、今回のようにBATファイルを作成し対象ファイルをD&Dすることで処理するようなものを作っておくとコマンドプロンプトを開かずに済みます。
少しハードルの高いものとはなりますが「BATファイル」で検索をかけると多くの情報が出てきますので参考にしてみてください(私もそのようにしてBATファイルを作っています)。

また、UnityEXやBATファイルを「*_Data」フォルダに配置すればもっと短いBATファイルにできると思いますが、このフォルダはファイル数が多いこともありますので敢えてファイル数が比較的少ない1つ上のフォルダで処理するようにしています。

初級篇のおまけとはしていますが、内容的にはハードルが高いとは思います。このコマンドラインは使わなくても問題はありませんが、こういう機能もあるということを紹介したかっただけですので難しいと思われましたら武利はしなくて構いません。

内容が気になりましたらぜひサポートをお願いします。そのサポートが継続の力になります。よろしくお願いします。