On this page |
Lattice変形は、単純なジオメトリに加えた編集情報を受け取り、その編集情報と同等の変形を、キャラクタの腕などのソースジオメトリに加えます。 例えば、ラティスを膨らむように編集すると、それに応じてジオメトリも膨らみます。
Latticeノードでは、コントロールジオメトリの指定に2種類のメソッドがあります。 1つ目が Latticeデフォーマ です。これは、 Bound SOPやBox SOPで作成した特定の並びのポイントを持つコントロールジオメトリが必要です。 2つ目が、 ポイントデフォーマ です。これは、 任意の 形状をコントロールジオメトリにすることができます。
Note
Pw
の値は、ポイントベースの変形をした時のLattice SOPの結果に影響します。
Latticeの使い方 ¶
-
Deform タブのLatticeツールをクリックします。
-
変形させるポイントを選択して、Enterを押して選択を確定します。
-
再度Enterを押してオブジェクトの境界ボックスからケージを作成するか、他の変形ポイントクラウドを選択してEnterを押して選択を確定します。
-
ネットワークエディタでTransformノードをクリックします。
-
シーンビューでケージのポイントを動かして、ケージ内の形状を変形します。
Latticeデフォーマ ¶
ソースジオメトリの境界ボックスから単純なLatticeを作成するには、ソースジオメトリにBound SOPを追加します。 Divisions をオンにして、値を利用したい制御点の数に設定します。 Latticeノードを作成して、上記のようにネットワークを接続します。 Latticeノードの Lattice をオンにして、 Divisions の値を同じ値に設定します。
Tip
Bound SOPは、フレーム毎にソースジオメトリの形状から境界ボックスを再計算します。 Bound SOPを使ってLatticeを作成し、ソースジオメトリをアニメーションさせる場合、 Latticeがソースジオメトリと一緒にアニメーションさせたくないのであれば、Boundノードをロックしたい時があります。
Note
Latticeを生成するノードとLatticeノードの“Division”の値は共に同じでなければなりません。そうしないとLatticeノードがエラーを出します。
Houdiniは、補間タイプをBezierに設定した時には30までの分割数のみをサポートしています。
他の方法では、Box SOPを使えば、ソースジオメトリの境界ボックスと連動しない任意のLattice形状を作成することができます。 Primitive Type をPolygonに、 Divisions をオンにして、値を利用したい制御点の数に設定します。
以下に示すポイントデフォーマと一緒にLattice形状を“任意のコントロールジオメトリ”下で使うこともできます。 これは、他と異なる結果になり、Lattice内のポイントの影響範囲を制御することができます。
ポイントデフォーマ (任意のコントロールジオメトリ) ¶
ポイントデフォーマは、任意のコントロールジオメトリを使用することができます。 さらに、Restコントロールジオメトリの各ポイントの影響範囲を制御することができ、 そしてキャラクタモデリングでボーンがスキンサーフェスをキャプチャーするのと同様に、コントロール形状にジオメトリを“キャプチャー”することができます。 ポイントデフォーマを使えば、単純化されたローポリゴンのキャラクタやプロップ(小物)を操作することで、元のキャラクタやプロップ(小物)を変形することができます。
ポイントデフォーマは、Restコントロールジオメトリの各ポイントにメタボールを作成し、交差する“コントロール”メタボールの密度に基づいて、ソースジオメトリの各ポイントに影響度を割り当てることで動作します。
キャプチャー領域を可視化するには、Latticeノードでディスプレイフラグを設定し、Latticeノードのパラメータの Visualize Point-Specific Radii をオンにします。 すると、3Dビューに各ポイントでの影響範囲が表示されます。
Restコントロールジオメトリ内の各ポイントの影響範囲を制御するには、 Radius パラメータを使います。
Radius の値を大きくすると、各コントロールポイントが影響を与えるソースジオメトリのポイントが多くなって平均化されていくので、より滑らかになります。 反対に小さくすると、各コントロールポイントが影響を与えるソースジオメトリのポイントが少なくなるので、非常にシャープな変形になります。
Latticeは Kernel function パラメータで選択したメタボールカーネルから影響範囲の減衰レベルを計算します。 Latticeの挙動は、マグネットメタボールをソースジオメトリのすべてのポイントに適用するのと同等です。
Tip
コントロールジオメトリは、変形されるジオメトリを囲い込んでください。
Warning
“Rest”と“Deformed”のバージョンのコントロールジオメトリは、同じポイント数でなければなりません。 Latticeの場合では、それらのコントロールジオメトリは特定の並び(BoxとBoundのノードで自動的に作成される並び)であ る必要があります。 通常では、“Deformed”コントロールジオメトリは“Rest”コントロールジオメトリと同じノードから派生していて、適用して いる編集が異なるだけなので、このことは、上記のネットワークレイアウトを使っていれば意識する必要がありません。 コントロールジオメトリの編集に使用するノードは、必ずコントロールジオメトリのトポロジーを変えないでください。
パラメータ ¶
Group
変形させる1番目の入力のポイント。
Lattice ¶
概要
標準的な空間のLatticeを使って変形します。
Divisions
必ずLatticeグリッドの分割数に合わせてください。
Interpolation
変形させるジオメトリのポイントが、このメソッドによって補間されます。
Points ¶
概要
任意のポイントクラウドを使って変形します。
Rest Group
使用するRest Geometry(静止ジオメトリ)のポイント。それに対応する変形させるジオメトリのポイントが暗黙のDeformグループとして使われます。
Kernel
ポイントの影響範囲を決めるために使用するメタカーネル。
Radius
ポイントキャプチャー領域のサイズ。
Normalize Threshold
キャプチャー領域境界で変形されるサーフェスジオメトリの変わり目の鮮明さを定義します。 閾値をゼロにすると、変わり目が急勾配になります。 閾値を大きくすると、変形されるデータソースジオメトリは滑らかになります。 技術的には、閾値はウェイトを正規化した後の値を定義します。 指定したポイントでのすべてのキャプチャー領域のトータルウェイトが、この閾値よりも大きければ、そのポイントのウェイトが正規化され、小さければ、正規化されません。
Visualize Point-Specific Radii
Rest Geometry(静止ジオメトリ)の各ポイントの半径を意味するガイド球の表示をオンにします。
Note
ポイントデフォーマの Radius をポイント毎に上書きするには、例えば、point("../attribcreate1",$PT,"rad",0)
のようなポイントエクスプレッションを使う必要があります。
入力 ¶
Data Source
変形させるジオメトリ。すべての入力タイプをサポートしています。
Initial Source
“Rest”バージョンのコントロールジオメトリ。
Deformed Source
“Deformed”バージョンのコントロールジオメトリ。Latticeは、この Deformed Source と Initial Source の入力の差分を使って、 Data Source 入力に適用する変形を計算します。
ローカル変数 ¶
Note
名前の最後が2
の変数名は、もし該当すれば2番目の入力のジオメトリを参照します。例えば、$PT2
は2番目の入力の現行のポイント番号を意味します。
AGE
パーティクルが生存する秒数。
ARC
L-systemsのルートからの円弧長。
AREA
プリミティブの表面積(Measure SOPで作成)。
BBX, BBY, BBZ
境界ボックス内におけるポイントの相対位置(0から1)。
CA
PointまたはVertexのアルファ値。
CEX, CEY, CEZ
ジオメトリの重心。
COMX, COMY, COMZ
質量の中心。
CR, CG, CB
PointまたはVertexのDiffuseカラー。
CREASE
PointまたはVertexのCrease Weightの値。
CY , NCY
$CY
は、Copy SOPで生成した現行のコピー番号で、0
から始まります。$NCY
はコピーの総数です。Copy SOPの2番目の入力を使用している場合は、$CY
の代わりに$PT
を、$NCY
の代わりに$NPT
を使用します。
DIST
パーティクルから最後の衝突までの距離。
DIV
Polywire(L-systemsで作成)に沿わせる円の分割数。
DRAG
ポイントの抵抗力。
GEN
L-systemsで生成したもの。
ID
入力のパーティクルのID。
LAGE
L-systemで計算したポイントの寿命。
LIFE
寿命における経過した時間の割合(0から1)。
LOD
詳細レベル。
MAPU, MAPV, MAPW
ポイントまたは頂点のテクスチャ座標。
MASS
ポイントの質量。
MAT
現行マテリアルの文字列名(shop_material
アトリビュートの値)。
MAXLAYER
表示でアクティブとみなされているレイヤーの数。
NPT
テンプレートジオメトリでのポイントの総数。
NX, NY, NZ
法線ベクトル。
NX2, NY2, NZ2
Point SOPの2番目の入力のポイントの法線ベクトル。
PERIMETER
プリミティブの外周の長さ(Measure SOPで作成)。
PR, NPR
プリミティブ番号とプリミティブの総数。
PSCALE
パーティクルのスケール。
PT
現在処理しているポイントのポイント番号。
RESTX, RESTY, RESTZ
Rest Position(静止位置)。
SEGS
カーブをPolywire(L-systemsで作成)に分割するセグメント数。
SIZEX, SIZEY, SIZEZ
境界ボックスのサイズ。
SPRINGK
ポイントの弾性。
TENSION
エッジのスプリング張力。
TX, TY, TZ
ポイントの位置。
TX2, TY2, TZ2
Point SOPの2番目の入力のポイントの位置。
TW
WEIGHTを参照してください。
UPX, UPY, UPZ
Upベクトル。
VTX, NVTX
頂点番号と頂点の総数。
VX, VY, VZ
Velocityの方向。
WEIGHT
ポイントスプラインのWeight。
WIDTH
カーブの幅。カーブとL-Systemで生成したPolywireをレンダリングする時にMantraで使われます。
XMIN, XMAX
ジオメトリの境界ボックスのX座標の範囲。
YMIN, YMAX
ジオメトリの境界ボックスのY座標の範囲。
ZMIN, ZMAX
ジオメトリの境界ボックスのZ座標の範囲。
Examples ¶
BallBounce Example for Lattice geometry node
このサンプルでは、Lattice SOPを使って跳ね返るボールの作成方法を説明しています。
DeformLattice Example for Lattice geometry node
Lattice SOPは、ソースジオメトリを囲んだ単純なジオメトリを操作することでアニメーションする変形を作成することができます。
このサンプルでは、Lattic SOPでアニメーションするBOX SOPを使用してソースジオメトリを変形する方法を説明しています。 このケースでは、ソースジオメトリは球を使用しています。
LatticePerChunk Example for Lattice geometry node
このサンプルでは、ForEach SOPを使ってLattice SOPを球の各セグメントに適用する方法を説明しています。
See also |