Since | 17.0 |
Detangle(ほどく処理)は、Vellumのコリジョンパイプラインの一部です。 これは、変形させた結果として発生した外部干渉や自己干渉を回避しようとポイント位置を調整します。 しかし、開始セットアップに対して良い設定がされている必要があります。
これは、ラインの干渉とサーフェスの干渉を制御することができます。 とはいえ、すべてのポリゴンが内部的に三角形に変換されているので、干渉面をビューポート内で描画することはできません。 外部オブジェクトとの干渉には、いくつかのタイプのパックプリミティブも使用することができます。
いくつか物理系のアトリビュートが存在すれば、それも考慮されます。
mass
は、自己干渉の修復方法をポイント間で共有させることができます。
stopped
を使用すれば、特定のポイントをフリーズさせることができます。
干渉を検出する際に使用されるそのままのpscale
アトリビュートを調整するためのアトリビュートが2つあります。
そのアトリビュートがoverlap_self
とoverlap_external
です。
これらのアトリビュートは、隣接ポイントの初期オーバーラップを記録し、初期設定がフルのpscale
を考慮しない時に破裂を回避します。
干渉の検出を間引く際にはcollisionignore
文字列Pointアトリビュートも使用されます。
このノードは、collisiongroup
文字列Pointアトリビュートを使用して、コリジョンを有効にするかどうかを決定します。
ポイントのcollisionignore
パターンが他のポイントのcollisiongroup
に合致すると、その干渉検出がスキップされます。
三角形とエッジの検出は、それらの間のポイントのペアがスキップされると、その検出がスキップされます。
Note
collisionignore
は、外部コリジョンジオメトリからは使用されません。
その外部ジオメトリがパックプリミティブの場合、collisionignore
によるコリジョンの間引きでオブジェクト名を定義する際にobjname
文字列Primitiveアトリビュートが使用されます。
パックプリミティブでない場合、親のオブジェクト名が使用され、親のオブジェクトが存在しなければ、external
が使用されます。
パラメータ ¶
Previous Position
入力のP
アトリビュートには、新しく変形させたバージョンのジオメトリのポイントポジションが格納されます。
Previous Positionアトリビュートには、干渉なしと想定された変形させていないバージョンのジオメトリのポイントポジションを指定します。
Disable Self Attr.
この整数アトリビュートの値がゼロ以外であれば、そのポイントの自己干渉の修復が無効になります。
Disable External Attr.
この整数アトリビュートの値がゼロ以外であれば、そのポイントの外部干渉の修復が無効になります。
Weld Attr.
実際にポイントを結合することなく論理的にポイントを結合するのに役立つことが多いです。
weld
アトリビュートは、接合先のポイントを示した整数Pointアトリビュートです。
このアトリビュート値が-1または自身のポイントの場合は、そのポイントは接合されません。
id
アトリビュートが存在しない限り、このweld
アトリビュート値はポイント番号を意味します。
id
アトリビュートが存在すれば、id
番号を意味します。
Default Thickness
pscale
が存在すれば、そのpscale
アトリビュートがポイントの厚みとして使用され、ポイント毎に変化させることができます。
このパラメータは、外部干渉または自己干渉ジオメトリ内にpscale
が存在しなかった時のデフォルト値です。
Self Collisions
自己干渉検出を有効にします。
Collide with Tetrahedral Open Faces
これを設定すると、四面体メッシュの非共有フェースから干渉ジオメトリが生成されるようになります。 場合によっては、三角形シェルと四面体メッシュの両方を使って、この処理を冗長化したいことがあります。
Update Overlap Distances
overlap_self
とoverlap_external
を更新して、現在の設定を反映します。
これらの値は、この処理によって減少していくだけなので、初期化する時は大きな初期値を設定してください。
Require Paired Disabling for Automatic
自己干渉によって自動的に無効にされたポイントは、その干渉に関係する両方のポイントが無効になっている場合にのみ無効になります。 これによって、他の布を自由に通過させることなく(相互の干渉が無効になっているので)絡んだ布を自由に引っ張ることができます。
Update Disabled Points
すべての干渉を適切に制御できるわけではないので、これは、現在干渉しているポイントに対してdisableのPointアトリビュートを設定します。 これを使用することで、現在の不正な位置にあるポイントに対する干渉回避の試みを回避させることができるので、それらのポイントを徐々にサーフェスの正しい方へ戻させることができます。
Disabledポイントが設定されている時、その値が2
でor(論理和)されます。
Reset Detangled Points
Disabledポイントが干渉関係を解決して、もはやDetangle(ほどく処理)が不要になれば、再度干渉が開始できるように、そのDisabled状態をリセットします。
ポイントがリセットされると、その値は2
の否定でand(論理積)されます。
これは、その値を手動で1に設定してポイントをDisabledにしている場合、このリセットパスでは解除されず、自動でDisabledに設定されたポイントのみがリセットされます。
Mark Changed
Detangle SOPで変更されたポイントのこのアトリビュートが1に設定されます。
Resolve Collisions
干渉によるP
の調整を有効にします。
Update Disabled Pointsが有効になっている場合は、位置を調整してしまうと、他のポイントの検出が失敗し始めてしまうので、この処理をしたくありません。
Max Weight
複数の干渉イベントによって同時にポイントを動かしたいことがよくあります。 これらの調整すべてが平均化されます。これは、適用する総ウェイトです。 値が大きいほど、過度に緩和されて不安定になってしまいますが、収束も早くなります。
Max Displacement
ポイントを動かす最大移動量。 この距離よりも遠くにポイントを動かしても、この距離でクランプされるのでDisabledポイントと同様になり、干渉の解決に失敗します。
Resolve All Collisions
起こり得るすべての干渉に対して、初期Gather(収集)パスが実行されます。 干渉は個々に解決されますが、それらの結果を平均化しても干渉を完全に解決することはできません。 これは、最大パスに到達または解決するまで、干渉回避の再計算を繰り返します。 この過程で作成された干渉はどれも検出しないことに注意してください。
Resolve All Max Passes
干渉リストを解決するパスの最大数。
Resolve All Free Edges
ヘアーのようなオープンカーブは、一対一形式で解決させていくと徐々に上手く解決できなくなります。 例えば、すべての干渉に対して一対一で解決していくと、それらのカーブが段々と大きくほぐれていきます。 このオプションは、その状況に対処するために、そのようなオープンカーブに対して一括で解決できるようにします。
Layer Attr.
ジオメトリのレイヤー番号を示した整数Pointアトリビュート。 この番号が大きいほど上層であると見なされます。つまり、小さい番号のレイヤーの上に積み上げられます。
Layer Shock
レイヤー番号が異なる2個のポイントが干渉した場合に、このLayer Shock係数によって、それらの相対質量が調整されます。 これによって、高いレイヤー番号が低いレイヤー番号をよけるようになります。 レイヤー番号の差の大きさは関係なくて、ただ単にそのレイヤー番号の大小を見ているだけであることを忘れないでください。 値を2にすると、干渉を回避するために、実質的に低いレイヤー番号の重さが高いレイヤー番号の重さの2倍になります。
External Friction
外部ジオメトリ干渉に適用する摩擦に対するスケール係数。
Self Friction
自己干渉に適用する摩擦に対するスケール係数。
Static Threshold
完全摩擦が適用される閾値。 接線Velocityと法線インパルスの比率がこの閾値未満の時、接線Velocityが完全に摩擦から除去されます。 これは、重力だけでスライド可能な勾配角度のtan()のようなものです。
Scale Kinetic
Static Thresholdが失敗した場合、これは、動摩擦によって接線Velocityが減少する割合を制御します。
Assume Constant Collision Topology
ほとんどの場合にトポロジーが一定(つまり、ポリゴンが同じポイントに接続されている)である場合、干渉は自動的に検出されます。 しかし、これは、トポロジーをまったくチェックせずに、最初に干渉した時と同じようにポイントが繋がっているものと仮定します。
Cache Reset Key
干渉ツリーは、異なるポイント位置が大きく変化しない限りは、それらのポイントに対して頻繁に再利用することができます。 このパラメータがポイントポジションを同じ値と評価すると、トポロジーが変わっても干渉ツリーのみがリセットされます。 これによって干渉の見逃しがなくなりますが、干渉ツリーがジオメトリの表現を停止した時に遅くなる可能性があります。 マイナスの値は、常に干渉ツリーをリセットします。
See also |