MELの応用4 (スパイラル1)

モデリングの目標

これから数回にわたって、卓上電話機のコード(コイル状)のような形を作るMELスクリプトを作ってゆく。
最終的には任意のスプラインカーブにそったコイルが作られ、エクスプレッションによってスプラインカーブを動かすとコイルの部分も、そのカーブと同じように動くようにしてみよう。
今回は手始めに直線的なコイル状の形を作るMELスクリプトを書いてみよう。

コイルを作る

ここでは三角関数(sin, cos)を使って円上にカーブのコントロールポイントを作ってゆく方法によってスクリプトを書いてみる。

コイルを作るスクリプト1

  1. 以下のプロシージャをmakeSpiral1.melと言う名前でファイルに書き込む。
    global proc makeSpiral1()
    {
    	int $i;
    	int $numLoops = 10;
    
    	int $numCvs = $numLoops * 4;
    	string $crv = `curve -degree 3 -p 0 0 0 -k 0 -k 0 -k 0`;
    	for( $i = 0; $i <= $numCvs; $i++ )
    	{
    		float $x = 0.2 * $i;
    		float $angle = (float)$i/$numCvs * 6.28 * $numLoops;
    		float $y = sin($angle);
    		float $z = cos($angle);
    		if($i == 0 || $i == $numCvs)
    		{
    			$y = 0.0;
    			$z = 0.0;
    		}
    		curve -append -p $x $y $z $crv;
    	}
    }
    
  2. File -> Source Script でmakeSpiral1.melを読み込む。
  3. Script Editor で以下のコマンドを実行してみる。
    makeSpiral1();

練習

参考

練習課題


Prev | Next
Home | Contents
abe@injapan.net