記事の目次

    今回はHoudiniの基本的なアトリビュートのみで、メッシュやパーティクルがうねうねと動くようなエフェクトを作成していきます。


    TEXT_森田悠揮 / Yuuki Morita(OnenessArt
    EDIT_三村ゆにこ / Uniko Mimura(@UNIKO_LITTLE




    Houdiniの基本的なアトリビュートのみを使用

    大枠として、まずはポイントカラーをノイズで生成し、そのカラーを基にPOP Network内で使用するVelocityを作成します。POP Network内でパーティクルに対して少しオフセットを加えてから、VDBでポリゴンへ変換することでメッシュ自体が動いているような効果を作成することができます。

    さらにRGBをHSVへ変換し、色相や彩度、明度をベースとしたアトリビュートの編集も少し行なっています。今回は、全てのアトリビュートがカラーデータを基につくられています。非常にシンプルかつ編集が簡単なシーンで、初心者の方も気軽に挑戦できるかと思います。


    STEP 01:モデルを読み込み、ノイズカラーを作成

    【1】Fileノードで読み込む
    ZBrushで作成した頭部のオブジェクトをFileノードで読み込みます。



    【2】ノイズカラーを作成
    Attribute VOP内でTurbulent Noiseからノイズカラーを作成します。



    【3】値はあえて-1から1の間に
    今回はこのカラーアトリビュートを基にVelocityを作成するので、値はあえて[-1]から[1]の間に。ビュー上ではかなり暗い色になっています。



    【4】StyleをAttribute Gradientに変更
    続いてPolyFrameノードを作成し、StyleをAttribute Gradientに変更します。指定したベクトルアトリビュートを基に新たな方向をもったベクトルアトリビュートを作成してくれます。今回は「v」という名前で作成します。



    【5】Attribute PromoteでPointアトリビュートへ変換
    「v」アトリビュートは現状ではPrimitiveアトリビュートなので、 Attribute PromoteでPointアトリビュートへ変換します。



    【6】ベクトルアトリビュートを作成
    このような感じのベクトルアトリビュートを作成できました。



    STEP 02:渦巻くアトリビュートを作成

    【1】「v」アトリビュートの方向を変更
    Attribute VOP内で「v」とNormalとの外積を計算して、「v」アトリビュートの方向を変えます。



    【2】渦を巻くような「v」アトリビュート生成
    カラーアトリビュートを基にした渦を巻くような「v」アトリビュートが生成されました。



    【3】Scatterノードでポイント群を作成
    Scatterノードでポイント群を作成後、POP Networkへ挿します。



    【4】POP Network内の構成
    POP Network内はこのような構成です。



    【5】「v」アトリビュートをポイントクラウドで取得
    まず、POP VOPノード内で、Scatterしたポイントがもつ「v」アトリビュートをポイントクラウドで取得し、「v」に繋げます。これにより、現在のポイント位置から最も近いScatterポイントのもつ「v」を自身の「v」として出力することができます。ついでに、MultiplyでVelocityの強度を調節しました。



    【6】N方向へポジションを加算
    続いてPOP Wrangleノードで、Cdアトリビュートが[0]より小さい部分のみ、[-N]方向へポジションを加算しています。



    次ページ:
    STEP 03:ParticleをそのままRedshiftでレンダリング

    [[SplitPage]]

    STEP 03:ParticleをそのままRedshiftでレンダリング

    【1】ParticleをいったんVDBに変換
    POP Networkから出力されたParticleをいったんVDBに変換します。今回は[VDB From Particle Fluid]を使用しました。そして[Convert VDB]でポリゴン化します。



    【2】[Attribute Transfer]でPolygonに移す
    さらに、[Attribute Transfer]でパーティクルがもつカラーデータを変換したPolygonに移します。



    【3】CdアトリビュートをVOP内で調節
    このままでは、まだCdアトリビュートがマイナスの値をもっているので、VOP内で調節します。Cdアトリビュートをいったん[Fit Range]ノードで[0)から[1]の値に変換し、[RGB to HSV]ノードと[Vector to Float]ノードでいったん彩度やバリュー値に分解します。その後、彩度のみMultiplyで微調節しました。最後に再び[HSV to RGB]ノードで正規Cd値に戻しています。



    【4】確認
    このような感じの色になりました。



    【5】メッシュをディスプレイス
    続いて、先ほど作成したCdアトリビュートを基に、メッシュをディスプレイスさせます。再びAttribute VOP内でHSVに変換し、彩度の強いところだけN方向にディスプレイスをかけました。



    【6】Particleを[Peak]でN方向に移動
    最後に、POP Networkから出力されたParticleを[Peak]でN方向に少し移動させ、別ジオメトリノード内で[Object Merge]で読み込みます。



    【7】ParticleをそのままRedshiftでレンダリングする際の注意
    ParticleをそのままRedshiftでレンダリングする際は、Redshift OBJオプション内の[Render Object As Particles]というチェックボックスをONにして[Pscale]の値を変更するか、[Global Scale Multiplier]スライダでパーティクルサイズを決定する必要があります。



    【8】Point AttributeノードでCdを指定
    Redshift Material内の[PointAttribute]ノードでCdを指定して任意のColorスロットへ挿すと、ポイントがもつCdアトリビュートをそのままレンダリングすることができます。



    【完成】



    Profile.

    • 森田悠揮 / Yuuki Morita
      フリーランスキャラクターデザイナー/デジタルアーティスト/造形作家

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

      website: itisoneness.com
      Instagram: yuukimorita
      Twitter: @YuukiM0rita