ホーム < ゲームつくろー! < ツール編

その1 Xファイルのバイナリ⇔テキスト変換ツール



 Xファイルは3Dモデル情報を格納してDirect3Dで直ぐに読み込めるDirectX固有のフォーマットです。最近の3DモデリングツールにはXファイルをエクスポートしてくれるプラグインも揃ってきました。

 例えばLightWeve3Dの場合、Xファイルをエクスポートするとテキストファイルとして出力されます。しかし、ゲームで扱う上ではバイナリの方が秘密性が高まります。うれしい事に、Direct3Dはテキストでもバイナリでもどちらの形式でも読んでくれるので、交互に交換できると何かとお得です。

 そこで、バイナリ形式のXファイルとテキスト形式のそれを交互に変換できるツールを作成しました。

ツール名 Xファイルフォーマットコンバートツール
名前空間 Dix
関数名 bool Dix::convertXFileFormat( inXFilename, outXFilename, Format)
引数 TCHAR *inFilename 入力Xファイル名
TCHAR *outXFilename 出力ファイル名
int Format D3DXF_FILEFORMAT_BINARY : バイナリで保存
D3DXF_FILEFORMAT_TEXT : テキストで保存
D3DXF_FILEFORMAT_COMPRESSED : 圧縮する(バイナリ・テキストと併用)
戻り値 正常にコンバートできた場合はtrue、失敗した場合はfalse
バージョン v1.01 (2009. 7. 22)
ファイル TOOL_No1_XFileTextBinaryConv_v101.lzh



@ 使い方

 Xファイルフォーマットコンバータはファイルからファイルへのコンバートです。例えばBox.xというキャラクタが入ったXファイルをバイナリ形式にしたい場合は、

Dix::convertXFileFormat( _T("Box.x"), T("ConvBox.x"), D3DXF_FILEFORMAT_BINARY );

とします。

 圧縮形式(D3DXF_FILEFORMAT_COMPRESSED)にするとXファイルは非常にコンパクトになります。この形式は必ずバイナリもしくはテキストと併用して下さい:

Dix::convertXFileFormat( _T("Box.x"), T("ConvBox.x"), D3DXF_FILEFORMAT_TEXT | D3DXF_FILEFORMAT_COMPRESSED );

 入力ファイル名は必須です。出力ファイル名をNULLにした場合、元のファイルが上書きされます。この時、個人的に追加したテンプレートなどはすべて消えてしまうので注意して下さい。ID3DXMeshが扱えるテンプレートのみの置換となります。



A バージョン情報

v1.01 (2009. 7. 22)
・ 引数Formatが反映されていなかったバグを修正

v1.00 初期バージョン