dynamicConstraintShape

 
 
 

该节点包含用于控制 nCloth 和 nParticle 对象上的动态约束的设置。这些设置包括约束方法、连接设置和强度设置。

有时可能会需要将衣物的各个部分约束到角色,以使衣物不会脱落。通过使用约束可以进行该操作。例如,可以使用约束来确保角色的裤子不掉落,或者保持裙子上的肩带附加到肩部上。

此外,还可以使用约束将衣物固定在一起或附加诸如钮扣或口袋等物品。

启用(Enable)

如果启用该选项,则会激活动态约束。默认情况下会打开“启用”(Enable)

如有必要,可以使用该属性来激活和取消激活动态约束,而不必将受约束的布料捕捉回到开始位置(如果设置了受约束的布料的动画)。这意味着在重新激活约束后,会自动改良约束链接,并且在重新激活约束时,会自动将“静止长度”(Rest Length)调整为该距离。

动态约束属性(Dynamic Constraint Attributes)

约束方法(Constraint Method)

确定用于该动态约束的链接类型。从下拉列表中选择下列选项之一:

焊接(Weld)

链接将顶点锁定到一起,这样就无法拉伸它们。

弹簧(Spring)

压缩或拉伸之后释放时,链接恢复其原始状态(默认)。

橡皮筋(Rubber Band)

拉伸后释放时,链接恢复其原始状态,而压缩后释放时,不会执行任何操作。

约束关系(Constraint Relation)

确定受约束对象如何彼此相关以及如何与动态约束相关。从下拉列表中选择下列选项之一:

对象到约束(Object to Constraint)

使受约束对象的输入组件与动态约束节点位置相关。这意味着受约束对象会受到动态约束的变换和定位更改的影响(默认)。

对象到对象(Object to Object)

使受约束对象彼此相关,并忽略动态约束的位置和变换。

组件关系(Component Relation)

确定组件节点(nClothShape 节点、nParticleShape 节点或 nRigidShape 节点)如何彼此相关。组件是该动态约束的成员,每个成员代表一个对象的一个元素子集(例如,一组三角形或点)。从下拉列表中选择下列选项之一:

全部到第一个(All to First)

使所有组件与属于该动态约束的第一个组件相关(默认)。

全部到全部(All to All)

使所有组件与属于该动态约束的所有其他组件相关。

链(Chain)

使一系列组件相关,其中每个组件与属于该动态约束的下一个组件相关。

显示连接(Display Connections)

如果启用该选项,则会在场景视图中显示动态约束链接。默认情况下会启用“显示连接”(Display Connections)

连接方法(Connection Method)

确定生成该动态约束的链接时使用的逻辑。从下拉列表中选择下列选项之一:

组件顺序(Component Order)

基于在组件的节点上列出元素的顺序,在组件之间生成链接。

在最大距离内(Within Max Distance)

在开始帧处,在处于“最大距离”(Max Distance)值(在世界空间中)内的任何组件之间生成链接。这会导致多个组件彼此链接到一起。

最近的对(Nearest Pairs)

在每个元素与最近的其他元素之间生成链接。这仅会产生一个从一个元素到另一个元素的链接。

最大距离(Max Distance)

指定将“连接方法”(Connection Method)设定为“在最大距离内”(Within Max Distance)时,在链接的元素之间允许的最大距离。默认值为 0.1。

连接更新(Connection Update)

指定何时为该动态约束对连接方法进行求值。从下拉列表中选择下列选项之一:

在开始处(At Start)

在模拟开始处对连接方法进行求值(默认)。

逐帧(Per Frame)

在模拟的每个帧处对连接方法求值。

组件内连接(Connect Within Component)

如果启用该选项,则允许 Maya Nucleus 对象和组件之间的链接。如果禁用该选项,则仅允许组件之间的链接。默认情况下会禁用该属性。

连接密度(Connection Density)

基于“最大距离”(Max Distance)值,为该动态约束指定链接的集中度。仅当将“连接方法”(Connection Method)设定为“在最大距离内”(Within Max Distance)时,该属性才可用。

值为 1 时将保持链接,而值为 0 时将导致无任何链接。在 0 到 1 之间的值确定链接断开的概率。可以使用“连接密度范围”(Connection Density Range)设置来调整该属性。

