グローバル関数とパーティクルクラス

グローバル関数

MakeInstance

クラスインスタンスを作成します。
この関数は編集する必要はありません。

__declspec(dllexport) cs2Particle* MakeInstance( ParticlePluginFunc* pf )

入力
ParticlePluginFunc* pf
システムから提供される関数群クラスのポインタ
出力
cs2Particle*
クラスへのポインタ

クラス名を[cs2Particle]以外に変更する場合は、出力を変更する必要があります。

パーティクルクラスのメンバ関数

このクラスを編集してパーティクルを作成します。
デフォルトのクラス名は[cs2Particle]です。

cs2Particle

cs2Particle::cs2Particle( )

入力・出力ともにありません。

クラスのコンストラクタです。
クラスの初期化が必要な場合はここに記述してください。

~cs2Particle

cs2Particle::~cs2Particle( )

入力・出力ともにありません。

クラスのデストラクタです。
クラスの終了処理(メモリ開放等)が必要な場合はここに記述してください。

Init

void cs2Particle::Init( LPINITPARAM p )

入力
LPINITPARAM p
初期化用パラメータ
出力はありません。

パーティクルが実行される直前に呼ばれる関数です。

INITPARAM

DWORD count
パーティクル数
float screen_width
画面の幅
float screen_height
画面の高さ
float width
パーティクル画像の幅
float height
パーティクル画像の高さ
float param[32]
particle3コマンドで指定されたパラメータ列

Exec

void cs2Particle::Exec( LPEXECPARAM p, DWORD before, DWORD frame )

入力
LPEXECPARAM p
実行用パラメータ
DWORD before
前回実行時のフレーム値
DWORD frame
現在のフレーム値
出力はありません。

パーティクル実行中に呼ばれる関数です。
毎フレーム呼ばれます。
処理落ち(フレーム落ち)対策の為、frame - before フレーム分を動かす必要があります。

EXECPARAM

DWORD count
パーティクル数
float screen_width
画面の幅
float screen_height
画面の高さ
float width
パーティクル画像の幅
float height
パーティクル画像の高さ
float param[32]
particle3コマンドで指定されたパラメータ列

Stop

void cs2Particle::Stop( LPSTOPPARAM p )

入力
LPSTOPPARAM p
停止用パラメータ
出力はありません。

パーティクルが停止される直前に呼ばれる関数です。

STOPPARAM

DWORD count
パーティクル数
float screen_width
画面の幅
float screen_height
画面の高さ
float width
パーティクル画像の幅
float height
パーティクル画像の高さ
float param[32]
particle3コマンドで指定されたパラメータ列

パーティクルクラスのメンバ変数

メンバ変数に値を設定することでパーティクルを動かします。

LPPARTICLE lpParticle

パーティクル個々の設定が入っている構造体です。
PARTICLE構造体がパーティクル数並んでいます。

BLENDMODE BlendMode

パーティクルを画面に描画する際の合成方法を設定します。

BLENDMODE

BM_NORM
通常の合成(デフォルト)
BM_ADD1
加算合成1
BM_ADD2
加算合成2
BM_MUL
乗算合成
BM_INV
転送先カラー反転
BM_DBL
転送先カラー2倍

long nAttachPL

particle3 コマンドのパラメータ[アタッチ先プレーン]の値が入っています。

VEC3 vAttachPLBase

[アタッチ先プレーン]のベース座標が入っています。

VEC3 vAttachPLPos

[アタッチ先プレーン]の表示座標が入っています。

BOOL bAttachPLDisp

[アタッチ先プレーン]の表示状態(TRUE:表示 FALSE:非表示)が入っています。