パーティクルシステムについて
- トップ
- > データの作成
- > プラグイン−パーティクル
- > パーティクルシステムについて
パーティクルとポリゴン
1つのパーティクルは4つの頂点を持つ四角形(三角形2つ)ポリゴンです。
プラグインでは、このポリゴンの表示位置や回転の設定を行います。
また、4つの頂点個々に変更を行う事ができるので、ひし形や台形のような形にすることも出来ます。
パーティクル情報
パーティクルクラスのメンバ変数 [LPPARTICLE lpParticle] がパーティクル1つ1つの情報となります。
この構造体のメンバ [VERTEX p[4]] が頂点情報になります。
この頂点は以下のように並んでいます。

テクスチャ座標
頂点がテクスチャ(パーティクル画像)のどの座標を指すかを指定するのがテクスチャ座標です。
PARTICLE::VERTEX の [VEC2 tx] にて指定します。

このパラメータを操作すると、1枚のパーティクル画像を分割して複数画像のように扱う事が出来ます。
例えば、p[0]=(0.0:0.0) p[1]=(0.5:0.0) p[2]=(0.0:0.5) p[3]=(0.5:0.5) とすると以下のように表示されます。

初期値は、画像全てを表示する状態(p[0]=(0.0:0.0) p[1]=(1.0:0.0) p[2]=(0.0:1.0) p[3]=(1.0:1.0))になっています。
表示座標
lpParticle の base, pos, rot, scale に値を設定することで表示座標・回転・拡大縮小を行います。
これらの値は、シーンスクリプトのプレーンと同じです。
また、disp に FALSE を入れるとそのパーティクルは表示されません。
パーティクルの数
いくつのパーティクルを表示するかは、スクリプトから指定されます。
この数は Init/Exec/Stop 各メンバ関数の引数の count に入っています。
プラグイン側ではこの数のパーティクルを操作する必要があります。
状況によりパーティクル数の制限を掛ける場合は、余ったパーティクルは非表示に設定してください。
また、この数を超えるアクセスは出来ません(バッファオーバーランにより不正処理となります)。