今、鳥を作っている、モデリングからリグまでやらないといけないのでいろいろと調べ中だが、今日は羽毛の表現のテストを行うときにfor文を使ってみた。
ポリゴンプレーンにトランスペアレントマップ付きの羽のテクスチャーを使い、
トランスペアレントの具合と、レイトレースシャドーの具合をテストするのが目的。
for文を使ったのはこのポリゴンプレーンを並べる作業。
1×5の比率のポリゴンプレーンを20行×20列ならべるためにfor文をネストして使った。
また、各プレーンの一部を重なり合うようにならべているので、x軸でローテーションして、
角度を付けて、プレーンとプレーンの間に隙間をとってある。
まず、メニューのポリプレーンからオプション画面を開き、
値を設定し、作成。
スクリプトエディターに表示されたポリプレーン作成のコマンドをコピペして使用。
移動に関しては、moveコマンドを以前に使ったことがあるので、
記憶をたよりにつかってみたら全く問題なく動作した。
{
for ($c=1; $c<20;>
for ($c2=1; $c2<20;>
polyPlane -w 1 -h 5 -sx 3 -sy 3 -ax 0 1 0 -cuv 2 -ch 1; $x=$c-1; $z=$c2-1;
move $x 0 $z;
}
}
}
最初はなぜかうまくいかず、Mayaが固まってしまったので、Mayaを再起動し、再挑戦したところ問題なく動いた。 (固まる前の文をみながらテキストに入力したので違いはないはずなのだが...。)
-----------------------
次にきれいに並んでいては、あまり効果がわからないので、 rand関数を使って、 moveコマンドで、xとyの値をランダムにした。
またx軸のローテーション値も、少しランダムにして変化をもたせた。
{
for ($c=1; $c<20;>
for ($c2=1; $c2<20;>
polyPlane -w 1 -h 5 -sx 3 -sy 3 -ax 0 1 0 -cuv 2 -ch 1;
$rnd=rand(.5,1.5);
$rnd2=rand(.1,.5);
$x=($c-$rnd);
$z=($c2-$rnd2);
move $x 0 $z; rotate -r -3 0 0;
}
}
}
そして出来たのが下のキャプチャー画像。
今回は、コマンドをヘルプで調べたのはrotateコマンドのみで、
あとはスクリプトエディターへの表示を利用した。
for文もほぼエラー無く使うことができ、だんだん身についてきた感じがする。
0 件のコメント:
コメントを投稿