絶対に挫折しないHoudini入門 5 - モデリング 1
モデリング
Houdiniでもモデリングすることができます。ZBrushやBlenderの様なモデリングに特化したツールに比べれば、操作性はやや劣りますが、プロシージャルモデリングは強力なモデリングアプローチです。
モデリングツールは一般的にマウスやペンタブで直接ジオメトリを操作するものが多いですが、Houdiniではジオメトリを直接編集することは最小限に済ませ、後はノードやスクリプトを駆使してモデリングを行います。
Box upとCurve up
HoudiniのモデリングではBox upとCurve upという2つのアプローチを意識するとことになります。
"Box up"モデリングとは、ポリゴンのボックスや球のような基本形状から始めて、追加、押し出し、修正、カット、削除、スムーズジングなどをして、欲しい形状を作り上げることを意味します。
"Curve up"モデリングとは、形状を定義する基本曲線を作成して、ツールを使ってその曲線からサーフェスを作成します。
それぞれのヘルプページではPolyExtrudeノードやCurveノードなどのモデリングに必要なノードが紹介されているので、それぞれ使用方法を理解しておきます。
Box up
Box upモデリングの代表的なノードはPoly Extrudeノードです。ヘルプページにはたくさんのサンプルが載っています。これを使うだけでもかなりいろいろな形状を作ることが出来ます。
Curve up
Curve up モデリングはBox upモデリングに比べると最初はとっつきにくいかもしれませんが、Box upモデリングよりも複雑だったり有機的な形状を作りやすい手法です。
Curve upモデリングの主役はCurveノードです。まずはCurveの作成/編集方法を理解しておきます。これはヘルプを読めば大丈夫だと思います。
Box upモデリングでは移動、回転、スケールといったxyzのパラメータをそうさしますが、Curve upモデリングではuvと言うパラメータが重要になります。
xy平面と言ったりする様に、最低2つの軸があれば面を作ることができます。大雑把に言うと、Curve upモデリングにおけるuvとはユーザーが自由に決めることのできる面を作るための軸のことです。
xyz軸と被らないようにuvと言う文字を使用しています。
Curve upモデリングではこのuv軸を使用して実に多種多様な形状を作成することができます。uv軸はCurveノードを使用して作成することが多いです。
SkinノードやRailsノードなどのノードは初見では意味不明な挙動をしているように感じるかもしれません。出来るだけ簡単な例で、どのようにuv軸を作成し組み合わせると、どのような面が作られるのか色々試して見るのが良いです。まずはSkinノードの理解から始めると良いでしょう。
Skinノードのヘルプにはuvの組み合わせ方と作成される面の種類がリストアップされています。これらのパターンを理解しておけば、Curve upモデリングを使いこなせるようになります。
ヘルプには簡単なイラストしか載っていないのでSkinノードで実際に再現してみます。uを赤、vを緑の線で示しています。
一枚の境界サーフェス
パッチ
線形ルールドサーフェス/スキンサーフェス
SkinノードにはPreserve Shapeというオプションがあります。ONにすると、作成されるサーフェスがCurveに厳密に一致します。
Preserve Shape: OFF
Preserve Shape: ON
特別なスイープサーフェス
uに加えてvが登場しました。このパターンはuとvの端点が同じであれば、カーブに厳密に沿ったサーフェスが作成されます。
uvの端点が同じ位置の場合。
uvの端点が同じではない場合。
三角形サーフェス
u軸が2つ、v軸が1つで三角形を構築しています。
四角形サーフェス
特別なM-rails
Multiple-Boundary Surface
Sweepノード
Sweepノードは断面曲線(Cross Sections)と背骨曲線(Backbone Curves)を指定して形状を定義します。
注意しなければならないのはヘルプに書かれている以下の一文です。
このノードは、 すべての断面曲線 がXY平面内の原点を基準に+Yが上方向でモデリングされていることを前提にしています。
断面曲線がxy平面基準でないと訳の分からない形状が出来てしまいます。
Railsノード
Railsノードはかなりクセの強いノードです。理解のために、まず断面曲線、背骨曲線共にPolygonで使用することをお勧めします。
まず、xy平面を基準に断面曲線を作成します。Curveノードを使いますが、Primitive TypeはPolygonです。また、この時、断面図のポイント0番と最後(この例では5番)を底辺にしておきます。
次に背骨曲線を作成します。これもCurveノードでPrimitive TypeはPolygonです。Railsノードは最低2本の背骨曲線を要求します。なので、2本作成します。向きは揃える必要があります。また、ポイントの数も同じでなければなりません。
作成した断面曲線と背骨曲線をRailsノードにつなぎます。この様になるはずです。
断面曲線が作成されるのは、背骨曲線のポイントの位置です。背骨曲線に断面曲線の底辺が沿っています。これはRailsノードのUser Vertexが「End to End」になっているためです。
試しにUser Vertexを「Specific Range」に変えてみます。Connection Verticesのフィールドが有効になり、任意のポイント番号を指定できるようになります。指定したポイント番号が背骨曲線に沿うようになります。
以上がRailsノードの基本的な使い方です。さらに断面曲線、背骨曲線ともにPrimitive TypeをNURBSに変えてみるとどうなるでしょうか。
作成される断面曲線の間隔が等間隔になり、背骨曲線とも隙間が出来てしまいました。この様にRailsノードをNURBSで使うと、良くも悪くも"あいまい"な感じでモデリングすることになります。
最後にもう1点。Railsノードは3つ以上の背骨曲線も使用できます。この様になります。
Revolveノード
Revolveノードもとても便利なノードです。こちらは簡単なので詳細はヘルプで確認してください。
Poly Exapnd 2Dノード
Poly Expand 2Dノードはラインから道などを作るのに役立ちます。
ポリゴンを直接編集する
アルゴズミックに形状を作るのが難しくて、どうしてもポリゴンをマウスなどで編集したいと言うケースはあります。既に登場したCurveノードもポリゴンを直接編集するタイプのノードですが、Editノードを使うと、ポイントだけでなく、辺や面を選択して編集することが出来ます。
もしこの記事があなたのお役に立てたなら幸いです。 よろしければサポートをお願いします。今後の制作資金にさせていただきます!