2012/09/05

「Skyrim Strings File Tool」の使い方

スカイリムのStringsデータを弄るのに欠かせない神ツール「Skyrim Strings File Tool」について、おばちゃん個人の使い方を簡単にご紹介したいと思います。

あんまりスマートな使い方はしていないし、説明自体もうまくないのですが、初めて使う方の参考になれば幸いです。


【1】まず、「Skyrim Strings File Tool」を使うための、作業フォルダを作ります。

作業フォルダは、できるだけドライブのルートに近い場所に作り、簡単な半角英数字で名前をつけます。(※1)
おばちゃんの場合は、Cドライブの直下に「strings」という名前のフォルダを作っています。
以下、作業フォルダを「strings」としたものとして、説明しますのでご了承ください。


【2】ダウンロードした「Skyrim Strings File Tool」のデータを解凍します。

解凍してできた「StringsPacker.exe」「StringsUnpacker.exe」の2つのexeファイルを、
【1】の作業フォルダに入れます。
また、「Skyrim Strings File Tool」で変換したいデータ(stlings、ilstrings、dlstringsの各Stringsデータや、csvファイル)も、同じく作業フォルダに入れます。


【3】「コマンド プロンプト」を立ち上げます。

Windows7の場合は、スタートボタンを押して出てくる検索窓に「コマンド」と入力すると、「コマンド プロンプト」が候補として出てきます。
コマンドプロンプトを立ち上げたら、MicrosoftのCopyrightの数行の表示の後に、カーソルが点滅している行があるかと思います。
そのカーソルのある行が「C」から始まっていれば、
cd \strings
…と入力し、リターンキーを押します。

Microsoft Windows [Version x.x.xxxx]
Copyright (c)xxxx Microsoft Corporation. All rights reserved.

C:\Users\obachan>cd \strings

C:\strings>

上記のコマンドは、コマンドプロンプトのカレントディレクトリを、【1】で作った作業フォルダの、Cドライブ直下「strings」フォルダに移動するための、dosのコマンドです。
ここで少しでも入力の手間を減らすために、※1で、「ドライブのルートに近い場所の、簡単な半角英数字」の名前のフォルダにしました。
もっとも、コマンドプロンプトの窓の中に直接フォルダをドロップして、フォルダのパスを持ってくることもできるので、別に短い名前でなくても構わないんですけどね。

ちなみに、カーソルのある行が「C」から始まっていない場合、もしくは作業フォルダを別のドライブに作った場合は、
cd /d d:\strings
…と入力して下さい。(Dドライブに作業フォルダを作った場合)


【4】「Skyrim Strings File Tool」のコマンドを入力します。

これでやっと準備が整ったので、ファイルをUnpackしたりPackしたりする作業に入ります。
わざわざ作業フォルダを作って、そのフォルダをカレントディレクトリにしたのは、「Skyrim Strings File Tool」のコマンドをできるだけシンプルに入力するためです。

C:\strings>StringsUnpacker Skyrim_English.strings Skyrim_English.strings.csv

C:\strings>StringsUnpacker /IL Skyrim_English.ilstrings Skyrim_English.ilstrings.csv

C:\strings>StringsUnpacker /DL Skyrim_English.dlstrings Skyrim_English.dlstrings.csv

上記のコマンドは、作業フォルダに入れた「Skyrim_English.strings」「Skyrim_English.ilstrings」「Skyrim_English.dlstrings」の各データを、csvファイルにUnpackする時の一例です。
上記のようなコマンドを実行すると、作業フォルダの中にUnpackされた「Skyrim_English.strings.csv」「Skyrim_English.ilstrings.csv」「Skyrim_English.dlstrings.csv」が作成されます。

【3】までの手順を経て、コマンドプロンプトは現在、作業フォルダをカレントディレクトリとして認識していますので、作業フォルダ内にあるファイルは、パスなどの指定を加えなくてもファイル名だけで実行してくれます。

ちなみに、コマンドプロンプトでは、あらかじめクリップボードにコピーしてあるコマンドを「ペースト」して入力することができます。
(キーボードのショートカットは使えませんがマウスの右クリックで「貼り付け」が可能です)
おばちゃんは、Unpacker、Packerのそれぞれのコマンドの雛形のようなものをあらかじめテキストファイルで作っていて、それを毎回、ファイルの名前だけ変更してまとめてコピペして実行しています。

