On this page |
概要
これは非常に強力な低レベルにアクセス可能なノードであり、VEXに詳しい熟練者が、コードを使ってアトリビュートを調整することができます。
このノードは、Attribute VOP SOPに相当しますが、VOPネットワークの代わりにテキストのVEXスニペットを使用します。
Warning
このノードを扱うには、VEX言語を理解している必要があります。 そうでないと、このノードを使えば不正なコードを記述しがちです。
このノードは、入力ジオメトリ内の DetailまたはすべてのPoint/Primitive/Vertex ( Class パラメータに依存)に対してスニペットを実行します。 スニペットは、アトリビュートを変更することで、入力ジオメトリを編集することができます。 アトリビュートとVEX関数を使うことで、他のジオメトリの情報にアクセスすることができます。
-
ノードをクリックすると、スニペットからのエラー出力を確認することができます。
-
VEX関数の
ch
を使ってパラメータを評価することができます。 パスは、このノードの相対パスです(ch("parm")
は、このノードのparm
パラメータを評価します)。 この評価は、現行時間で実行されます。 -
Attrib Create SOPとは違い、このノードはローカル変数を使用しません。 さらに、すべてのバッククォートによるエクスプレッションと
$F
変数は、現行時間ではなく、フレーム1で評価されます。 代わりに@Frame
、@Time
、@TimeInc
を使ってください。
構文
パラメータ
Code
Group
プログラムの実行を適用する入力ジオメトリのポイントのサブセット。 このフィールドを空っぽにすると、入力のすべてのポイントに影響を与えます。
Group Type
グループを構成しているタイプ。
Run Over
修正するジオメトリアトリビュートのクラス。 Numbers に設定した時、読み取り専用のDetailアトリビュート以外のアトリビュートはバインドされません。
Number Count
Run Over を Numbers に設定した時の反復数。
@elemnum
は0(含む)から始まり、この数(含まない)までの反復番号で、@numelem
はこの数です。
このモードの時は読み取り専用のDetailアトリビュート以外のアトリビュートはバインドされません。
Thread Job Size
Run Over を Numbers に設定した時に任意のスレッドで同時に走る反復最大数。 これが Number Count 以上の時、VEXコードはシングルスレッドで実行されます。 各反復に非常に長い時間がかかる場合は、これを1に設定します。とはいえ、この値を大きくすれば大きなメリットが得られることが多いです。特に各反復にかかる時間が短い場合や同時に複数の反復を実行しても処理が重複しない場合です。
VEXpression
Pointアトリビュートを操作するVEXコードのスニペット。
@variable_name
構文を使えば、ジオメトリアトリビュートにアクセスすることができます。
Attributes to Create
アトリビュートの名前がこのパターンに一致した場合のみ、そのアトリビュートを作成します。 デフォルトのパターンでは、どのアトリビュートも作成されます。
*
を許可したい名前のリストに置換することで、作成するアトリビュートを制限することができます。
バインドしたアトリビュート(例えば、vtxnum
)を作成することはできないので、無視されます。
Enforce Prototypes
@
構文を使った自動バインドは便利ですが、あなたのシステムが複雑になるほど、@
バインドでのタイプミスが、存在しないアトリビュートと
何も警告せずにバインドしてしまう危険性があります。
このオプションは、すべての@
バインドを使用前にプロトタイプとして明示的に宣言するように強制します。
Bindings
Autobind by Name
自動的に名前でアトリビュートをパラメータにバインド(紐付け)します。 なにかしらの理由で、CVEXパラメータの名前を、アトリビュート名とは別の名前にしておく必要がある場合は、これをオフにして、 Number of Bindings パラメータを使って、 Attribute Name と VEX Parameter のマッピングをセットアップします。
IntegerアトリビュートはIntegerパラメータにバインド(紐付け)します。 Floatアトリビュートは、タプルのサイズに応じてFloat、Vector、Point、Matrix、Matrix4にバインド(紐付け)します。 Stringアトリビュートは文字列にバインド(紐付け)します。
Autobind Groups by Name
自動的に任意のグループをgroup_
で始まるIntegerパラメータにバインド(紐付け)します。
いくつかの理由でCVEXパラメータを、それに該当するグループとは別の名前にしたい場合には、これをオフにして、 Group Bindings パラメータを使って、 Group Name と VEX Parameter のマッピングをセットアップします。
Group Bindings
各グループのバインド(紐付け)を手動で指定します。
Evaluation Node Path
ch()
などのVEX関数は、通常では、このノードを基準に評価します。
ここでパスを指定すれば、パス検索の開始場所を上書きすることができます。
これは、トップレベルのデジタルアセットが検索ルートになるようにデジタルアセットへ組み込む時に役に立ちます。
Export Parameters
VEXパラメータをエクスポートする時、バインドしたアトリビュートが存在しなければ、そのアトリビュートが作成されます。 このパターンを使ってVEXシェーダのExportオプションを上書きすることで、指定したアトリビュートへの書き込みや作成を回避することができます。 パターンはVEXパラメータに一致しますが、バインドしたアトリビュートには一致しません。 バインドしたアトリビュートは、読み取り専用になります。
Update Normals If Displaced
ポイントが繰り越されてしまい、P
アトリビュートが書き込まれ、N
アトリビュートが書き込まれていない場合、入力の法線が古くなります。
このオプションを設定すると、ポイントの繰り越しが起きた時に頂点とポイントの法線が更新されます。
Attribute To Match
マッチングに使用するアトリビュート。このアトリビュートは、マッチングを実行する両方の入力に存在しなければなりません。
そうでない場合は、マッチングはエレメント番号(つまり、ポイントに対して実行する時はポイント番号)で実行されます。
このアトリビュートには、整数または文字列のどちらかのアトリビュートを指定します。
これは、opinput#_
仮バインドの接続方法を制御します。
例えば、v@opinput1_Cd
を使用すれば、2番目の入力のv@Cd
アトリビュートを読み込むことができます。
Compute Results In Place
コンパイルすると、Attribute VOPは入力ジオメトリをコピーせずにその場でそのジオメトリを処理することができます。 これによって、コピーの工程が1つ減るので処理が高速化されますが、1番目の入力から読み込んだアトリビュートを書き込めるようにするには、 VEXコードがバインドしていないことが条件になります。
Output Selection Group
出力選択として使用するグループの名前。 このノードに対してhighlightフラグを有効にすると、このグループ(存在している場合)が、後のモデリングツールで使用される出力選択になります。
Examples
AddPoint Example for Attribute Wrangle geometry node
このサンプルでは、Attribute Wrangle SOPとaddpoint()VEXエクスプレッションを使って、単一の新しいポイントを追加する方法を説明しています。
CentroidPoints Example for Attribute Wrangle geometry node
このサンプルでは、primintrinsic関数を使用して、プリミティブの頂点数を取得する方法を説明しています。 最初に、プリミティブ-頂点の組を線形頂点値に変換してから、その線形頂点値で参照されたポイントを検索することで その頂点に該当するポイントを見つけることができます。
The following examples include this node.
AngularMotorDenting Example for Constraint Network dynamics node
このサンプルでは、Angular Motorをピン拘束と一緒に使用して、凹みの効果を作成する方法を説明しています。
BreakingSprings Example for Constraint Network dynamics node
このサンプルでは、SOP Solverを使用して、遠くに引き伸ばされたConstraint Network内のスプリング拘束を切る方法を説明しています。
Chains Example for Constraint Network dynamics node
このサンプルでは、Pin拘束でオブジェクトをチェーン状に接続する方法を説明しています。
ControlledGlueBreaking Example for Constraint Network dynamics node
このサンプルでは、Constraint Networkの接着ボンドを徐々に弱くして、ビルの崩壊を制御する方法を説明しています。
GlueConstraintNetwork Example for Constraint Network dynamics node
このサンプルでは、破壊するオブジェクトの隣接する破片を接着するConstraint Networkの作成方法を説明しています。
strength
などのPrimitiveアトリビュートを使えば、そのネットワーク内の個々の拘束の特性を修正することもできます。
Hinges Example for Constraint Network dynamics node
このサンプルでは、ピン拘束でオブジェクト間にヒンジを作成する方法を説明しています。
PointAnchors Example for Constraint Network dynamics node
このサンプルでは、ポイントアンカーを使った基本的なConstraint Networkの作成方法を説明しています。
SpringToGlue Example for Constraint Network dynamics node
このサンプルでは、近くのオブジェクト間にSpring拘束を作成して、シミュレーションで、その拘束を接着拘束に変更する方法を説明しています。
PartialRagdolls Example for Crowd Solver dynamics node
このサンプルでは、部分ラグドールのセットアップ方法について説明しています。エージェントのジョイントのサブセットがBullet Solverによってアクティブオブジェクトとしてシミュレーションされ、残りのジョイントがアニメーションします。
PinnedRagdolls Example for Crowd Solver dynamics node
このサンプルでは、ラグドールを外部オブジェクトに取り付ける拘束のセットアップ方法と、モーターを使ってアニメーションクリップを持つアクティブラグドールを駆動させる方法について説明しています。
CrowdTriggers Example for Crowd Trigger dynamics node
このサンプルでは、Crowd Trigger DOP用のビルトインのトリガータイプの使い方を説明しています。
BaconDrop Example for POP Grains dynamics node
このサンプルは、ベーコンをトーラス上に落とすデモです。 これは、テクスチャマップから2Dオブジェクトを抽出し、同じ肉の筋目をしたオブジェクトをDOPへ繰り返しで追加する方法を説明しています。
VaryingGrainSize Example for POP Grains dynamics node
このサンプルでは、まったく異なるサイズの粒で引き寄せられるシミュレーションを説明しています。
DragCenter Example for POP Property dynamics node
このサンプルでは、POP PropertyノードのDrag Centerパラメータを使用して、中心のずれた抵抗を落下オブジェクトに適用する方法を説明しています。
ActivateObjects Example for RBD Packed Object dynamics node
このサンプルでは、RBD Packed Objectの"active" Pointアトリビュートを修正して、オブジェクトをStaticからActiveに変更する方法を説明しています。
EmittingObjects Example for RBD Packed Object dynamics node
このサンプルでは、SOP Solverを使って、新しいRBDオブジェクトを作成して、それを既存のRBD Packed Objectに追加する方法を説明しています。
SpeedLimit Example for RBD Packed Object dynamics node
このサンプルでは、シミュレーションの特定のオブジェクトの速度を制限する方法を説明しています。
CurveAdvection Example for Wire Solver dynamics node
このサンプルでは、Pyroシミュレーションに基づいて、カーブを移流させる方法を説明しています。 Attribute Wrangle SOPを使って、ボリュームのVelocityをサンプリングして、それをワイヤーオブジェクトに適用しています。
AlembicLayer Example for Alembic render node
このサンプルでは、Alembic ROPノードを使ってAlembicレイヤーを作成する方法について説明しています。
AgentRelationshipBasic Example for Agent Relationship geometry node
このサンプルでは、単純な親子エージェントのセットアップ方法について説明しています。
PackedFragments Example for Assemble geometry node
このサンプルでは、Assemble SOPを使用して、リジッドボディシミュレーション向けに球をパックオブジェクトに分解する方法を説明しています。
FadedTorus Example for Attribute Fade geometry node
このサンプルでは、impactレコードとAttribute Fade SOPを使ったアトリビュートの蓄積方法とフェード方法を説明しています。
AddPoint Example for Attribute Wrangle geometry node
このサンプルでは、Attribute Wrangle SOPとaddpoint()VEXエクスプレッションを使って、単一の新しいポイントを追加する方法を説明しています。
CentroidPoints Example for Attribute Wrangle geometry node
このサンプルでは、primintrinsic関数を使用して、プリミティブの頂点数を取得する方法を説明しています。 最初に、プリミティブ-頂点の組を線形頂点値に変換してから、その線形頂点値で参照されたポイントを検索することで その頂点に該当するポイントを見つけることができます。
VexDeform Example for Capture Attribute Unpack geometry node
これは、Capture Attribute Unpack SOPを使用して、キャプチャアトリビュートをVEXにアクセス可能な何かに変える方法を説明したサンプルです。 これには、キャプチャアトリビュートを滑らかにして、それらのVEXで完全に変形させるメソッドを用意しています。
DeltaMushDemo Example for DeltaMush geometry node
このサンプルでは、Delta Mush SOPを使用したボーン変形の平滑化の方法を説明しています。
EdgeFracture Example for Edge Fracture geometry node
このサンプルでは、EdgeFracture SOPを使って、入力メッシュのエッジに沿わせて様々な粉砕を行なう方法を説明しています。
falloff_twisted_squab Example for Falloff geometry node
このサンプルでは、Falloffを使ってモデルまでの距離を測定し、その距離アトリビュートを利用した独自デフォーマを作成して、そのモデルの変形量を駆動させる方法を説明しています。
PackedSequence Example for File geometry node
このサンプルでは、File SOPを使ってパックディスクシーケンスを読み込む方法を説明しています。
DirectedEdgesPath Example for Find Shortest Path geometry node
このサンプルでは、FindShortestPath SOPを使って、指向性のエッジを持つジオメトリから最短パスを見つける方法を説明しています。 指向性のエッジは、1方向にしか移動できません。
SOPがどのように間違えた方向を回避するのか、なぜ出力方向のエッジのみではポイントに到達できないのかを調べるために、指向性のエッジだけでなく、開始/終了点も変更してみてください。
PathAnalysis Example for Find Shortest Path geometry node
これは、FindShortestPathとAttribWrangleによる測定に基づいた"中心軸"パスを優先にする高度なサンプルです。これは、壁への近接を回避するのに役に立ちます。
空間内でもっと簡単に確認するには、Display OptionsダイアログのOptimizationタブにあるCulling > Remove Backfacesをオンにします。 Switchノードを使って別の中心軸測定を可視化してみてください。パスの中心軸を考慮しない同じサンプルを、違いがわかるようにSOPネットワーク内の端に置いています。
このサンプルは、Cool Within Objectシェルフツールを使用して、溶岩を冷却する方法を説明しています。
Clumping Example for Fur geometry node
Fur SOPは髪の毛のようなカーブをインスタンス化するために使用します。
このケースでは、1つ目のFur SOPでクランプ(束)に適用するカーブを作成しています。 2つ目のFur SOPではクランプ(束)を定義しています。
MeasureLaplacian Example for Measure geometry node
このサンプルでは、Laplacianの測定法を使ってアトリビュートを平滑化または鮮明化する方法を説明しています。
BlendPUsingv Example for Sequence Blend geometry node
このサンプルでは、Sequence Blend SOPを使って、Velocityを考慮しながらポイント位置をブレンドする方法を説明しています。
SpikyDeformingTorus Example for Scatter geometry node
このサンプルでは、Scatter SOPとAttribute Interpolate SOPを使用して、ジオメトリが変形しても、ばら撒かれたポイントが整合性を保つように簡単に調整する方法を説明しています。
SpottedSoccerBalls Example for Scatter geometry node
このサンプルでは、Scatter SOPを使用して、別々の破片が追加または削除されても、整合性を保つようにポイントをばら撒く方法を説明しています。 これは、プリミティブ毎に独自の乱数シードを使用するオプションで実現しています。
ArmTarget Example for Vellum Solver geometry node
このサンプルでは、Pin to Target拘束を使って、Vellum Clothをキャプチャ/変形ジオメトリに引き寄せる方法について説明しています。
ResolutionTarget Example for Vellum Solver geometry node
このサンプルでは、詳細な皺のままモーション全体を維持できるように、高解像度のVellum Clothシミュレーションを前の低解像度シミュレーションに合わせる方法について説明しています。
TetrahedralFiber Example for Vellum Solver geometry node
このサンプルでは、Tetrahedral Fiber拘束を使って、収縮するソフトボディをシミュレーションする方法について説明しています。
VoronoiSplitWeights Example for Voronoi Split geometry node
このサンプルでは、Voronoi Split SOPのWeight Attributeオプションを使って、パワーダイアグラム(ラゲールボロノイ図)を作成する方法について説明しています。
Fuzzy Logic Obstacle Avoidance Example Example for Fuzzy Defuzz VOP node
このサンプルでは、Fuzzy Logicコントローラを使用して実装されたエージェントの障害物回避とパスへの追従を説明しています。
See also |