記事の目次

    Webでの連載1回目は「プロシージャルで作成するヒマワリの種と配列」です。 今回はHoudiniでひまわりの花とその配列をプロシージャル的に仕上げていきます。


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



    種の螺旋配置

    今回から、月刊誌からWebでの連載に移行しました。これからもよろしくお願いいたします。

    さて、今回は「プロシージャルで作成するヒマワリの種と配列」について解説していきます。この手の題材はHoudiniではよくつくられるものかと思うのですが、その割にいくらネットで探してもチュートリアル的なものがまったくないんだなと、僕がHoudiniの勉強をはじめた当初に実感した記憶があります。ということで、今回はその題材のキモとなる「種の螺旋配置」に焦点を当てて解説していきます。

    はじめにPoint Wrangleでポイント番号やポイント総数、curveUなどの代表的なアトリビュートを使い、ラインを螺旋状に変形させる処理を行います。その後、ベクトルアトリビュートを複数作成し、種の回転を制御。そこから種のモデルをCopy Stampノードで配置していきました。 非常に基本的な機能のみで構成されてますので、幅広く応用が効くのではないかと思います。



    STEP 01:らせん構造をつくる

    【1】Line SOPを作成
    初めにLine SOPを作成しシンプルなラインを作成します。



    【2】Resampleノードを繫げる
    Resampleノードを繫げ、ラインの頂点を増やします。



    【3】Point Wrangleを繫げる
    Point Wrangleを繫げて、ライン上の頂点群がらせん構造になるようVEXで記述します。



    【4】ポイントを移動させる
    まずはポイント番号をポイント総数で割ったフロート値を取得し、それをgradというアトリビュートに変換します。そのgradアトリビュートをランプパラメータで編集できるようにした後、@P.xと@P.zに対しそれぞれsin関数、cos関数を用いてポイントを移動させます。そして最後にポジションアトリビュートに対して@curveUから取得した数値分Multiplyし、スケールを調節します。



    【5】らせん構造のポイント群をつくる
    作成したパラメータを調節していき、このような黄金らせん構造のポイント群をつくります。



    【6】PolyFrameノードを繫げる
    でき上がった螺旋に対してPolyFrameノードを繫げて、NormalとTangentアトリビュートを作成しました。画像の黄色いベクトルがTangentです。



    STEP 02:種の配置

    【1】ベクトルアトリビュートを作成する
    Attribute VOPを作成します。ここでは種を配置する下準備として、配置したときの種の向きを操るベクトルアトリビュートを複数作成していきます。



    【2】NormalとTangentをダブルクロスする
    NormalとTangentをダブルクロス(外積を2回行う)してTangentを正規化すると同時に、新しく「UP」という名前のベクトルアトリビュートを作成しました。赤いベクトルがUPで、黄色が正規化されたTangentです。この段階で「N」、「UP」、「Tangent」の3つのベクトルアトリビュートが準備できました。



    【3】UPとNormalの回転制御を行う
    さらにAttribute VOPを作成します。ここではUPとNormalの回転制御を行います。QuaternionとRotate by Quaternionを用いてTangentベクトルを軸にそれぞれNとUPを回転させます。



    【4】Attribute VOPを繫げる
    さらにAttribute VOPを繫げ、同様の手法でUPを軸にNとTangentを回転させました。ランプやスライダで回転角やランダム値を調節できるようにしてあります。



    【5】ベクトルデータの準備が完了
    図のようなランダマイズされたベクトルデータが用意できました。



    【6】Pscaleアトリビュートを作成
    Pscaleアトリビュートを作成しました。VOP内でRampをGradアトリビュートに繫げ、Pscaleとしました。



    【7】switchValアトリビュートを作成
    Copy Stamp SOPへ認識させるポイントIDアトリビュートとして、switchValアトリビュートを作成。複数種類のひまわりの種のモデルをSwitchにこのアトリビュートを認識させることで、指定した値を基にどの種のモデルをどのポイントに対してCopyするかが分かれるようになります。



    STEP 03:種のモデルを作成

    【1】TubeをEditノードで編集する
    Copy Stampする種のモデルを作成していきました。TubeをEditノードで編集し、このような形状のモデルを作成します。



    【2】種に色を付ける
    Attribute VOPで種に色を付けていきました。



    【3】別の種類の種をモデリング
    別の種類の種も同様にモデリングして色を作成しました。



    【4】CdアトリビュートをMultに設定する
    CopyStamp SOP内でCdアトリビュートをMultに設定することで、基となったPointの色とかけ合わせて表現することができます。



    【5】種の配置をばらまく
    STEP 02で作成したswitchValアトリビュートをSwitchノード内で指定し、アトリビュート値を基に複数種類の種の配置をばらまく設定にします。



    【6】種の配置を確認
    Copy Stamp後は画像のようになりました。ふちの方に向かうにつれ、別の種類のひまわりの種が配置されています。



    【7】花びらを作成
    花びらを別のGeo内でモデリングし、種とMergeしたら完成です。



    【完成】



    Profile.

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

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

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