CM3D2のtexファイルは、テクスチャ用のファイルフォーマットであり、画像データに追加ヘッダを付加したファイルである。
本体1.49からtexファイル仕様が拡張されており、主にこれに関する情報を示す。
当然のことながら、バージョン1010のtexファイルは、本体1.48以前では読み込めない形式となるため注意が必要である。
本体1.49からtexファイル仕様が拡張されており、主にこれに関する情報を示す。
当然のことながら、バージョン1010のtexファイルは、本体1.48以前では読み込めない形式となるため注意が必要である。
従来からの仕様。texファイルは以下の順でデータが格納されている
※1 画像データはUnityのTexture2D#LoadImageで渡せる形式であること。
項目名 | データ型 | 値の例 | 説明 |
---|---|---|---|
ファイルヘッダ | string | CM3D2_TEX | 固定文字列 |
バージョン番号 | int | 1000 | |
パス情報 | string | - | 未使用? |
画像データサイズ | int | (データサイズ) | 画像データのバイト数 |
画像データ | byte[] | - | ※1 |
本体1.49から追加されたフォーマット
※2 テクスチャフォーマットは、UnityのTextureFormatクラスに対応している。
ただし、1010で指定可能なフォーマットは以下の4種のみである。
DXT1/DXT5は、ゲーム上の画像情報を圧縮した状態で保持するためメモリ使用量が抑制できる。
(DXT5は、4分の1になる程度)
(DXT1/DXT5使用時の留意点)
ddsファイルからtexへの変換処理のサンプルコードはこちら
(上下反転済みのddsファイルからtexファイルを生成するサンプルです)
項目名 | データ型 | 値の例 | 説明 |
---|---|---|---|
ファイルヘッダ | string | CM3D2_TEX | 固定文字列 |
バージョン番号 | int | 1010 | |
パス情報 | string | - | 未使用? |
画像width | int | 1024 | |
画像height | int | 1024 | |
テクスチャフォーマット | int | 5 | 後述 ※2 |
画像データサイズ | int | (データサイズ) | 画像データのバイト数 |
画像データ | byte[] | - | 指定されたテクスチャフォーマットによって 読み込み方式が異なる |
ただし、1010で指定可能なフォーマットは以下の4種のみである。
フォーマット | 対応値(enum) | 説明 |
---|---|---|
RGB24 | 3 | 透過なしの24bitRGB |
ARGB32 | 5 | αチャンネル付 ARGB。version 1000指定時のデフォルト (1.48以前ではRGBA32がデフォルト) |
DXT1 | 10 | 圧縮されたテクスチャ形式 |
DXT5 | 12 | αが適用されている圧縮されたテクスチャ形式 |
(DXT5は、4分の1になる程度)
- RGB24/ARGB32の場合
- DXT1/DXT5の場合
(DXT1/DXT5使用時の留意点)
- 画像データは上下反転される (Unityの座標軸の関係?)
- texファイル内の画像データには、画像ファイルのヘッダ(128バイト)を含めない
ddsファイルからtexへの変換処理のサンプルコードはこちら
(上下反転済みのddsファイルからtexファイルを生成するサンプルです)
コメントをかく