03 Inside Flow
内部構造のセットアップを解説します。
内部構造は、同じしくみを繰り返し作成するレイヤー構造をベースにしました。今回発生する動きのしくみは、シミュレーションの際に作成した"area"のアニメーションをそのまま流用するかたちをとっています。
レイヤー構造のようなくり返し作業を敢えてマニュアルに間隔などを調整しながら作りこむ場合のアプローチを紹介します。くり返しの場合は、Forなどを使って手作業の煩わしさを省きたいところですが、やはり細部の調整はマニュアル作成にはかないません。そういった場合に役立つ方法を検証します。
今回はメインとなるストリーム【A】と同等のくり返しのストリーム【B】の2種類に分類されます。最終的にはNormalやタイミングの調整を入れていますが【C】、大きくはメインストリームをくり返しのストリームへ適用するためのながれが重要です。
基のSDFをErodeして内側に小さくしていき、必要に応じて少しSmoothをかけておきます【D】。このフローは全体にも同じ構造になっていて、Erodeの距離でレイヤー構造を構築しています。
Compile Blockを使って、くり返しの作業を効率化していきます。
まず、SDFをPolygonへ変換した後、一定量のリダクションを行い、Rest Positionを追加してNoise Deformをかける一連をCompile Blockで処理します【E】。
次に、距離計測の原点【F】からVOPを使って距離を計測し、距離に応じた座標へPを並び替えます【1】。直線に並んだジオメトリをClip SOPを使用してカットするアニメーションを作成します【2】。その後、Rest Positionから元の形状に戻す一連をCompile Blockで処理します【G】【3】。
ここで注意すべきは、原点【F】をインプットするCompile Beginを作成しておくことです。また、2つのCompile Blockに分けた理由としては、アニメーションが入っている処理を行うために、無駄な処理時間がかかるのを避けるためです。例えば、PolyReduce SOPはアニメーションしていませんが、Clip SOPがアニメーションしているため、1つのCompile Blockにまとめると全て毎フレーム処理されてしまいます。
Compile Blockでの処理の後は、PolyExtrude SOPで内側に厚みを付けて、Reverse SOPで反転します【H】。また、Retime SOP【I】を使用してアニメーションのタイミングをレイヤーごとに変更できるようにしておきます。最後にGroup SOP【J】でレイヤーごとにグループを作成して完了です。
この一連を、その他のレイヤーに対して、Invoke SOP【K】を使ってそれぞれ適用して内部構造の完了です【4】。
04 Operators
主要ノードを解説します。
●Clip SOP
今回大活躍しているノードとしてはCompile Blockが挙げられますが、以前にも詳しく紹介したことがあるので、ここでは、地味に便利すぎるノードを取り上げたいと思います。
それはClip SOPです。筆者のフローにはいつも欠かせないものとして使用することが多く、大好きなノードのひとつです。
Clip SOPの機能は非常にシンプルで、方向を決めて真っ直ぐにカットするだけのノードです。その切断能力はすさまじく、基本的に切れないPolygonはありません。ただ問題なのは、方向に対して垂直にしかカットできない愚直さです。そのため影に隠れていますが、使い方次第では非常に強力な武器になるのがHoudiniの良いところです。
愚直なまでのシンプル機能を逆手に取り、変形させてカットして元に戻すサンドイッチのアプローチをとることで、Booleanよりも確実にカットすることが可能になります。
Houdniにおいても現実世界においても、シンプルだけど確実なものと言うのは、古びれることなく、使用者の創意工夫によって進化し続けるものと確信しています。
-
「Houdini COOKBOOK +ACADEMY」
Houdiniを基礎から楽しく学ぶオンライン講座
公開日程:毎週金曜日公開(予定)
価格:1,300円(税込)※セットでの割引販売有
※第一回「Houdiniの基本概念とインターフェイス」は無料公開中
受講対象:Houdiniをこれから学びたい方、Houdiniの勉強で挫折した方など
cgworld.jp/special/houdinicookbookacademy