2013年3月14日木曜日

expression 基礎の中の基礎

expressionもまだまだ基礎レベルでしか扱う事が出来ないヘッポコエフェクターな僕ですが、気をつけてる点、忘れがちな点をメモしていこうと思います。

といっても今思い出せる分だけでそんな数ないと思うので簡単な事だけ書きます。


・文章の終わりの「;」

1文だけだと問題ないと思いますが、忘れがちなので普段から付ける癖を作るようにしています。
これは人それぞれだとは思いますが。。。


・rand関数とかに付け足すseed

seed();

randの数値を固定化するものです。
ここで注意する点は以下例のように関数の手前にただ打ち込むだけでは上手くいかない事です。

----------------------------------------

seed(1);

radiusPP = rand(2); //0~2の値のランダム

----------------------------------------

理由は
・アニメーションを巻き戻すと、radiusPPはseedで決まった値を受け取り、アニメーションで再生した際にエクスプレッションが実行する度にseedで同じ値が代入され続けるせいです。

簡単に言うと結果的にrand関数を使ってるのにランダムにならないという事ですかね。


なので、スタートフレームに戻った時に固定させるようにしてください。

----------------------------------------


if (frame == 1) //この場合スタートフレームは1です。
   seed(1);


radiusPP = rand(2);


----------------------------------------

こうすればアニメーションを再生する度に同じ値が代入されます。

盲点でもなんでもないですが、最初ドはまりしてしまったので書いておきました。

※AutodeskさんのMaya Helpを参考しました。むしろそのまんまに近いです。

http://me.autodesk.jp/wam/maya/docs/Maya2009/index.html?url=Useful_functions_seed.htm,topicNumber=d0e168048


毎回シミュレーションする際に変わるrand関数を固定化するので、誰かに見せたいけど、そういやキャッシュ取ってねーやって時とかに役立ちます。(ズボラですいません)


たったこれだけですが、他にも多分あるのでその時は追記で追加していきたいと思います。

0 件のコメント:

コメントを投稿