连接密度范围(Connection Density Range)

这些设置会影响“连接密度”(Connection Density)属性,且仅当将“连接方法”(Connection Method)设定为“在最大距离内”(Within Max Distance)时,这些设置才可用。

通过设定值,或通过使用图表,使用“连接密度范围”(Connection Density Range)设置可调整“连接密度”(Connection Density)属性。

使用图表可直观地调整连接密度。图表的右侧代表长度等于“最大距离”(Max Distance)值的链接。图表的左侧代表没有长度的链接(值为 0)。

选定位置(Selected Position)

图表的 X 轴上的活动值。

在图表中移动位置标记时,会自动调整该值以相对应。

选定值(Selected Value)

渐变图表的 Y 轴上的活动值。

在图表中移动位置标记时,会自动调整该值以相对应。

插值(Interpolation)

控制在图表中计算值的方式。从下拉列表中选择下列选项之一:

无(None)

不存在插值;每个值都是图表上的一个不同的步长。

线性(Linear)

这些值在空间中进行线性插值。

平滑(Smooth)

这些值是沿钟形曲线进行插值的,使图表上的每个值控制围绕该图表的区域,然后快速过渡到下一个值。

样条线(Spline)

“平滑”(Smooth)类似,但是“样条线”(Spline)将相邻的索引考虑进去以获得更平滑的效果。

强度(Strength)

确定该动态约束的总体强度。典型值在 0 到 200 之间。默认值为 20。

切线强度(Tangent Strength)

确定在局部切线方向上运动的阻力。有效值为从 0 到无穷大。默认值为 10。

粘合强度(Glue Strength)

确定断开该动态约束的阻力有多大。该值是相对于总体场景或对象比例。

“粘合强度”(Glue Strength)为 1 表示该约束不会断开。“粘合强度”(Glue Strength)为 0 表示该约束会立即断开,就好像根本不存在约束一样。默认值为 1。

因为链接是在开始帧处形成的,所以断开链接之后,链接不会改良,除非将“粘合强度”(Glue Strength)属性设置回 1。

粘合强度比例(Glue Strength Scale)

为总体场景比例确定“粘合强度”(Glue Strength)属性的敏感度。“粘合强度”(Glue Strength)使用链接之间的分隔的世界空间距离来确定发生断开的点。该属性会缩放所需的分隔距离。默认值为 1。

弯曲(Bend)

如果启用该选项,则会确定边到边约束是否可以弯曲。默认情况下会禁用“弯曲”(Bend)。仅边到边约束支持“弯曲”(Bend)。如果为其他组件类型约束启用了“弯曲”(Bend),则可能会增加模拟时间。

弯曲强度(Bend Strength)

确定弯曲边约束的阻力有多大。默认值为 20。

弯曲断开角度(Bend Break Angle)

确定边到边约束停止弯曲的角度(以度为单位)。默认值为 360。

力(Force)

指定在受约束的点之间的吸引力或排斥力。默认值为 0,表示不应用任何力。

对于组件之间的约束,根据“衰减距离”(Dropoff Distance)值,力会随着距离而减小。对于变换约束,会在点与变换约束的中心之间应用力。

可以将该属性应用到特定的 nCloth 组件,而不只是应用到对象,这与标准 Maya 场不同。

静止长度方法(Rest Length Method)

指定如何为该动态约束确定静止长度。从下拉列表中选择下列选项之一:

从开始距离(From Start Distance)

将约束距离设定为开始帧处的距离。如果将“静止长度比例”(Rest Length Scale)的值设定为 1,那么最初约束没有任何张力。

恒定(Constant)

将约束距离设定为始终是“静止长度”(Rest Length)属性所指定的值。

静止长度(Rest Length)

在世界空间中为该动态约束中的链接指定静止长度。仅当将“静止长度方法”(Rest Length Method)设定为“恒定”(Constant)时,该属性才可用。

静止长度比例(Rest Length Scale)

确定如何基于在开始帧处确定的长度动态缩放静止长度。默认值为 1。

运动阻力(Motion Drag)

