関数リファレンス

関数について

システム関数は[PPF](ParticlePluginFuncクラス)のクラスメンバ関数となっています。

スクリーンの幅と高さを取得

void ParticlePluginFunc::GetScreenSize( DWORD* width, DWORD* height );

入力
DWORD* width
幅を受け取る変数のポインタ
DWORD* height
高さを受け取る変数のポインタ
出力はありません

ゲーム画面サイズを取得します。
画面全体に表示するようなパーティクルのとき、この値を使用することで解像度に依存しないプラグインを作成できます。

パーティクル終了

void ParticlePluginFunc::Exit( void );

入力・出力はありません

パーティクルを終了します。

整数値乱数

DWORD ParticlePluginFunc::rand( void );

入力はありません
出力
DWORD
0〜0xffffffff までの整数がランダムで返ります

少数値乱数

float ParticlePluginFunc::frand( void );

入力はありません
出力
float
0.0〜1.0 までの少数がランダムで返ります

度→ラジアン変換

float ParticlePluginFunc::Deg2Rad( float d );

入力
float
変換元度数
出力
float
変換されたラジアン

ラジアン→度変換

float ParticlePluginFunc::Rad2Deg( float r );

入力
float
変換元ラジアン
出力
float
変換された度数

サイン取得

float ParticlePluginFunc::sin( float r );

入力
float r
ラジアン
出力
float
サイン

コサイン取得

float ParticlePluginFunc::cos( float r );

入力
float r
ラジアン
出力
float
コサイン

タンジェント取得

float ParticlePluginFunc::tan( float r );

入力
float r
ラジアン
出力
float
タンジェント

アークサイン取得

float ParticlePluginFunc::asin( float r );

入力
float r
正弦値
出力
float
アークサイン

アークコサイン取得

float ParticlePluginFunc::acos( float r );

入力
float r
余弦値
出力
float
アークコサイン

アークタンジェント取得

float ParticlePluginFunc::atan( float r );

入力
float r
正接値
出力
float
アークタンジェント

アークタンジェント取得

float ParticlePluginFunc::atan2( float y, float x );

入力
float y
正接分子
float x
正接分母
出力
float
アークタンジェント

小数点以下切り上げ

float ParticlePluginFunc::ceil( float f );

入力
float f
切り上げを行う値
出力
float
小数点以下切り上げを行った値

絶対値を取得(少数値)

float ParticlePluginFunc::fabs( float f );

入力
float f
絶対値を求める値
出力
float
fの絶対値

小数点以下切り捨て

float ParticlePluginFunc::floor( float f );

入力
float f
小数点以下切り捨てを行う値
出力
float
小数点以下切り捨てを行った値

除算の余りを取得

float ParticlePluginFunc::fmod( float a, float b );

入力
float a
分子
float b
分母
出力
float
a/bの余り

平方根を取得

float ParticlePluginFunc::sqrt( float f );

入力
float f
平方根を求める値
出力
float
fの平方根

べき乗取得

float ParticlePluginFunc::pow( float a, float b );

入力
float a
float b
指数
出力
float
aをb乗した値

絶対値取得(整数)

long ParticlePluginFunc::abs( long n );

入力
long n
絶対値を求める値
出力
float
nの絶対値

四捨五入

long ParticlePluginFunc::round( float f );

入力
float f
四捨五入する値
出力
long
fを四捨五入した数値

ベクトル回転(X)

X軸を中心にベクトルを回転させます。

void ParticlePluginFunc::VecRotateX( cs2ParticleBase::LPVEC3 v, float r );

入力
LPVEC3 v
回転するベクトル
float r
回転度合い(ラジアン)
出力はありません

ベクトル回転(Y)

Y軸を中心にベクトルを回転させます。

void ParticlePluginFunc::VecRotateY( cs2ParticleBase::LPVEC3 v, float r );

入力
LPVEC3 v
回転するベクトル
float r
回転度合い(ラジアン)
出力はありません

ベクトル回転(Z)

Z軸を中心にベクトルを回転させます。

void ParticlePluginFunc::VecRotateZ( cs2ParticleBase::LPVEC3 v, float r );

入力
LPVEC3 v
回転するベクトル
float r
回転度合い(ラジアン)
出力はありません

ベクトル回転(XYZ)

X・Y・Zの順にベクトルを回転させます。

void ParticlePluginFunc::VecRotateXYZ( cs2ParticleBase::LPVEC3 v, float x, float y, float z );

入力
LPVEC3 v
回転するベクトル
float x
X軸回転度合い(ラジアン)
float y
Y軸回転度合い(ラジアン)
float z
Z軸回転度合い(ラジアン)
出力はありません

ベクトル並行移動

ベクトルを平行移動させます

void ParticlePluginFunc::VecTrans( cs2ParticleBase::LPVEC3 v, float x, float y, float z );

入力
LPVEC3 v
移動するベクトル
float x
X移動量
float y
Y移動量
float z
Z移動量
出力はありません

ベクトル拡大・縮小

ベクトルを拡大縮小させます。

void ParticlePluginFunc::VecScale( cs2ParticleBase::LPVEC3 v, float x, float y, float z );

入力
LPVEC3 v
移動するベクトル
float x
X拡縮率
float y
Y拡縮率
float z
Z拡縮率
出力はありません

2点間の距離を取得

2つのベクトルの距離を取得します。

float ParticlePluginFunc::VecGetDistance( cs2ParticleBase::LPVEC3 v1, cs2ParticleBase::LPVEC3 v2 );

入力
LPVEC3 v1
ベクトル 1
LPVEC3 v2
ベクトル 2
float
ベクトル1と2の距離

線形補間

ある範囲の間にある値を線形補間します。

float ParticlePluginFunc::LinearInt( float area_min, float area_max, float in_min, float in_max, float n );

入力
float area_min
求める値の範囲の最小値
float area_max
求める値の範囲の最大値
float in_min
入力値の範囲の最小値
float in_max
入力値の範囲の最大値
float n
入力値
float
線形補間された値

in_min から in_max の範囲にある n を area_min から area_max の間の数値に変換します。

三角波取得

三角波(0.0→1.0→0.0→1.0・・・)を求めます。

float ParticlePluginFunc::TriWave( float n, float r );

入力
float n
入力値
float r
周期
float
三角派値

周期(r)を5.0とした場合、n=0.0 → 0.0、n=5.0 → 1.0、n=10.0 → 0.0 ・・・となります。