トップ  >  各種解析資料  >  BD1ファイル解析資料

BD1ファイル解析資料

yuukana氏提供

BD1ファイルの構造

  1. テクスチャファイル指定部 (310バイト)
  2. ブロック数指定部 (2バイト)
  3. ブロック構成部 (316バイト × ブロック数)
    1. 頂点指定部 (96バイト)
    2. テクスチャUV指定部 (192バイト)
    3. テクスチャ指定部 (24バイト)
    4. 有効/無効指定部 (4バイト)

1. テクスチャファイル指定部

長さ
ファイルの先頭0バイトから
31バイト×10=310バイト
必須/任意
必須
構造
固定長
([テクスチャファイル名指定 30バイト] + [終端記号 ␀ 0x00 1バイト]) × 10回繰り返し
解説

ブロック構成部のテクスチャ指定部で使用するテクスチャのファイル名を指定する。 メモ帳で開くと最初に画像ファイル名が周期的に表示されるのはこのため。

テクスチャのファイル名は最大30バイト以内である必要がある。 固定長のため31バイトに満たない場合は0x00 (␀)で埋める必要がある。 指定したテクスチャは指定順に00、01...09と番号が振られる。 311バイト目からはブロック構成データとなるため11枚以上のテクスチャは利用できない。

通常はBD1と同じディレクトリにあるテクスチャを指定するが、 30バイト以内に収まる場合はディレクトリをまたぐことも可能。

構造例
例1:
54 45 58 54 55 52 45 46 49 4C 45 2E 42 4D 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
T  E  X  T  U  R  E  F  I  L  E  .  B  M  P  ␀ ␀ ␀ ␀ ␀ ␀ ␀ ␀ ␀ ␀ ␀ ␀ ␀ ␀ ␀ ␀
例2 (ファイル名が最長の30バイト)の場合):
54 68 65 2D 4C 6F 6E 67 65 73 74 2D 54 65 78 2E 2D 46 69 6C 65 2D 4E 61 6D 65 2E 62 6D 70 00
T  h  e  -  L  o  n  g  e  s  t  -  T  e  x  .  -  F  i  l  e  -  N  a  m  e  .  b  m  p  ␀

2. ブロック数指定部

長さ
ファイルの先頭311バイトから
2バイト
必須/任意
必須
構造
固定長
[ブロック数指定 1バイト] + [終端記号 ␀ 0x00 1バイト]
解説

2バイトで構成。ここにブロックの数 (3. ブロック構成部の繰り返し数) を記述。

これが実際のブロックの数より少ないとそれ以降のブロック構成部が反映されない。 逆に実際のブロックの数より多い場合は、今のところ問題無く動作するようだがポイントデータでは バグが発生することが報告されているので、常にデータと同じ数にしておくべきである。

XOPS 0.96における最大ブロック数は160 (0xA0) 個。

構造例
ブロック数が100個の場合:
64 00

3. ブロック構成部

長さ
ファイルの先頭313バイトから
316バイト × ブロック数
必須/任意
必須
構造
可変長
([頂点指定部 96バイト] + [テクスチャUV指定部 192バイト] + [テクスチャ指定部 24バイト] + [有効/無効指定部 4バイト]) × ブロック数
解説

マップで最も重要な部分であるブロックの構成を行う部分。 ブロック構成部は4つの子要素に分かれておりこの子要素を組み合わせることで、 1つのブロックデータとなる。

構造例
1つのブロック構成の例:
FF FF 0B 42 FF FF 29 43 FF FF 29 43 FF FF 0B 42 FF FF 0B 42 FF FF 29 43 FF FF 29 43 FF FF 0B 42 ┐
FF FF 06 43 FE FF EF 42 FE FF EF 42 FF FF 06 43 FF FF 95 42 FF FF 8B 42 FF FF 8B 42 FF FF 95 42 │ 頂点指定部 (96バイト)
FF 9F 16 C4 FF 1F 0F C4 FF DF 08 C4 FF 5F 10 C4 FF 7F 1D C4 FF BF 14 C4 FF DF 08 C4 FF 5F 10 C4 ┘

00 00 89 C1 00 00 89 C1 00 00 9D C1 00 00 9D C1 00 00 9D C1 00 00 9D C1 ┐
00 00 89 C1 00 00 89 C1 00 00 98 C0 00 00 10 C0 00 00 10 C0 00 00 98 C0 │ テクスチャUV指定部
00 00 9D C1 00 00 89 C1 00 00 89 C1 00 00 9D C1 00 00 10 C0 00 00 98 C0 │ (192バイト)
00 00 98 C0 00 00 10 C0 00 00 89 C1 00 00 9D C1 00 00 9D C1 00 00 89 C1 │
00 00 98 C0 00 00 10 C0 00 00 10 C0 00 00 98 C0 00 00 98 C0 00 00 10 C0 │
00 00 10 C0 00 00 98 C0 00 00 A4 40 00 00 A4 40 00 00 28 40 00 00 28 40 │
00 00 A4 40 00 00 A4 40 00 00 28 40 00 00 28 40 00 00 A4 40 00 00 A4 40 │
00 00 28 40 00 00 28 40 00 00 A4 40 00 00 A4 40 00 00 28 40 00 00 28 40 ┘

01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 - テクスチャ指定部 (24バイト)

01 00 00 00 - 有効/無効指定部 (4バイト)

3-1. 頂点指定部

長さ
ファイルの先頭{313バイト + (このブロックまでに定義されたブロック数 × 316バイト)}から
96バイト
必須/任意
必須
構造
固定長
[頂点1 X座標指定 float型 4バイト] + [頂点2 X座標指定 float型 4バイト] + ... + [頂点8 X座標指定 float型 4バイト] +
[頂点1 Y座標指定 float型 4バイト] + [頂点2 Y座標指定 float型 4バイト] + ... + [頂点8 Y座標指定 float型 4バイト] +
[頂点1 Z座標指定 float型 4バイト] + [頂点2 Z座標指定 float型 4バイト] + ... + [頂点8 Z座標指定 float型 4バイト] = 32 × 3 = 96バイト
解説
構造例

3-2. テクスチャUV指定部

3-3. テクスチャ指定部

3-4. 有効/無効指定部

長さ
必須/任意
必須
構造
固定長
解説
構造例
プリンタ用画面
友達に伝える
投票数:94 平均点:4.68
カテゴリートップ
各種解析資料

コメント一覧

0件ヒットしました 返信 閲覧 投票数 平均点 トピック開始 最新投稿