>   >  Houdini Cook Book:vol.85 Vertex Connect
vol.85 Vertex Connect

vol.85 Vertex Connect

VOPを使って新しいPrimitiveを作成します。

TEXT_秋元純一 / Junichi Akimoto(トランジスタ・スタジオ/ディレクター)
日本でも指折りのHoudini アーティスト。
手がけてきた作品は数々の賞を受賞している。
代表作に、HIDETAKETAKAYAMA『Express feat. Silla(mum)』など。
www.transistorstudio.co.jp
blog.junichiakimoto.com


EDIT_小村仁美 / Hitomi Komura(CGWORLD)

Add Primitive

今回のモチーフは、プロシージャルに作成されたラインのジオメトリです。同様の働きをするものとしてはAfter EffectsのプラグインPlexusが有名ですが、こういったラインエフェクトは現場でもよく求められます。今回は、そういったプロシージャルなラインエフェクト作成のアプローチのために、基本的な概念から解説していきたいと思います。Houdiniでは、こういったエフェクトを作成するためにすでに様々なHDAなどが準備されていたりもします。ただ、便利がゆえ、それをそのまま使用しているだけでは、実際のプロジェクトの際、細かな応用が効かず、プロシージャルが足かせとなってしまうこともあります。そのような事態を回避するためにも、基本的な概念はしっかりと押さえておくと良いでしょう。

今回はあえてWrangleではなく、VOPを使って視覚的にわかるように組んでいます。ただ、複雑な調整が必要な場合は、VOPよりもWrangleでコーディングしてしまう方が、デバッグが容易なのも確かです。しかし、Wrangleを見よう見まねで書いてしまうより、VOPで理解しながら組み上げることも、はじめの一歩としては大事になります。今回はそう言ったところに切り込むため、段階を踏んで解説していければと思います。

今回のHoudiniプロジェクトデータはこちら

01 Connect Flow

Pointをつなぐ概念を解説します。

まず、2つのアプローチを解説します。最初はすべてのPointに対してそれぞれPrimitiveをつくる方法です。VOP【A】はPointに対してRun Overするように設定します。これにより、すべてのPointに対して処理を回すため、イメージとしては、Pointごとにループ処理しているようなかたちになります。

If Block【B】を用いて、PointがPointの総数よりも小さい場合のみ【C】、Primitiveがつくられるようにします。Primitiveをつくるためには、Add Primitive VOP【D】を使用します。Add Primitive VOPはつくられたPrimitiveの番号を出力します。Primitiveを作成するためにはVertexが必要です。Houdiniでは、Pointに対して必ずVertexが存在しているわけではないので、Pointに対してAdd Vertex VOPを用いてVertexを作成します。このとき、Primitive番号を指定するため、Add Primitive VOPから出力された値を使用します。また、Point番号はptnum【E】とptnumに1を加算したもの【F】で、2つのVertexを作成します。これにより、2つのVertex間をPrimitiveで繋ぐことができました。注意点としては、If Blockの中に格納するために、Constantで0という値を繋いでいます【G】。通常は繋がなくても動作します。

次に、すべてのPointを1つのPrimitiveにまとめて繋ぐ方法です。このアプローチでは、VOPをDetailにRun Overさせます【H】。このようにすることで、Primitiveは1つしかつくられません。For Loop【I】を使って、ptnum分のループを処理します。indexから取られる番号をPoint番号【J】として、Primitive番号はループ外にいるAdd Primitive VOP【K】から取得します。これにより、すべてのPointが1つのPrimitiveにまとまって繋がります。

Infoで確認してみると、Pointごとに処理した場合【1】【2】と1つのPrimitiveにまとめた場合【3】【4】で、Primitiveの数とVertexの数にちがいがあることがわかります。このように、シチュエーションに応じたアプローチを用いることができるようになるためには、VOPの概念を知る必要があります。


次ページ:
02 Connect Flow:Advance

その他の連載