So-net無料ブログ作成
検索選択
前の1件 | -

イラストっぽい針葉樹の作成(2) [Houdini]

前回に引き続き、今回は幹モデルを作成します。

tp052.jpg

完成イメージはこんな感じです。
これを前回の葉群モデルとマージして完成となります。


では、モデリングをはじめましょう。

前回の針葉樹モデルのシーンを開き、tree_pineジオメトリのSOPモードに入ってください。

今回作成するネットワークは以下の図のようになっています。

tp051.jpg

左側の列が前回の葉群モデル、右側が幹モデルのネットワークです。
最後にMerge SOPでマージしています。


[Circle SOP] circle2

tp053.jpg

tp063.jpg

  • Primitive Type : Polygon
  • Orientation : ZX plane
  • Radius : 0.5 0.5
  • Divisions : 8
  • Arc Type : Open Arc

分割数8のオープンポリゴンです。


[Point SOP] point3

tp053.jpg

tp064.jpg

  • Texture MAPU : $PT/($NPT-1)

Texture Uはポイント番号を0~1の比率に正規化しています。

 

[Copy SOP] copy2

tp054.jpg

tp065.jpg

  • Copyタブ
  • Number of Copies : 6
  • Transform Cumulative : OFF
  • Translate Y : ($CY/($NCY-1))^2
  • Scale X : 1-$CY/($NCY-1)*(1-0.2)
  • Scale Z : ch("sx")

Position Y はコピーカウントを正規化し、2でべき乗しています。これにより、コピーされるサークルは徐々に離れていくようなコピーになります。基数を正規化しているので、全体の高さは必ず1です。
Scale X は幅のスケールを設定しています。0.2は最終コピーのスケール値となります。
Scale Z はScale X の値を参照しています。

 

[Point SOP] point4

tp054.jpg

tp066.jpg

  • Texture MAPV : $BBY

Texture V はバウンディングYの値を適用しています。これにより、Texture V は高さに応じた0~1の値になります。

[Skin SOP] skin2

tp055.jpg

tp067.jpg

スキンサーフェイスを生成します。

 

[Transform SOP] xform2

tp056.jpg

tp068.jpg

  • Scale X : 1.2
  • Scale Y : bbox("../xform1",D_YMAX)*0.9
  • Scale X : ch("sx")

Scale X Z は幅を決定しています。
Scale Y は葉群ネットワークの[xform1]SOPのバウンディングYの値を参照しています。
bbox()はバウンディング関数で、指定したSOPのバウンディング情報を取得します。
これにより、幹モデルは葉群モデルと同じ高さになります。
このモデルは最終的に葉群モデルとマージするのですが、[xform1]と同じ高さだと先っちょが飛び出してしまうので、0.9を乗算して少し短くしています。


[Reverse SOP] reverse1

tp057.jpg

tp069.jpg

Reverse SOPはポリゴンを反転するSOPです。

 

[Facet SOP] facet2

tp058.jpg

tp070.jpg

  • Consolidate : Consolidate Points Slow
  • Cusp Polygons : ON
  • Cusp Angle : 90
  • Remove Degenerate : ON
  • Post-Compute Normals : ON

このFacet SOPは法線計算するSOPです。
Consolidate は距離が近いポイントを融合します。距離はDistanceで調整します。
これにより、法線は平均化されるのでスムースシェーディングになります。

しかし、このようにポイントを融合してしまうとUVに不具合が出ます。
UV viewportで前のSOPとこのSOPとのUVの違いを確認してください。
このSOPのUVでは左端と右端のポイントが消えています。ポイントが融合されたのでUVがくっついてしまっためです。
そこで、このSOPで得た法線を元のモデルに適用するために、後続のAttribute Transfer SOPで法線情報のみを受け取るようにします。

 

[Attribute Transfer SOP] attribtransfer1

tp058.jpg

tp071.jpg

  • Points : N 

Attribute Transfer SOPはinput2のアトリビュートをinput1に転送するSOPです。
トポロジーが異なっていても転送することが出来ます。
input2にfacet2を接続することで、facet2のアトリビュートを転送することができます。

ここではPointsのNを指定しているので、法線情報のみが転送されます。
他のパラメータに関しては、input1もinput2もポイント数が違うだけで全く同じ位置なので、Distanceなどを調整する必要はありません。デフォルトのままでOKです。

法線が転送されていることと、UVが正しく継承されていることを確認してください。

 

シェーダー [Vex Super Material] tree_pine_trunc


下図のようなテクスチャを用意し、シェーダーを作成してください。

tp042.jpg

シェーダーの作成手順は前回の記事を参考にしてください。
名前を tree_pine_trunc としてください。

 

[Material SOP] material1

tp059.jpg

tp072.jpg

  • Material : /shop/tree_pine_trunc

シェーダー[tree_pine_trunc]をマテリアルに割り当てます。


幹モデルが完成しました。
あとは葉群モデルとマージすれば完成です。


[Merge SOP] meage1

tp052.jpg

 これで完成です。
形状や分割数などをパラメータで調整することが出来ます。
色々試してみてください。


…おっと、葉群モデルが片面ポリゴンのままでしたね。

tp060.jpg

下図のようにネットワークを追加してください。

tp077.jpg 

[Facet SOP] facet3 でPre-Compute Normal をチェックしてください。

tp073.jpg

tp074.jpg 

これで裏面のポリゴンもできました。
下から見上げても大丈夫です。

tp061.jpg

これで、モデリング用ネットワークの作成は完成しました。


が、実はここからが本領発揮なのです。
ネットワークにはモデリングの全ての要素が残っています。このため、「葉群の構成を増やしたい、もう少し全体を細くしたい、ギザギザを増やしたい、幹を太くしたい、etc...」といったリテイク作業を素早く柔軟に行うことができ、さまざまなアレンジをランダムで大量量産、なんてことも容易です。
通常の3DCGツールでは苦手な部分ですね。

では、次回はこの針葉樹モデルをサブネットにして各パラメータを外部参照化してみようと思います。

 


前の1件 | -

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。