2011年12月15日木曜日

XNA xnb file

最近増えてきたので、調べたのを忘れないうちにメモ。

xnbフォントファイルの作り方

標準的なxnbのフォントを作成するには、XNA 3.1ならVS2008Expressで作成可能。

  • XNAのプロジェクトを作成する。
  • Contentプロジェクトにスプライトフォントを追加。
  • 生成するフォントに関する設定を行う。
  • ビルド。

フォントの定義用XMLは、http://msdn.microsoft.com/en-us/library/bb447759%28v=XNAGameStudio.31%29.aspx

日本語フォントを作成する上での注意。

  • デフォルトの状態で生成するとアスキー文字しか生成されない。
  • 漢字コードを全部追加すると、生成するのにとんでもなく時間がかかる。第一水準+第二水準でもフォントサイズによっては2-3時間かかる。。。
  • 文字サイズを大きくしてItalicにするとコケる。(2-3時間後に。。。)
  • フォント指定はUnicodeのみ。
あと、xnbを圧縮するには、プロジェクトプロパティの「コンテンツビルド」の「コンテンツパイプライン出力ファイルの圧縮を有効にする」をチェックする。

XNBに関する情報

なんかあんまりいい情報がない。

XNA4.0だけど、XNBフォーマット仕様とXNBの簡易パーサのソースがある。これ以上に詳細な情報はみたことない。。。

この形式でローカライズ実装してるゲームを見たことないけど、、、参考かな。

Bastion日本語化できたけど、フォントつくるのが面倒くさすぎる。。。

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"でゲームを起動する
置き換えテクスチャがフォントテクスチャで日本語フォントなどの場合はファイルサイズがかなり大きくなるので、起動時時間がかかる。

2011年10月18日火曜日

NVIDIA Legacy Texture Tools

NVIDIAのDDSに関する各種ツール

http://developer.nvidia.com/legacy-texture-tools

DDSを作成するのはDDS Utilities、ViewerはWindows Texture Viewer。

DDS Utilitiesの使い方

nvdxt.exeでddsを作成する。以下オプション。

  • -file で作成元ファイルを指定。bmpやtgaを準備する。ファイルフォーマットは結構いろいろ対応している。
  • -u8888 A8R8G8B8での非圧縮ddsの作成オプション。通常はDXT3
  • -nomipmap MIPマップを作成しない場合のオプション。通常は作成される。

ifranviewやgimpでも作成できるが、形式を詳細に指定するには、nvdxtがいい。

Bitmap Font Generator

ビットマップフォント作成ツール


  • 日本語フォントにも対応。
  • 文字を指定して作成する場合は、組み込みたい文字をテキストファイルにしてUnicodeで保存して、Edit→Select character from fileで読み込む。
Font Settings
  • Match char heightで全部の文字の高さを統一。
Export Options
  • DDSを作成するならbit depthは32
  • NVIDIAのDDS Utilityを通してDDS作成の場合はtga
  • 白文字、背景透明で出力するときは、以下の設定。
    Equalize the cell heghts: checked
    Bit  depth: 32
    Channel A: glyph
    Channel R: one
    Channel G: one
    Channel B: one
    Presets: Custom
フォントUVは、テキストで吐き出して加工する。出力する文字コードはidでUnicode。
フォントの順番は指定できない。。。

固定長フォントのビットマップは作成できない。固定長のフォントを使っても、勝手に文字によって幅が変わってしまう。

Export OptionsのLayout設定

  • Padding: 指定した分フォントエリアが拡大する。余白部分も表示に使われる
  • Spacing: テクスチャを作成する際の文字間の調節。実際のフォントの枠サイズは変更されない。
  • Equalize the cell heights: 全てのフォントの高さが同じに調整される。チェックしない場合は文字の大きさや形状で高さが変わる。


2011年10月11日火曜日

MoTmod

Death to Spies(DtS)のミッションをDeath to Spies: Moment of Truth(MoT)に移植してMoTのエンジンで遊べるようにするMod。

http://motmod.at.tut.by/mod_en.html

適用方法

  • サイトにある以下のModを全部ダウンロードする。
    MoTmod.RU.1.00.7z
    MoTmod.UPD.RU.1.10.7z
    MoTmod.UPD.RU.1.11.7z
    MoTmod.ADD.EN.1.11.7z
    MoTmod.ADD.UTP.1.00.7z
  • DtSとMoTのvfsをゲームフォルダ上に全部解凍する。解凍はvfstoolを使う。
  • DtSの解凍したファイルをすべてMoTのディレクトリにコピーする。ただし、上書きコピーになってしまうファイルは上書きしないこと。
  • Modファイルを解凍して、次の順番にMoTディレクトリにコピーする。こちらは上書きコピーする。
    MoTmod.RU.1.00.7z
    MoTmod.UPD.RU.1.10.7z
    MoTmod.UPD.RU.1.11.7z
    MoTmod.ADD.EN.1.11.7z
    MoTmod.ADD.UTP.1.00.7z
  • MoTを起動するとミッションが追加されている。
追記)
Radeonだと、VIDEOオプションで、Depth of field をDisableにしないと画面がおかしくなるっぽい。

Death to Spies Unpacker

Death to SpiesのUnpacker

http://int0thegame.blogspot.com/2008/11/death-to-spies-extractor-101.html

vfsファイルを解凍するためのツール。日本語OSだと、フォントの問題で、画面上のボタンなどのコンポーネントが、フォーム外の非表示エリアにはみ出してしまうので、tabでフォーカスを移動しないと操作できない。

面倒くさいので、autoitでwrapper作って、強制操作できるようにした。見えないボタンを押すためのフロントエンドツール。

vfstoolwrapper

解凍したツールをvfstoolのフォルダと同じ配置して利用する。

使い方

  • vfstoolwrapperを起動するとvfstoolも起動される。
  • 「Open」・・・Unpackしたいvfsファイルを選択する。
  • 「Save All」・・・保存するフォルダを選択すると、「Open」で選んだvfsツールを解凍する。
  • 「Close」・・・「Open」で選んだvfsファイルをクリアする。vfsファイルは複数選択できるが、エラーが出ることがあるので、1つ解凍したらCloseして次のファイルを選んだ方がよさげ。
Death to SpiesもMoTも、解凍後、vfsファイルを削除なり、移動なりしても、解凍したファイルのみでも起動可能。実際Mod利用する場合はvfsを解凍してModを適用する手順になる。

2012/12/24追記
コメントでGoogle docsからのダウンロードだとウイルス感染と表示されるとのことで、VirusTotalで確認してみましたが、問題なかったです。AutoItを使っているのでそれでご認識されたのかも。
Google Docsは以前から微妙に使いづらかったので、MediaFireに移しました。