On this page |
Resampleノードは、ポリゴン/NURBS/Bezierのカーブの入力を含むすべてのカーブタイプにネイティブに動作します。 しかし、NURBS/Bezierカーブに関しては、Resampleノードは、ポリゴン近似を使用して、LODパラメータでカーブ長を計算します。 つまり、最終サンプリングポイントは元のカーブ上に乗ります。他のカーブではないジオメトリでは、Resampleの前にまず最初にポリゴンに変換されます。
入力/ジオメトリタイプ
Resampleノードは、ポリゴンに変換する機能があるため、任意のプリミティブタイプに対して動作します。対応しているタイプには、Bezierカーブ、NURBSカーブ、円、ポリゴンがあります。
サンプル
Resample SOPで一定長の旗を作成する:
-
Grid SOPを使って水平線をいくつか作成します:Primitive Type: Polygon; Connectivity: Rows; Size: 3, 1
-
Group SOPを追加します:Group: group1; Entity:Points; Number: Enable; Pattern: 0-99:1,10
-
Spring SOPを追加します:Source Group: group1;Forces/Wind: 1, 0, 0; Turbulence: 1, 0, -1
-
Resample SOPを追加して各線を一定長に切り取ります:Maximum Segments: On; Segments: 15
-
Skin SOPを追加して、パラメータをデフォルトのままにして、ViewportオプションのPoints displayを有効にします。
-
再生ボタンをクリックして、結果を確認します。必要に応じてビューを調整してください。
-
Spring SOPとSkin SOP間で表示をオンオフしてみてください。 Spring SOPでラインに力が加わることでラインが元の長さから伸ばされて変形していることに注目してください。 Resampleをした後は、ラインの長さが一定長になります。
パラメータ
Group
Resampleを適用するサーフェスのカーブのグループ。
Level of Detail
ポリゴン以外の入力を変換する詳細レベル。
Resample by Polygon Edge
ポリゴンの各エッジが、別々にResampleされます。このオプションは、入力のコーナーを保持します。
Method
Even Length Segments
そのままのエッジ長さを測定します。
Even X Segments
X軸に対してエッジを測定します。
Even Y Segments
Y軸に対してエッジを測定します。
Even Z Segments
Z軸に対してエッジを測定します。
Measure
Along Arc
Resampleするポイント間を元のカーブに沿って距離を測定します。
Along Chord
Resampleするポイント間の距離を測定します。
Maximum Segment Length
結果のエッジの最大長を指定します。
Length
結果のエッジの最大セグメント長。 センチメールで作業している場合のデフォルトは10です。メートルで作業している場合のデフォルトは0.1です。
Maximum Segments
エッジの最大数を指定します。
Segments
エッジの最大数。
Allow Primitive Attributes to Override Parameters
入力にsegment_length
またはnum_segments
のPrimitiveアトリビュートが含まれていれば、それらのアトリビュートが Length または Segments のパラメータを上書きします。
どちらかの値が0以下であれば、そのプリミティブに対してその該当するトグルが無効になります。
Even Last Segment Same Length
これが有効で、 Method が Even Length Segments で、 Maximum Segment Length が有効な時、最後のセグメントがrestよりも短くならないように すべてのセグメントが若干縮めて、すべてのセグメントを同じ長さにします。
Maintain Last Vertex
Resampleしたポリゴン内に元のポリゴンの最終CVを含めます。
Randomize First Segment Length
複数カーブをResampleする時、各カーブの最初のセグメント長さをランダムに調整します。 ランダムに選択される長さは、カーブのプリミティブ番号に基づいています。 このオプションは、Resample SOPを使用してカーブをポイントクラウドに変換した時のエイリアスの軽減に役に立ちます。
Create Only Points
新しくポリゴンプリミティブを作成するのではなく、Resampleしたカーブ上にポイントのみを作成します。 このオプションは、その結果のポイントのみが必要な時に速くすることができます。
Treat Polygons As
滑らかなサブディビジョンカーブのようにポリゴンを再サンプリングする場合は、これを通常の Straight Edges ではなく Subdivision Curves に設定します。 Interpolating Curves オプションは、ポリゴンのポイントすべてを通過する滑らかなカーブとなるようにポリゴンを再サンプリングします。
Output as Polygon Curves to be Subdivided Later
このオプションは、出力されたカーブが後でMantraやビューポートでサブディビジョン化した時と同じになるように出力ポイントを動かします。 このサブディビジョン化された形状は、サンプリングしたポイントを通過します。 これは、特にカーブを少ない数のポイントにダウンサンプリングした後にカーブをサブディビジョンカーブとしてレンダリングする時に役に立ちます。 このオプションを使用しなかった場合、サブディビジョン化されたカーブの形状と元のカーブが一致しません。
Distance Attribute
カーブ沿いの各ポイントに最も近い出力カーブのセグメント長を保存したPointアトリビュートを作成します。 これは、各出力ポイントに繋がったすべてのエッジの長さの合計の半分です。 ポイントのみを作成した時、この値を使用することで、各ポイントが表現している元のカーブの大きさを判断することができます。
Tangent Attribute
Resampleしたカーブ上の各ポイントの正規化されたカーブ接線を記録したPointアトリビュートを作成します。 ポイントのみを作成する時、この値を使用して、各ポイントでの元のカーブ接線を調べることができます。
Curve U Attribute
Resampleしたポイントのユニットカーブパラメータを記録したPointアトリビュートを作成します。 これは、該当する出力ポイントを取得するために入力カーブが分割される位置の値です。 これは、入力のポイント間隔に依存することに注意してください。
Curve Number Attribute
Resampleしたポイントのカーブプリミティブ番号を記録したPointアトリビュートを作成します。
Examples
ResampleLines Example for Resample geometry node
このサンプルでは、3つのタイプのカーブ(Polygon, NURBS, Bezier)に対してResample SOPを使う方法を説明しています。
Resample SOPは、カーブをポリゴンラインのセグメントに変換することでカーブを再構築します。
カーブは"Along Arc"や"Along Chord"で再構築されます。 "Along Arc"は再構築の基準としてHull情報を使用し、Maximum Segment LengthやMaximum Segmentの数で定義することができます。 "Along Chord"はMaximum Segment Lengthだけで定義することができます。
Maximum Segmentの数に基づいてカーブを再サンプリングすると、カーブの始点から終点までの長さを測定して、カーブを等間隔のセグメントのラインに分割されますが、長さは指定できません。 ラインのディテールはセグメントの数に比例しています。
Maximum Segment Lengthに基づいてカーブを再サンプリングすると、全体のカーブが最後のセグメント以外は同じ長さのセグメントのラインに分割されます。 Maintain Last Vertexオプションをオンにすると、最後のセグメントの長さは終点までの距離を保持するのでMaximum Segment Lengthの値以下になります。 オプションをオフにすると、最後のセグメントの長さは終点までの距離が無視され、他のセグメントと同じ長さになります。
ディスプレイツールバーのPointsを有効にして、Resample SOPがどのようにラインセグメントを再リサンプリングしているのか確認してください。
The following examples include this node.
ApplyRelationship Example for Apply Relationship dynamics node
このサンプルでは、Apply Relationship DOPを使って、Pin拘束をワイヤーオブジェクトに追加する方法を説明しています。
Formation Crowd Example Example for Crowd Solver dynamics node
変化する編成のセットアップを説明した群衆サンプル
このセットアップではエージェントの部隊を作成しています。ここでは2つのパスが作成されています。 部隊の中央部分から動き始め、2つの編成に分かれます。 1つが左側に、もう1つが前方に行進して、ゆっくりとその編成が、くさび形に変わります。
エージェントを編成内に維持させるために、独自のジオメトリ形状を使用しています。 その形状は、個々のエージェントに対してゴールとして使用されるポイントです。 その形状をブレンドシェイプさせることで、別の編成に変化させることが可能です。 crowdsourceオブジェクトの中に入って、その構造を確認してください。
Note
アニメーションクリップは、シーンを再生する前にベイクするのに必要です。これは、サンプルをCrowdsシェルフから作成した場合に自動的に行なわれます。 そうでない場合は、シーンファイルを希望の場所に保存し、'/obj/bake_cycles' ROP NetworkのRenderをクリックして、ファイルを書き出します。 それらのファイルのデフォルトのパスは、${HIP}/agentsです。
Street Crowd Example Example for Crowd Solver dynamics node
2つのエージェントグループによるストリートのセットアップを説明した群衆サンプル。
このセットアップは、2つのエージェントグループを作成します。 黄色のエージェントがゾンビで、ストリートのパスに沿います。青色のエージェントがぶらついている歩行者で、ゾンビが近づくと走ります。
エージェントの状態を変更するトリガーは、crowd_sim DOPNETでセットアップします。 ゾンビのグループは、信号との距離と信号の色を使用し、信号が赤になると停止状態に変わります。 生存者のグループは、ゾンビが近づくと走行状態に変わります。
Note
アニメーションクリップは、シーンを再生する前にベイクするのに必要です。これは、サンプルをCrowdsシェルフから作成した場合に自動的に行なわれます。 そうでない場合は、シーンファイルを希望の場所に保存し、'/obj/bake_cycles' ROP NetworkのRenderをクリックして、ファイルを書き出します。 それらのファイルのデフォルトのパスは、${HIP}/agentsです。
CurveForce Example for POP Curve Force dynamics node
このサンプルでは、POP Curve Forceノードを使って、パーティクルシミュレーションとFLIP流体シミュレーションの流れを制御する方法を説明しています。
BaconDrop Example for POP Grains dynamics node
このサンプルは、ベーコンをトーラス上に落とすデモです。 これは、テクスチャマップから2Dオブジェクトを抽出し、同じ肉の筋目をしたオブジェクトをDOPへ繰り返しで追加する方法を説明しています。
BillowyTurbine Example for Pyro Solver dynamics node
このサンプルでは、Pyro SolverとSmoke Objectを使って、 タービン(RBDオブジェクト)を通過した煙を渦巻くように放出させる方法を説明しています。 タービンの羽は、Copy、Circle、AlignのSOPでプロシージャルにモデリングしています。
CreepBlob Example for Creep geometry node
このサンプルでは、メタボールをサーフェス上に這わせる方法を説明しています。 このケースでは、サーフェスは捻じ曲がったチューブで、メタボールは管を通過して押し出される"ブロッブ"のように見えます。
チューブは、メタボールを這わせるために作成しています。 円は同じチューブからプロファイルを抽出して作成しています。 円はCreep SOPでチューブに沿ってアニメーションしています。
メタボールは抽出した円のポイントに接続して"ブロッブ"を作成しています。
CreepParticleTubeA Example for Creep geometry node
このサンプルでは、パーティクルがサーフェス上を這う2通りの方法を説明しています。このケースでは、サーフェスは捻じ曲がったチューブです。
1つ目がサーフェスの内側にパーティクルを這わせる方法、2つ目がサーフェスの外側にパーティクルを這わせる方法を説明しています。これはCreep SOPのz scaleを変更することで、サーフェス法線方向にパーティクルをオフセットしています。
パーティクルはチューブから抽出した円から発生しています。
FurBallWorkflow Example for Fur geometry node
このサンプルでは、Fur SOPとMantra Fur Procedural SHOPをアニメーションするスキンジオメトリに適用する方法を説明しています。 CVEXシェーダを使って、ジオメトリに割り当てられたアトリビュートに応じて髪の毛の見た目を定義しています。
PrimCenter Example for Primitive geometry node
このサンプルでは、Primitive SOPを使って正しくプリミティブをカーブに沿わせる方法を説明しています。
Sweep SOPはデフォルトでは、プリミティブの原点をカーブ上に配置します。 プリミティブの重心が原点から離れていると、プリミティブもカーブから離れて配置されます。
正しくプリミティブの重心をカーブに配置するには、その重心を原点にしなければなりません。 それをするために、Primitive SOPを使用しています。
ResampleLines Example for Resample geometry node
このサンプルでは、3つのタイプのカーブ(Polygon, NURBS, Bezier)に対してResample SOPを使う方法を説明しています。
Resample SOPは、カーブをポリゴンラインのセグメントに変換することでカーブを再構築します。
カーブは"Along Arc"や"Along Chord"で再構築されます。 "Along Arc"は再構築の基準としてHull情報を使用し、Maximum Segment LengthやMaximum Segmentの数で定義することができます。 "Along Chord"はMaximum Segment Lengthだけで定義することができます。
Maximum Segmentの数に基づいてカーブを再サンプリングすると、カーブの始点から終点までの長さを測定して、カーブを等間隔のセグメントのラインに分割されますが、長さは指定できません。 ラインのディテールはセグメントの数に比例しています。
Maximum Segment Lengthに基づいてカーブを再サンプリングすると、全体のカーブが最後のセグメント以外は同じ長さのセグメントのラインに分割されます。 Maintain Last Vertexオプションをオンにすると、最後のセグメントの長さは終点までの距離を保持するのでMaximum Segment Lengthの値以下になります。 オプションをオフにすると、最後のセグメントの長さは終点までの距離が無視され、他のセグメントと同じ長さになります。
ディスプレイツールバーのPointsを有効にして、Resample SOPがどのようにラインセグメントを再リサンプリングしているのか確認してください。
SweepCurve Example for Sweep geometry node
このネットワークには、Sweep SOPのサンプルがあります。NURBSのカーブとNURBSの円をそれぞれSweep SOPのBackboneの入力に使用しています。
Sweep SOPのCross Sectionのスケールを制御することで色々な効果を表現することができます。 最後に、Sweep SOPで作成したジオメトリにSkin SOPを使ってサーフェスを張っています。
Fuzzy Logic Obstacle Avoidance Example Example for Fuzzy Defuzz VOP node
このサンプルでは、Fuzzy Logicコントローラを使用して実装されたエージェントの障害物回避とパスへの追従を説明しています。
See also |