2011年11月16日水曜日

Skyrim Strings File

Skyrimのテキストデータファイルは、STRINGS、 DLSTRINGS、 ILSTRINGSの3種類。
STRINGSとDLSTRINGS/ILSTRINGSで若干データのインデックスフォーマットが異なる。

STRINGSは、次の通り。

・ヘッダ
0-3バイト: テキスト総数
4-7バイト: テキスト部分のデータ量(byte)

・テキストインデックス
0-3バイト: テキスト識別のインデックス番号
4-7バイト: テキストデータの先頭からのテキスト開始位置

・テキスト部
各テキストデータの終わりはNULL(\0)区切り。

DLSTRING/ILSTRINGSは次の通り。

・ヘッダ

0-3バイト: テキスト総数
4-7バイト: テキスト部分のデータ量(byte)

・テキストインデックス
0-3バイト: テキスト識別のインデックス番号
4-7バイト: テキストデータの先頭からのテキスト開始位置

・テキスト部
0-3バイト: テキストの長さ(byte)
4- バイト: テキストデータ(終わりはNULL(\0)区切り)

現状、英語版でのテキストデータでは、テキスト部分はASCII文字(1byte)のみ。
UTF-8もそのまま通るし、ヨーロッパ系の言語では、CP1252とかそれぞれのエンコードっぽい。

2011年11月7日月曜日

texmod

ゲームのテクスチャを確認したり、取り出したり、差し替えたりするツール。
TombRaiderシリーズでテクスチャを差し替えるために作成されたツールだが、DX9向けの汎用ツール。ただし、適用できないゲームもあり。

http://www.tombraiderhub.com/tr7/modding/index.html

■テクスチャの確認と取り出し方法
実行時の設定は以下の通り。

  • "Logging Mode"にする
  • "Target Application"で確認したいゲームのEXEを指定する
  • "Options"で以下の設定を行う。
    "Draw Control and Texture Info"、"Show Texture on upper left corner"、"Replace Texture(with a green texture)"をチェックする
    "Output Format"に取り出したテクスチャの保存形式を指定する
    "Log with"にテクスチャ保存のキーを設定する
    "Output Folder"に取り出したいテクスチャを保存する場所を指定する
設定完了後"Run"をクリックしてゲームを起動する。起動中は、以下のキーでtexmod操作が可能。
  • "+"で、texmodで次のテクスチャを選択
  • "-"で、texmodで前のテクスチャを選択
  • 設定で設定したキーで現在選択されているテクスチャを保存
texmodで読み込めるテクスチャは、そのゲーム状態でゲームが読み込んでいて、texmodが取り出すことのできるテクスチャがすべて対象となる。+と-で順番に移動するのでテクスチャがいっぱいある場合は面倒くさい。

■テクスチャ置き換え用ファイル作成
取得したテクスチャを別のものに置き換える方法は次の通り。
  • 保存したテクスチャを別のものに置き換える。同名ファイルにする方が楽。別名にする場合は、出力フォルダにあるTexMod.logの置き換えるテクスチャのファイル名を置き換えるファイルの名前に変更する。
  • texmodを起動して"Package Build"にする
  • "Definition File"でTexMod.logを指定する
  • 必要に応じて"Creator Name"と"Comment"を入れる
  • "Build"ボタンを押す
以上で、texmod用の定義ファイルtpfが作成できる。

■texmodの定義ファイルの適用とゲーム起動
texmodで作成したテクスチャ置き換えの定義ファイルをゲームに適用して起動する方法は次の通り。
  • 起動したいゲームのEXEを"Target Application"に指定する
  • "Package Mode"にする
  • "Select Packages"のフォルダアイコンのボタンからtpfファイルを選択する
  • 複数適用する場合は全部指定する。また順番がある場合は順番も指定する
  • "Run"でゲームを起動する
置き換えテクスチャがフォントテクスチャで日本語フォントなどの場合はファイルサイズがかなり大きくなるので、起動時時間がかかる。