User:Caron/CTTutorial Japanese/Breff
Jump to navigation
Jump to search
(制作途中です)
Emitter flag
基本構造はBreffを参照してください。 エミッタフラグはビット(32bit)毎にフラグになっています。各フラグは次の通りです(現在わかっている限り)。
26-31 | 25 | 24 | 20-23 | 18-19 | 17 | 16 | 12-15 | 8-11 | 5-7 | 4 | 3 | 0-2 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
不明 | 生成方向同期 | 不明 | エミッタ複数生成可 | 不明 | 不明 | エミッタ無効 | 不明 | カメラ追跡関係? |
エミッタフラグに関連するオフセットの情報は次の通りです(順次追加予定)。
オフセット | サイズ | タイプ | 説明 |
---|---|---|---|
0x1C | 0x04 | Float | パーティクルの生成範囲です。flagの25bit目がtrueであれば全方位、falseにおいてはx軸のみとなります。 |
0x20 | 0x04 | Float | x軸におけるエミッタの放出範囲です。25bit目がtrueでは無視されます。 |
0x24 | 0x04 | Float | エミッタ毎の間隔(円形)です。17bit目がtrueかつ3bit目がfalseの場合有効です。 |
0x28 | 0x04 | Float | エミッタの放出範囲(円形)です。25bit目がfalseの場合有効です。 |
0x2C | 0x04 | Float | y軸におけるエミッタの放出範囲です。25bit目がtrueでは無視されます。 |
0x30 | 0x04 | Float | z軸におけるエミッタの放出範囲です。25bit目がtrueでは無視されます。 |
0x34 | 0x02 | Byte | エミッタの個数です。17bit目がtrueかつ3bit目がfalseの場合有効となり、値を大きくするほどエミッタの個数を増やすことが可能です。 Env系などのParticleを大量に生成するbreffの場合、値が2以上では処理落ちが発生するので注意してください。 生成個数は2n個、その位置はπ/(2n)です。 |
Animation
breffのアニメーションは識別子、KindTypeおよびKindEnableの値によってテーブルの構造が変わります。以下はほとんどの場合用いられる構造です。
EmitterやParticleに関してはBreffを参照してください。
Gravity
InfoTable
どの方向に向けてParticleを動かしていくかを指定します。通常はサイズ0x14で次の通りです。
オフセット | サイズ | タイプ | 説明 |
---|---|---|---|
0x00 | 0x02 | Byte | エントリ数。通常は1です |
0x02 | 0x02 | Byte | 不明。通常は0です |
0x04 | 0x04 | Float | 速度 |
0x08 | 0x04 | Float | 回転方向 (X)。値はラジアンです。 |
0x0C | 0x04 | Float | 回転方向 (Y)。値はラジアンです。 |
0x10 | 0x04 | Float | 回転方向 (Z)。値はラジアンです。 |
0x14 | 構造終了 |
回転方向=(0,0,0)では下から上に向かった方向になります。逆にしたい場合はXを180度(=40490FDB)か-180度(=C0490FDB)としてください。
Random
KeyTable
一般的にInfoTableのみですが、一部ではKeyTableも定義されています。
InfoTable
通常はサイズ0x10です。
オフセット | サイズ | タイプ | 説明 |
---|---|---|---|
0x00 | 0x01 | Byte | エントリ数。通常は01です |
0x01 | 0x01 | Byte | 不明。通常は0です |
0x02 | 0x01 | Byte | 不明。通常は0です |
0x03 | 0x01 | Uint8 | アニメーションフラグ |
0x04 | 0x04 | Float | 正の振動幅。 |
0x08 | 0x04 | Float | 負の振動幅。一般的に上より小さい値になっています。 |
0x0C | 0x02 | Byte | 除算値。殆どは0(=無し)です。 |
0x0E | 0x02 | Byte | 不明。通常は0です |
0x10 | 構造終了 |
アニメーションフラグは8bitの構造で、次の通りです
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|
不明 | X+ | Y+ | Z+ | X-, Y-, Z- | 有効or無効(1=無効) |
例えば上下のみ振動させたい場合、フラグを00001010にすれば可能です(例)。
Scale(識別子ABの場合)
識別子はBREFFのAnimation Identifierのことです。ABの場合、すべてのフレームにおけるパラメータを指定する必要があります。
KeyTable
サイズはフレーム数x有効軸数x4バイトです。
オフセット | サイズ | タイプ | 説明 |
---|---|---|---|
0x00 | A * 0x04 | Float[A] | パーティクル毎の大きさ。 AはKindEnableで指定した有効な軸の数です。単一軸(1,2,4)なら1、二つの軸(3,5,6)なら2、全軸(7)なら3となります。順序はx->y->zです。 |
0x00 + A * 0x04 | 構造終了。次のフレームの設定に移ります。 |
Scale(識別子ACの場合)
KeyTable
オフセット | サイズ | タイプ | 説明 |
---|---|---|---|
0x00 | 0x02 | Byte | エントリ数。 |
0x02 | 0x02 | Byte | 不明。通常は0です |
0x04 | 構造終了。パラメータ設定に進みます |
パラメータ設定は次の通りです:
オフセット | サイズ | タイプ | 説明 |
---|---|---|---|
0x00 | 0x02 | Byte | 操作フレーム |
0x02 | 0x02 | Byte | 不明。効果なし? |
0x04 | 0x01 | Byte | 不明。効果なし? |
0x05 | 0x01 | Byte | 不明。効果なし? |
0x06 | 0x02 | - | 不明。通常は0です |
0x08 | 0x04 | - | 不明。通常は0です |
0x0C | A * 0x04 | Float[A] | パーティクル毎の大きさ。 AはKindEnableで指定した有効な軸の数ですが、7のパターンについては未確認です(オフセットは0x08から?)。 |
0x0C + A * 0x04 | 構造終了。エントリ数が複数の場合は次のエントリのパラメータへ移動します |
InfoTable
一般的にKeyTableのみですが、一部ではInfoTableも定義されています。
オフセット | サイズ | タイプ | 説明 |
---|---|---|---|
0x00 | 0x02 | Byte | エントリ数。 |
0x02 | 0x02 | Byte | 不明。通常は0です |
0x04 | 構造終了。パラメータ設定に進みます |
パラメータ設定は次の通りです:
オフセット | サイズ | タイプ | 説明 |
---|---|---|---|
0x00 | 0x04 | Float | パーティクルのデフォルトサイズ |
0x04 | 0x04 | Float | 接線 |
0x08 | 0x04 | Float | 不明。スケール関係ですが反映されません |
0x0C | 0x04 | Float | 不明。接線関係ですが反映されません |
0x10 | 構造終了。エントリ数が複数の場合は次のエントリのパラメータへ移動します |