たとえばこの画像が以下の3つのマスクのチャンネルを持っているとする。
チャンネル名:MultiMatteElementA |
チャンネル名:MultiMatteElementB |
チャンネル名:MultiMatteElementC |
というようにしたいとする。
Mergeノードを使うならば、MultiMatteElementA,B,Cとすべてplusで合わせてやればいい。
位置がわかりにくいのでハーフで乗っけました。左からMultiMatteElementA,B |
MergeノードのAコネクトとしてMultiMatteElementAを、BコネクトとしてMultiMatteElementBをplusで合わせる。でoutputとして今回は別に「maskA」というチャンネルを設けました。outputを指定することで、Mergeノードでの計算結果がそのoutputで指定されたチャンネルに格納されます。また、MultiMatteElementA,B,Cにはアルファチャネルがないので plus オペレーションで計算してます。
すると、ここまでで
maskAチャンネルとしてこんな結果を得ることが出来ます。
あとは、MultiMatteElementCに対しても同様にしてやると・・・
として、
を得る。
でも、Expressionノードを使うと・・・
channelsでmaskAを指定して、さらにredチャンネル固定で、式として
MultiMatteElementA.red + MultiMatteElementB.red + MultiMatteElementC.red
とする。同様にgreen、blueってやるとExpressionノード一つで得ることが出来る。要するに、Mergeノード2つでやっていた3つのチャンネルの足し算をExpressionノード一つでできる。
たとえば、ShufflleノードMultiMatteElementCをMultiMatteElementBなどに変換してやればShuffleとMergeの組み合わせでもできるが、Expressionノードを用いて一つで出来るほうがすっきりとはする。
次に、
というようなものを作ろうとすると・・・
こんな感じで、RGBを変換してやる必要があるのでShuffleノードなどで調整が必要だ。しかも、これだけやっても、得ることの出来る画像は
と一列分であと2回同様の工程が必要だ。
でもExpressionノードを使えば、
って感じで、一気に
を得ることが出来る。
また、
こんな感じでも、
として一つのExpressionノードで作成が可能だ。
さらに、計算式を少し工夫してやると、
これで、
って感じのものを作ることも出来る。
Expressionノードはコネクトが一つしかないが、MergeExpressionノードというものもあり、それは2つをソースに出来る。
なので、
とすると、このカラフルなグラデーションを動かすことができる。左右はループしている。
No comments:
Post a Comment