カスタムアトリビュートをパスとして吐き出す


どうも。篠島です。Houdiniはとてもフレキシブルなソフトで、自分の好きなデータをパスとして吐き出すことが可能です!

今回のサンプルファイルです。
Custom_Pass.zip

 

適当にオブジェクトを作り、このオブジェクトに適当なアトリビュートを作ってパスとして吐き出してみます。

scene

 

まずはSOPの中で適当にカスタムアトリビュートを作ります。どうやってカスタムアトリビュートを作っているかはシーンファイルを参照してください。今回は適当にhogeという名前のVectorのアトリビュートを作っています。attrib

次にSHOP内にシェーダーを作ります。カスタムのパスを作るにはシェーダーを変更しないいけないのです。ここではMantra Surfaceノードを使っています。そしてノードを右クリックしてAllow Editing of Contentsをクリックします。こうする事でMantra Surface内部のネットワークを変更することが出来ます。

1

 

Mantra Surfaceの内部に入り、BindノードとBind Exportを追加します。Bind Exportは基本的にはBindとまったく同じノードで、ただパラメーターの設定がエキスポート用になっているだけです。tab

Bindノードを下のように繋ぎます。NameパラメーターにはSOPレベルで自分で用意したカスタムアトリビュートの名前を指定します。Typeでアトリビュートのタイプを正確に指定するようにしてください。今回のhogeアトリビュートはVectorなので、Vectorを指定しています。
一つ目のBindによってhogeアトリビュートがSOPから読み込まれ、そして二つ目のBindでシェーダーからアトリビュートがエキスポートされるのです。

bind

 

シェーダーでの設定が終わったら、Mantraでカスタムアトリビュートを吐き出す設定をします。Extra Image Planesタブの中のExtra Image Planesパラメーターで + ボタンを押すと、VEX Variableを指定できるパラメーターが現れます。ここで自分で作ったカスタムアトリビュートの名前を指定します。mantra_pass

あとは普通にMantraでレンダリングするとパスが作られているのが確認できます。

mplay

C0001カラーチャンネル hoge0001カスタムアトリビュートのhoge パス