Expression・・と聞いてゾッとする人。はい、私です。数学とか苦手です。そんな、しかも面倒くさがりの私でも、むしろ使った方が便利、使えないと困る超基本Expressionを軽く紹介。
[Expressionノード]
IDマスクの組み合わせに。ShuffleやChannelMergeノードを使うと時には何プロセスにもなる作業が1ノードで終了。

CGのdepthチャンネル修正。レンダラーの仕様や設定で「カメラから遠くに行けば行く程depth値が上がる、でもオブジェクトが無い所は値が"0"=カメラから一番近い」という画が出る時の矛盾を修正。
添付画像では"r値が0だったら1を返す、でなかったらr値そのまま"という処理。同じ考えでnanピクセルがあってエラーが出る時に値を0にしたり。

[プロパティにExpression追加]
Noiseノードにframeでアニメーション。キーフレームは打たずにサクサクスピード調整できる。さらにスピードを変えるアニメーションをさせたければUser Knobを作ってリンクさせても。

$guiを使う(GUIの時だけ"1"を返す)
めちゃ処理が重いノードはdisableに$gui エクスプレッションかければファームレンダーのときだけenableになります。下の参考サイトのようにSwitchノードで切り替えても。ScanlineRenderノードのSample値違いで$guiをかけるときもあります。GUIの時はsample"1", ファームレンダーの時はsample"5"とか。他人とNukeScriptをシェアする環境の時は「ここで$guiエクスプレッションやってますよ」とBackdropでメモしておきましょう。

参考サイト
Switching Nodes with $gui variable
"random"関数でランダム値の作成。フリッカーを作るときなどに。出来た結果値は使いたいノードのプロパティにリンクさせる。User Knobを作って複数プロパティを関連づければ直感的に調整しやすくなる。私は最大値、最小値、頻度、オフセット値パラメーター付きのオリジナルノードをNoOpノードを使って作りました。参考したサイトはここ。
Nuke wave expressions to copy and paste
下画像にある私の「応用」はほぼこのサイトのコピペです。興味ある人は是非自分で作ってみて下さい。

難易度高めに挑戦したいかたはこちらもどうぞ。Nukepediaにある凄く良くまとまっているTutorialです。
Expression Node 101
記事が役に立った!という方はAmazonギフト券(15円〜)で支援してくださると今後のモチベーションになります!「受取人」にshizuka67(アットマーク)gmail.comと入力お願いします 詳しくはこちら
No comments:
Post a Comment