为 nCloth 和被动碰撞对象创建约束时,请注意以下特定于组件的行为:
请参见约束 Nucleus 对象。
可以创建“变换”(Transform)约束,以固定特定 nCloth 组件,或者在 XYZ 空间中移动这些组件。例如,可以使受“变换”(Transform)约束的 nCloth 跟随其已设定动画的被动对象通过其场景,方法是将被动对象设置为其变换约束定位器的父对象。
此时将出现“创建变换约束选项框”(Create Transform Constraint Options Box)窗口。
选定的 nCloth 对象或组件现在受其在 XYZ 空间中的当前位置约束,且系统会为选定 nCloth 对象或组件创建“变换”(Transform)约束定位器。
选定的 nCloth 对象或组件现在也通过 dynamicConstraint 节点连接到 nCloth 的 Maya Nucleus 解算器。
dynamicConstraint 节点上的预设特性确定约束的类型(在这种情况下为“变换”(Transform)约束)及其行为方式。例如,可以使用以下属性设置创建“变换”(Transform)约束:
创建 nCloth“组件到组件”(Component to Component)约束
可以创建“组件到组件”(Component to Component)约束,以将 nCloth 组件(顶点、边或面)附加到其他 nCloth 或被动对象组件。例如,可以将顶点从 nCloth 披肩的顶部约束到被动对象角色的肩部,以便披肩从角色的肩部垂下并随角色移动。
创建 nCloth“组件到组件”(Component to Component)约束
此时将出现“创建组件到组件约束选项框”(Create Component to Component Constraint Options Box)窗口。
选定的 nCloth 组件现在受选定的目标顶点约束,并且现在通过 dynamicConstraint 节点连接到 nCloth 的 Maya Nucleus 解算器。
dynamicConstraint 节点上的预设特性确定约束的类型(在这种情况下为“组件到组件”(Component to Component)约束)及其行为方式。例如,可以使用以下属性设置创建“组件到组件”(Component to Component)约束:
创建 nCloth“点到曲面”(Point to Surface)约束
可以创建“点到曲面”(Point to Surface)约束,以将 nCloth 组件(顶点、边或面)附加到目标曲面(nCloth 曲面或被动碰撞对象)。例如,可以使用“点到曲面”(Point to Surface)约束,以将一条 nCloth 裤子的腰带保持在被动对象角色的髋部。
创建 nCloth“点到曲面”(Point to Surface)约束
此时将出现“创建点到曲面约束选项框”(Create Point to Surface Constraint Options Box)窗口。
选定的 nCloth 组件现在受选定的目标曲面约束,并且现在通过 dynamicConstraint 节点连接到 nCloth 的 Maya Nucleus 解算器。
dynamicConstraint 节点上的预设特性确定约束的类型(在这种情况下为“点到曲面”(Point to Surface)约束)及其行为方式。例如,可以使用以下属性设置创建“点到曲面”(Point to Surface)约束:
创建 nCloth“在曲面上滑动”(Slide on Surface)约束
可以创建“在曲面上滑动”(Slide on Surface)约束,以将 nCloth 组件(顶点、边或面)附加到目标曲面(另一个 nCloth 曲面或被动碰撞对象),并允许受约束 nCloth 组件沿曲面(组件受该曲面约束)移动或滑动。用户可以使用“在曲面上滑动”(Slide on Surface)约束代替碰撞,且在大多数情况下,其工作速度比碰撞快。例如,可以对 nCloth 衬衫中的所有顶点使用“在曲面上滑动”(Slide on Surface)约束,以将这些顶点约束到角色模型,而不是将角色设置为被动对象。
创建 nCloth“在曲面上滑动”(Slide on Surface)约束
此时将出现“创建在曲面上滑动约束选项框”(Create Slide on Surface Constraint Options Box)窗口。
选定的 nCloth 组件现在受选定的目标曲面约束,并且现在通过 dynamicConstraint 节点连接到 nCloth 的 Maya Nucleus 解算器。
dynamicConstraint 节点上的预设特性确定约束的类型(在这种情况下为“在曲面上滑动”(Slide on Surface)约束)及其行为方式。例如,可以使用以下属性设置创建“在曲面上滑动”(Slide on Surface)约束:
创建“焊接相邻边界”(Weld Adjacent Borders)约束
可以创建“焊接相邻边界”(Weld Adjacent Borders)约束,以便以非弹性方式将 nCloth 边界边或顶点约束在一起。例如,可以使用“焊接相邻边界”(Weld Adjacent Borders)约束来使单独 nCloth 网格的行为类似于单个 nCloth 对象。请参见焊接相邻边界约束。
创建“焊接相邻边界”(Weld Adjacent Borders)约束
此时将出现“创建焊接相邻边界约束选项框”(Create Weld Adjacent Borders Constraint Options Box)窗口。
如果选择了单个 nCloth 对象,则可以使用“焊接”(Weld)约束方法约束其相邻边界边。
如果选择了两个相邻 nCloth 对象,则可以使用“焊接”(Weld)约束方法约束 nCloth 的最近边界边。如果选定 nCloth 的边界上具有不同数量的顶点,则会转为约束其点。
如果从两个单独的 nCloth 选择顶点,则可以使用焊接约束方法约束点。
选定的 nCloth 对象或边界顶点现在也通过 dynamicConstraint 节点连接到 nCloth 的 Maya Nucleus 解算器。
dynamicConstraint 节点上的预设特性确定约束的类型(在这种情况下为“焊接”(Weld)约束)及其行为方式。例如,可以使用以下属性设置创建“焊接”(Weld)约束:
可以创建“力场”(Force Field)约束,以在具有球形体积边界的径向场中将 nCloth 组件或对象推离约束中心。例如,可以通过在关节上放置力场约束,向外推粘在角色的肘部关节的 nCloth。相反,可以使用它吸入或包含约束边界内的 nCloth。
此时将出现“创建力场约束选项框”(Create Force Field Constraint Options Box)窗口。
“力场”(Force Field)定位器将显示在选定对象网格的内侧,且dynamicConstraint 节点显示在“属性编辑器”(Attribute Editor)中。
dynamicConstraint 节点上的预设特性确定约束的类型(在这种情况下为“力场”(Force Field)约束)及其行为方式。例如,可以使用以下属性设置创建“力场”(Force Field)约束:
创建“吸引到匹配网格”(Attract to Matching Mesh)约束
可以创建“吸引到匹配网格”(Attract to Matching Mesh)约束,以将 nCloth 对象的顶点吸引到具有匹配拓扑的网格的对应顶点。例如,使用该约束来为从必须位于特定形状或定位在场景中的角色滑落的衣服,创建特定的最终形状。
创建“吸引到匹配网格”(Attract to Matching Mesh)约束
此时将出现“创建吸引到匹配网格约束选项框”(Create Attract to Matching Mesh Constraint Options Box)窗口。
将显示 nCloth 对象和目标 nCloth 网格之间的约束链接,且dynamicConstraint 节点将显示在“属性编辑器”(Attribute Editor)中。
dynamicConstraint 节点上的预设特性确定约束的类型(在这种情况下为“吸引到匹配网格”(Attract to Matching Mesh)约束)及其行为方式。例如,可以使用以下属性设置创建“吸引到匹配网格”(Attract to Matching Mesh)约束:
可以创建“可撕裂曲面”(Tearable Surface)约束,使 nCloth 对象在碰撞被动对象或其他 nCloth 对象时扯破或破碎。例如,可以使用“可撕裂曲面”(Tearable Surface)约束,使 nCloth 丝在捕捉到尖锐被动对象时撕裂。
此时将出现“创建可撕裂曲面约束选项框”(Create Tearable Surface Constraint Options Box)窗口。
可以使用焊接约束方法,通过分离 nCloth 的所有面,生成新边和顶点,合并 nCloth 的顶点,软化 nCloth 的边,并将 nCloth 的点(撕裂)或边(破碎)约束在一起,将当前 nCloth 设置为可撕裂或可破碎。因此,nCloth 的输出网格的拓扑将不再与其输入网格的拓扑匹配。
选定的 nCloth 对象现在也连接到 dynamicConstraint 节点。
dynamicConstraint 节点上的预设特性确定约束的类型(在这种情况下为“可撕裂曲面”(Tearable Surface)约束)及其行为方式。例如,可以使用以下属性设置创建“可撕裂曲面”(Tearable Surface)约束:
创建“禁用碰撞”(Disable Collisions)约束
可以为 nCloth、被动对象或顶点创建“禁用碰撞”(Disable Collision)约束,以防止它们与所有其他 nCloth、被动对象或顶点发生碰撞。如果要提高 nCloth 的性能或避免碰撞几何体交叉,该约束将非常有用。
也可以使用“绘制 nCloth 属性工具”(Paint nCloth Attributes Tool)创建“碰撞强度”(Collide Strength)顶点贴图或纹理贴图,这些贴图会对 nCloth 和被动碰撞对象组件衰减或禁用碰撞。请参见绘制 nCloth 特性贴图
创建“禁用碰撞”(Disable Collisions)约束
选定的 nCloth 对象、被动对象或顶点不再与共享同一 Maya Nucleus 解算器的任何其他对象或组件发生碰撞。
创建“排除碰撞对”(Exclude Collide Pairs)约束
可以为 nCloth、被动对象或顶点创建“排除碰撞对”(Exclude Collide Pairs)约束,以防止它们与特定 nCloth、被动对象或顶点发生碰撞。如果要提高 nCloth 的性能或避免碰撞几何体交叉,该约束将非常有用。
创建“排除碰撞对”(Exclude Collide Pairs)约束
如果选择了两个 nCloth 对象,它们将不再发生碰撞。如果选择了一个 nCloth 对象和一个被动对象,它们将不再发生碰撞。如果从一个 nCloth 选择了一组顶点,从其他 nCloth 选择了另一组顶点,则选定顶点将不再发生碰撞。
请参见 nConstraint > 排除碰撞对(nConstraint > Exclude Collide Pairs)。
可以通过编辑约束成员身份,添加、移除或替换在 nCloth 约束中使用的组件。但是,不能通过编辑约束成员身份将对象添加到现有约束中。
若要编辑约束成员身份,可以使用“替换成员”(Replace Members)、“添加成员”(Add Members)和“移除成员”(Remove Members)选项,或“nConstraint 成员身份工具”(nConstraint Membership Tool)。
例如,如果希望编辑链接顶点的“组件到组件”(Component to Component)约束的成员身份,可以使用“顶点”(Vertex)选择模式。
现在可以通过选择 nConstraint > 添加成员(nConstraint > Add Members)、nConstraint > 移除成员(nConstraint > Remove Members)或 nConstraint > 替换成员(nConstraint > Replace Members),编辑选定约束的成员身份。
使用“nConstraint 成员身份工具”(nConstraint Membership Tool)编辑动态约束成员身份
“绘制 nComponent 属性工具”(Paint nComponent Attribute Tool)将成为当前工具,其设置将显示在“工具设置”(Tool Settings)面板中。该工具是“绘制属性工具”(Paint Attributes Tool)的修改版本。请参见 Artisan 工具设置。
“3D 绘制工具”(3D Paint Tool)将成为当前工具,其设置将显示在“工具设置”(Tool Settings)面板中。该工具是“3D 绘制工具”(3D Paint Tool)的修改版本。请参见 3D 绘制工具。
默认情况下,绘制的 nCloth 约束纹理贴图将作为文件纹理保存到 \maya\projects\default\3dPaintTextures 目录下。
选定约束特性的纹理贴图(文件纹理)将转化为逐顶点特性值,然后这些值将存储在选定的 nCloth 顶点上,并且纹理贴图不会从磁盘中删除。