パーティクル

particleコマンド

シーンにパーティクルを作成するにはparticleコマンドを使用する。
-pオプションによって必要な個数だけの座標値をつけてこのコマンドを実行することによって、それらのパーティクルにひとつの名前がつけられる。
例えば、 particle -p 0 0 1 -p 1 0 0; というコマンドによって、(0, 0, 1)と(1, 0, 0)の2点にパーティクルが作られる。

particleコマンドの使用例

以下のプロシージャーをmakeParticle1.melと言うファイルに書き込んで実行してみよう。
このプロシージャーでは10個のパーティクルを乱数によって座標値を決めながら発生させている。
各パーティクルのX, Y, Zの座標値は-5から5の範囲になる。

  1. 以下のプロシージャをmakeParticle1.melと言う名前でファイルに書き込む。
    global proc makeParticle1()
    {
    	string $points = "";
    
    	for($i = 0; $i < 10; $i++)
    	{
    		$x = `rand -5 5`;
    		$y = `rand -5 5`;
    		$z = `rand -5 5`;
    		$points = $points + "-p " + $x + " " + $y + " " + $z + " ";
    	}
    	eval ("particle " + $points);
    }
    
  2. File -> Source Script でmakeParticle1.melを読み込む。
  3. Script Editor で以下のコマンドを実行してみる。
    makeParticle1();
    [image of makeParticle1.mel]
    上図はわかりやすくするためにパーティクルのParticle Render TypeアトリビュートをSpheresに変えて表示している。

練習

  1. 上のmakeParticle1.melを参考にしてmakeParticle2.melを作り、発生させるパーティクルの個数と、発生させるパーティクルの座標値の範囲(X、Y、Z)も変えることができるようにしよう。
    makeParticle2(個数, X方向の範囲, Y方向の範囲, Z方向の範囲)
    (使用例)
    makeParticle2(30, 5.0, 10.0, 15.0)
    30個のパーティクルがX座標が-5.0から5.0、 Y座標が-10.0から10.0、Z座標が-15.0から15.0までの範囲で作られる。
    [image of makeParticle2.mel]
    上図はわかりやすくするためにパーティクルのParticle Render TypeアトリビュートをSpheresに変えて表示している。
  2. さらにmakeParticle2.melを参考にしてmakeParticle3.melを作り、発生させるパーティクルのレンダリングタイプ(Particle Render Typeアトリビュート)を変えることができるようにしてみよう。
    makeParticle3(個数, X方向の範囲, Y方向の範囲, Z方向の範囲, レンダリングタイプ)
    (使用例)
    makeParticle3(20, 7.0, 10.0, 13.0, 7)
    30個のパーティクルがX座標が-7.0から7.0、 Y座標が-10.0から10.0、Z座標が-13.0から13.0までの範囲で、レンダリングタイプはBlobby surfaceで作られる。 [image of makeParticle3.mel]
    (ヒント)
    レンダリングタイプを変更するにはパーティクルのparticleRenderTypeアトリビュートを変更する。
    以下の表はparticleRenderTypeアトリビュートのとる値を表している。
    particleRenderTypeshape
    0 MultiPoint
    1 MultiStreak
    2 Numeric
    3 Points
    4 Spheres
    5 Sprites
    6 Streak
    7 Blobby Surface
    8 Cloud
    9 Tube

練習課題

参考


Prev | Next
Home | Contents
abe@injapan.net