Composite Pixel Expressions

May 2, 2011
そんなわけでAutodesk Composite入門の第2回。Compositeの使い方を忘れはじめてるのでさっさと書いておかないと...

今回はPXL。PXLとはPixel Expressionsで文字通りピクセル単位での入力 -> 出力をコントロールするもの。ShakeのMacroとかAfter EffectsのPixel Benderと同じ位置づけだと思います。言語自体はGLSLっぽい感じでVectorでゴリゴリ演算していく感じ。GLSLとか書いてたら適当に書き始めてもなんとかなりそうです。

Tools - > Pixel Expressions -> PXLを選択してPXLノードを作成。今回は単純な塗りつぶしなので、入力画像はナシ。

pxl_1_001.png

今回はここにゴリゴリ書いちゃうので「Edit」を選択。Editにはマルチラインのテキストエディタがあるので、ここに書き込みます。あんまりエディタとしての機能は豊富ではない(っていうかなんもできないに等しい)ので、ちゃんと書くなら外部エディタを使った方がよさそうです。外部エディタで作成した場合は、拡張子を「.pxl」にして保存し、「Import」で読み込みます。

pxl_1_002.jpg


color  colourPlane = color(1, 0, 0 ,1);
Out = colourPlane;

これで画面が赤く塗りつぶされます。コードを書き込んでから「Apply」ボタンを押すと実行されます。右側のコンソールにメッセージが出るのでエラーはこちらで確認。

pxl_1_003.jpg

Expression内で使用する変数をパラメータとしてGUIで設定できます。「Parameters」の下の「Add」ボタンを押して変数名を設定すれば、設定した変数をExpression内で使用できます。ただしパラメータに設定するということはそこで変数を宣言することになるので、既にExpressionで宣言している変数は使用できません。

Expressionを以下のようにして、ParametersにCh_R,Ch_G,Ch_B,Ch_Aを設定してやれば任意の色で塗りつぶすことができます。

color colourPlane = color(Ch_R, Ch_G, Ch_B, Ch_A);
Out = colourPlane;

pxl_1_005.png

作成したExpressionを書き出したいときにはExportを使用します。ここではExpression本体のみが出力されます。Parametersも一緒に保存しておきたい場合は右側のPresetからSaveで保存します。ちなみにLoadボタンを押すとサンプルのPXLプリセットをロードすることができます。

いくつかPixelBenderのプラグインをCompositeのPXLに移植して動かしてみたんですが、Parametersにはfloat1しか設定できないのが残念。boolとか使いたい。あとピクセルスキャンさせると結構重いです。体感的には「Pixel Benderの方が軽いかな」と言った感じ。