【Unpack】
StringsUnpacker xxxx_xxxx.strings xxxx_xxxx.strings.csv
StringsUnpacker /IL xxxx_xxxx.ilstrings xxxx_xxxx.ilstrings.csv
StringsUnpacker /DL xxxx_xxxx.dlstrings xxxx_xxxx.dlstrings.csv

【Pack】
StringsPacker xxxx_xxxx.strings.csv xxxx_xxxx.strings
StringsPacker /IL xxxx_xxxx.ilstrings.csv xxxx_xxxx.ilstrings
StringsPacker /DL xxxx_xxxx.dlilstrings.csv xxxx_xxxx.dlilstrings

(↑テキストエディタ上でxxxx_xxxxの部分をまとめて置換したりしてコピペ用のコマンドを用意します)

もちろん、わざわざこんな風に作業フォルダを用意してカレントディレクトリにしたりしなくても、ひとつずつファイルをつかんでコマンドプロンプトの窓にドロップして、パス込みのファイル名をきちんと指定してやれば、Unpack/Packは可能です。
ただ、「Skyrim Strings File Tool」を使う時は、たいてい複数のファイルをまとめて変換する場合が多いので、おばちゃんは予め作業フォルダを作るこの方式でやってます。
まあ、バッチファイルを作った方がいいんじゃないか、という気もしますが。


ちなみに、フォントを埋め込んだswfファイルを作ることができる「swfmill」というツールや、フォントを分解できる「UniteTTC」などといったツールも、コマンドライン上(コマンドプロンプト)で実行するツールなので、同じように作業フォルダを用意してカレントディレクトリにして変換作業を行っています。
今後、記事の中で、ツールのコマンドを参考例として上げた場合、上記のような環境で実行しているのを前提に書いていたりしますので、ご了承ください。


■「Skyrim Strings File Tool」のオプションについて

「Skyrim Strings File Tool」は、コマンドにオプションをつけることで、IDの形式を変えたり、テキストの文字コードを変えてUnpack/Packしたりすることができます。
…とはいっても、どういう目的がある場合に、そういったオプションを使うのか、ということに関しては、おばちゃんはいまいちよくわかっていません。
ただ、今までこのツールを使わせていただいた中で、こういう場合はこのオプションを使えばうまくいった…みたいな経験則(?)があるので、書いてみたいと思います。

・「/B」オプションについて

各テキストに付くIDが16進数の8桁になるオプションですが、おばちゃんはCK用のStringsデータを作る時に使用してます。
どういうわけかオプションをつけないデフォルトの状態(IDが整数)で書き出してUnpack/Packすると、CKのDialogViewsで先頭の2文字くらいが消えちゃったりするのです。
なにが原因でそうなるのかは不明なんですが、整数のIDだと桁数がバラバラなのでうまくいかんのかな、と思ったので、「/B」をつけて16進法のIDにしたらうまくいった、という……理由はわからないけど、結果オーライ、みたいな感じです。
ほんといい加減ですね。すみません。

・「/E」オプションについて

指定した文字コードでUnpack/Packができるオプションです。
指定する文字コードのページコードは、ツールに添付のreadme.txtで紹介されているこちらのページのExampleのコードのコメント部分に載っています。
まあ、でも、そんないろんな文字コードに変換する必要はないので、「Shift_JISは932」とだけ、覚えていれば全然困りません。
つまり、コマンドに「/E932」を追加すれば、Unpack/Packされるテキストの文字コードが「Shift_JIS」になる、ということです。
ちなみに何もオプションをつけない、デフォルトの状態だと「UTF-8」になります。
ゲームで読み込む各Stringsのファイルは「UTF-8」じゃないと文字化けします。


ところでUnpackする時、「Shift_JIS」のコードページのオプション「/E932」をつけても、おばちゃんの環境では、どういうわけかうまくUnpackされません。
特にエラーが出るというわけでなく、ファイルのサイズ的にもしっかりUnpackされてるようなんですけど、テキストエディタなどで「Shift_JIS」として日本語が読める状態にはならないんですよね。
なので、CK用のStringsデータを作る時は、一度デフォルトの「UTF-8」でUnpackして、それをテキストエディタで「Shift_JIS」に保存し直してから、「/E932」をつけてPackしています。
(Packの時はうまくいくみたいです)
もしかしたら、おばちゃんのやり方が何か間違っているのかもしれません。

1 件のコメント:

  1. TESVTranslatorで緑のリンゴを青リンゴに替えようとしたのですが、
    果たせず悶々としていました。
    記事を参考にcsvを書き換えて無事変更できました。
    ありがとうございます。

    返信削除