絶対に挫折しないHoudini入門 10 - モデリング 2
モデリング
前回の記事でVOPによってマテリアルを作成しました。実はVOPにはコンテキストという概念/機能が存在します。VOPコンテキストが違うと同じ名前の関数でも機能が変わるのです。また、VOP内で使用できるノードにも差異があります。
マテリアルを作成した時のVOPコンテキストはシェーディングコンテキストと呼ばれるもので、surfaceやdisplaceというコンテキストでした。
Global Variables > Context Typeで指定したアレです。
VOPにはシェーディングコンテキスト以外にもコンテキストがあり、その一つがcvexコンテキストです。
このコンテキストはSOP内でAttribute VOPノードを使用して使うことが出来ます。このコンテキスト内ではジオメトリを直接編集することが出来ます。
この記事ではジオメトリをディスプレイスメントする例を通して、cvexコンテキストのVOPについて説明します。
準備
まず、元となるジオメトリを作成します。obj以下でTab > sphereを配置します。
作成されたオブジェクトの中に入り、SphereノードのPrimitive TypeをPolygonにしておきます。
次にSphereノードにSubdivideノードをつなぎます。SubdivideノードのDepthは4か5くらい(マシンスペックと相談)にしておきます。これで準備は完了です。
Attribute VOPノード
Attribute VOPノードをSubdivideノードの下につなぎます。Attribute VOPノードをダブルクリックして中に入るとこのようなノードがあらかじめ配置されています。
前回Material Shader Builderノードを作った時と似ていますが、入力と出力はGeometry VOP Global Parametersノード、Geometry VOP Output Variablesノードになっています。
ちなみに、VOPネットワークでは同じ名前の入出力は線をつながなくても自動で受け渡しが行われることに注意してください。つまり上の画像は下の画像と同じです。
Voronoi Noiseノード、Displacement Along Normalノードを以下の様につなぎます。たったこれだけでジオメトリをディスプレイスすることが出来ます。
上記がcvexコンテキストのVOPの簡単な例です。
ちなみに、Attribute VOPノードですが、Tabで表示されるメニューにはPoint VOPやPrimitive VOPなど似た名前のものがたくさんあります。
混乱しそうですが、実はこれらは全てAttribute VOPノードです。配置時の初期設定が違うだけです。例えばPrimitive VOPを選択するとRun OverがPrimitiveに設定されたAttribute VOPが配置されます。
Houdiniでは実体は同じなのに違う名前がついていることが結構多いです。最初は大量のノードに圧倒されそうですが、実はアレとコレは同じヤツだったなんてことがあるので、落ち着いて整理しながら見ていくとちょっと安心するかもしれません。
もしこの記事があなたのお役に立てたなら幸いです。 よろしければサポートをお願いします。今後の制作資金にさせていただきます!