今回は久しぶりにHoudiniでの作例を解説します。

記事の目次

    カーブに沿って植物を配置:メインのカーブと花を作成

    何年か前に「カーブに沿って成長するツタ」の解説をしたことがあったたのですが、今回はそのアップグレード版となる「カーブに沿って植物を配置したり成長アニメーションを作成したりする」の解説です。ノードやVEXをたくさん使用するため、本稿では主にメインのカーブ作成と花の作成までを解説し、成長アニメーションの解説は次回行います。

    <1>植物の幹となるCurve SOPを作成

    HoudiniのGeometory内にて、植物の幹となるCurve SOPを作成します。

    <2>新機能「ベジェカーブ」で接点をコントロール

    Curve SOPはHoudini 19から新しく「ベジェカーブ」がインタラクティブに作成できるようになりました。カーブを描いている最中にそのままポイントをドラッグすることで、ベジェカーブの接点をコントロールできます。

    <3>アタリとなるオブジェクトを作成する

    今回はガイドオブジェクトとしてこのようなアタリのオブジェクトを作成し、スナップツールを併用してオブジェクト上にカーブを描いていきました。

    <4>カーブをたくさん描いて植物のトンネルのように

    植物のトンネルのようなモデルにしたかったので、オブジェクトにスナップさせながらこんな感じでカーブをたくさん描いていきます。

    <5>カーブの頂点数と滑らかさを決める

    ResampleとSmoothノードを作成し、カーブの頂点数と滑らかさを決めます。

    <6>カーブにノイズを加える

    続いてカーブにノイズを加えます。VOP内でTurbulanceNoiseを使いカーブを若干変形させました。

    <7>ガイドオブジェクトとカーブの距離を調節する

    ガイドオブジェクトとカーブの距離を調節します。再びAttribute VOPを作成。[Input1] にカーブを、[Input2] にNormalを設定したガイドオブジェクトを挿します。

    <8>ガイドオブジェクトのNormalを取得する

    VOP内でこのようにPoint Cloudを用いてガイドオブジェクトのNormalを取得し、ポイントに加算します。これで「ガイドオブジェクトからどれぐらいカーブを離すか」の設定ができました。

    <9>花のオブジェクトを作成する

    ベースとなるカーブ制作の次は花のオブジェクトを作成します。今回は「寄りで映るものではない」と仮定し、とてもシンプルな方法でそれっぽい花の造形をプロシージャルに行います。

    <10>花の造形の元となるSpiral SOPを作成

    Spiral SOPを作成します。このノードが花の造形の基となるので、LoopやHole等のパラメータを調節することで後から花の形状を変更可能です。その後、Resampleノードを作成し頂点数の調節をして、Curveuアトリビュートを取得。[Attribute Wrangle] でcurveuアトリビュートを反転させてCurve SOPで花の螺旋に沿った成長をコントロールできるようにします。

    <11>Poly Extrudeノードを作成

    続いてPoly Extrudeノードを作成し、カーブからメッシュをY方向へ押し出します。

    <12>周期的にY値が変化するモデルを作成

    押し出したメッシュを原点からの距離とcurveuを基として、sineで周期的に高さが変化するモデルをVOP内で作成。curveuアトリビュートと原点座標からの距離を割り出してそれらをSineで周期を与えた後、Relative Bounding Boxで得たY値に掛けたものをポイントのYに加算すると、このように周期的にY値が変化するモデルができました。relativeBBoxのY値をColorアトリビュートへ移しておくとよいでしょう。

    <13>先端のみ外側にカールさせる

    次に、Normalを基に先端のみ外側へカールするような変形をAttribute VOPで作成。これは先ほどのRelativeBBoxで得た上下の値をそのまま使用すると良いでしょう。

    <14>「Y値が低いポイント」を原点方向へ集約させる

    Normalを再計算し、今度はrelativeBBoxで得た「Y値が低いポイント」を原点方向へ集約させることで、このような花の形状が完成します。

    <15>UVを割り当てる

    最後にUVを割り当てていきます。curveuアトリビュートを [U] に、先ほどrelativeBBoxから取得したColorアトリビュートを [V] に割り当てます。

    <16>UVアトリビュートをVertexへ移す

    Attribute PromoteでUVアトリビュートをVertexへ移しておきます。これでUVが設定されたプロシージャルな花のオブジェクトの完成です。

    <17>Loop数やHoleの値を変更してみる

    <10>で書いたとおり、Loop数やHoleの値を変更してみると花の形状をインタラクティブに変えることができます。

    <18>一連の工程をSubnetに入れておく

    一連の工程をSubnetへ入れておいて、使用するパラメータのみRelativeReferenceしHDAとして保存しておくと後々便利でしょう。

    <19>葉はGridを使用

    葉のオブジェクトに関しては、今回は単なるGridを使用しテクスチャで透過させています。

    <20>「植物のトンネル」のモデルが完成

    幹となるカーブの頂点はptnumアトリビュートなどを基準にいくつかグループ化し、それらに葉や花をCopyToPoint SOPで配置することで植物のトンネルのモデルは完成です。カーブや枝の成長アニメーションは次回解説したいと思います。

    森田悠揮 / Yuuki Morita

    フリーランスキャラクターデザイナー/デジタルアーティスト/造形作家
    国内外問わずアート、映画、ゲーム、広告、デジタル原型など様々なジャンルで活動しているフリーランスのアーティスト。ZBrushでの生物や怪獣などのクリーチャーデザインを得意とする傍ら、Houdiniを用いた動画、アート制作なども行う。初の著書 『the Art of Mystical Beasts』ボーンデジタルから発売中。
    website: itisoneness.com
    Instagram: yuukimorita
    Twitter: @YuukiM0rita

    TEXT_森田悠揮 / Yuuki Morita(@YuukiM0rita
    EDIT_みむらゆにこ / Uniko Mimura(@UNIKO_LITTLE