ダイナミック・エクスプレッション2

パーティクルのアトリビュート

パーティクルの主なアトリビュートは以下の通りである。

長い名前 (短い名前) デフォールト値 説明
position (pos) vectorArray empty Runtime における個々のパーティクルの位置
velocity (vel) vectorArray empty Runtime における個々のパーティクルの速度
acceleration (acc) vectorArray empty Runtime における個々のパーティクルの加速度
age (ag) doubleArray empty 個々のパーティクルの寿命
particleId (id) doubleArray empty 個々のパーティクルの番号
maxCount (mxc) long -1 パーティクルの最大個数
renderType (rt) enum 3 ハードウェアレンダリングの方法

dynExpressionコマンドの使用例2

パーティクル(球)の一つ一つの色がランダムな感じで赤と黒の間を変化してゆくエクスプレッションを使ったプロシージャー。
以下のMELスクリプトをdynExpression4.melという名前で作り、スクリプトエディターからdynExpression4();で実行する。

global proc dynExpression4()
{
	particle -p 0 0 0;
	emitter -type "direction" -dx 0 -dy 1 -dz 0 -spread 0.5 -rate 10 -n emitter;
	$name = `particle`;
	setAttr ($name[1] + ".particleRenderType") 4;
	addAttr -longName rgbPP -dt vectorArray $name[1];
	dynExpression -runtime -string "rgbPP = << (sin(time * (particleId % 10)) + 1)/2, 0, 0>>;" $name[1];
	connectDynamic -emitters emitter $name[0];
}

  1. particle -p 0 0 0; パーティクルを(0, 0, 0)の位置に作る。
  2. emitter -type "direction" -dx 0 -dy 1 -dz 0 -spread 0.5 -rate 10 -n emitter; そのパーティクルに対してY方向に発生・運動するエミッターをemitterという名前で作る。
  3. $name = `particle`; emitterによって発生されるパーティクルを作って、その名前を$nameという変数に代入しておく。
    $nameの内容は以下のようになる。
    $name[0] = "particle2";
    $name[1] = "particleShape2";
  4. setAttr ($name[1] + ".particleRenderType") 4; パーティクルの形を球にする。(ハードウェアレンダリング)
    パーティクルのアトリビュートparticleRenderTypeの値と、その値が表す形は以下の通り。
    particleRenderTypeshape
    0 MultiPoint
    1 MultiStreak
    2 Numeric
    3 Points
    4 Spheres
    5 Sprites
    6 Streak
    7 Blobby Surface
    8 Cloud
    9 Tube
  5. addAttr -longName rgbPP -dt vectorArray $name[1]; particle2($name[0])のシェィプノードparticleShape2($name[1])にrgbPP(型はベクトル)というアトリビュートを加える。
  6. dynExpression -runtime -string "rgbPP = << (sin(time * (particleId % 10)) + 1)/2, 0, 0>>;" $name[1]; 色の値を時間が進むにしたがって赤( << 1, 0, 0 >> ) と黒( << 0, 0, 0 >> )の間を変化してゆくようににエクスプレッションを設定する。
  7. connectDynamic -emitters emitter $name[0]; emitterとparticle2($name[0])をコネクトしてパーティクルを発生させる。

練習

参考


Prev | Next
Home | Contents
abe@injapan.net