指定应用到每个受约束对象的力的量,该力将受约束对象吸引到另一个对象的运动。“运动阻力”(Motion Drag)值为 1 表示会锁定所有受约束对象并一起移动它们。“运动阻力”(Motion Drag)值为 0 表示所有受约束的对象不会一起移动。默认值为 0。

衰减距离(Dropoff Distance)

这是强度衰减渐变映射到的世界空间距离。

强度衰减(Strength Dropoff)

使用“强度衰减”(Strength Dropoff)设置可以基于“衰减距离”(Dropoff Distance)控制链接的强度。图表的右侧代表链接的最大距离。图表的左侧代表没有长度的链接(值为 0)。

可以使用图表直观地调整“强度衰减”(Strength Dropoff)

选定位置(Selected Position)

图表的 X 轴上的活动值。

在图表中移动位置标记时,会自动调整该值以相对应。

选定值(Selected Value)

图表的 Y 轴上的活动值。

在图表中移动位置标记时,会自动调整该值以相对应。

插值(Interpolation)

控制在图表中计算值的方式。从下拉列表中选择下列选项之一:

无(None)

不存在插值;每个值都是图表上的一个不同的步长。

线性(Linear)

这些值在空间中进行线性插值。

平滑(Smooth)

这些值是沿钟形曲线进行插值的,使图表上的每个值控制围绕该图表的区域,然后快速过渡到下一个值。

样条线(Spline)

“平滑”(Smooth)类似,但是“样条线”(Spline)将相邻的索引考虑进去以获得更平滑的效果。

排除碰撞(Exclude Collisions)

如果启用该选项,则仅为属于当前约束的成员的面、边或顶点计算 nCloth 约束冲突。

阻尼(Damp)

确定约束中有多少能量会受到抑制,以减少受约束元素的移动。默认值为 0。

局部碰撞(Local Collide)

如果启用该选项,则允许曲面约束在约束点处与局部曲面碰撞。与标准曲面碰撞相比,该碰撞通常计算得更快。默认情况下会为“点到曲面”(Point to Surface)约束和“在曲面上滑动”(Slide on Surface)约束启用“局部碰撞”(Local Collide)

碰撞宽度比例(Collide Width Scale)

如果启用“局部碰撞”(Local Collide),则 dynamicConstraintShape 节点会处理受约束点之间的碰撞。这样可以增加或替换对象之间的法线碰撞。“碰撞宽度比例”(Collide Width Scale)为受约束对象的总碰撞厚度指定缩放值。默认情况下会将“碰撞宽度比例”(Collide Width Scale)设定为 1,表示用于这些碰撞的碰撞宽度基于碰撞对象的“厚度”(Thickness) (nCloth) 和“半径”(Radius) (nParticle) 属性值。

摩擦力(Friction)

确定滑动曲面约束可以自由移动的程度。将“摩擦力”(Friction)设定为 1 时,会锁定曲面约束,且无法移动它们。将“摩擦力”(Friction)设定为 0 时,曲面约束可以自由滑动,不受任何限制。默认值为 0。

单面(Single Sided)

如果启用该选项,则会将曲面约束(可以移动)限制为始终处于受约束曲面的一侧上。约束处于哪一侧是在开始帧处确定的,然后会在整个模拟中一直保持。这样可防止在受约束曲面移动时,约束在相反方向上翻转和推动。

例如,可以将 nCloth 约束到某个开放的圆柱体,并使用“单面”(Single Sided)属性以防止布料滑动到圆柱体中,然后使用该属性将布料保持在圆柱体外部上。

最大迭代次数(Max Iterations)

为该动态约束指定每模拟步长的最大迭代次数。迭代次数是在一个步长内发生的计算次数。随着迭代次数增加,精确度会提高,但计算时间也会增加。默认值为 500。

最小迭代次数(Min Iterations)

指定用于对动态约束求值的最小解算器迭代次数。迭代次数是在一个模拟步长内发生的计算次数。如果当前动态约束的“强度”(Strength)较低,“最小迭代次数”(Min Iterations)会提高动态约束效果的集成的质量。“最小迭代次数”(Min Iterations)也会影响其他 Nucleus 对象属性(如“拉伸阻力”(Stretch Resistance)对 nCloth 对象的影响)。