在本教程中,您将在变形网格上设置张力可视化,并了解在装备和角色 FX 工作流中使用动力学几何体属性的核心工作流。最后,您将了解如何可视化网格上的拉伸和挤压数据。

“动态几何体属性”工作流
开始之前
您需要:
- 变形网格(在本示例中,我们将使用一个具有挤压变形器的圆柱体)
- 基本熟悉 Maya 节点编辑器
-
重要信息:禁用“缓存播放”(Disable Cache Playback)(Maya 界面右下角)- 缓存播放可能会阻止 DGA 节点正确更新。
第 1 步:设置场景
创建简单的测试场景以查看实际的张力:
- 在视口中以足够的分辨率创建一个多边形圆柱体:
- 将“高度”(Height) 设置为 6,并将“高度细分”(Height Subdivisions) 设置为 12 或更高,以获得更好的张力可视化效果。
- 将“半径细分数”(Radius Subdivisions) 设置为 8 或更高。
- 将挤压变形器添加到圆柱体(“变形 > 非线性 > 挤压”(Deform > Nonlinear > Squash))。
- 为挤压变形器的“因子”(Factor) 属性设置动画(尝试 -2 和 2 之间的值)以查看圆柱体压缩和拉伸效果。
-
提醒:请确保在时间轴控件中禁用“缓存播放”(Cache Playback)。
这将为您提供随时间变形的网格 - 非常适合计算张力。
步骤 2:准备节点编辑器
设置“节点编辑器”(Node Editor) 以显示所有必要的连接:
- 打开“节点编辑器”(Node Editor)(Windows > 节点编辑器)。
- 在“大纲视图”(Outliner) 中选择圆柱体形状节点,并将其添加到“节点编辑器”(Node Editor)。
- 多次单击展开箭头(节点编辑器的右上角)以显示所有连接,包括变形器创建的原始几何体。
- 现在应该可以看到变形的圆柱体形状和原始几何体节点。
第 3 步:创建张力节点
计算网格发生拉伸和挤压的位置:
- 在“节点编辑器”中,按 Tab 键或单击鼠标右键,然后创建 dgaTension 节点。
- 重要信息:在 dgaTension 节点上单击鼠标右键,然后选择“显示所有属性”(Show All Attributes)(某些节点仅显示默认输出)。
- 建立以下连接:
- 将原始几何体的 outMesh 连接到 dgaTension 的原始几何体输入。
- 在挤压变形器中,展开 outputGeometry,然后将“输出 Geometry[0]”(Output Geometry[0])连接到 dgaTension 的“输入几何体”(Input Geometry)。
现在,dgaTension 节点将变形的网格与原始网格进行比较,从而基于变形计算曲面张力。
第 4 步:可视化结果
将这些张力值转换为您可以看到的内容:
- 在“节点编辑器”中创建 dgaVisualizer 节点。
- 选择 dgaVisualizer 节点。
- 打开 dgaVisualizer 节点的属性编辑器。
- 在“可视化属性”(Visualization Attributes)部分中找到“单放属性”(Solo Attribute)。
- 建立以下连接:
- 将 dgaTension 的输出属性连接到 dgaVisualizer 的输入属性。
- 将 dgaTension 的输出几何体连接到 dgaVisualizer 的输入几何体。
- 将 dgaVisualizer 的输出几何体连接到圆柱体形状的 inMesh 输入。
- 将“单放属性”(Solo Attribute)值设置为“拉伸”(Stretch)。
- 在节点编辑器中,在 dgaVisualizer 节点上单击鼠标右键,然后选择“显示所有属性”(Show All Attributes)。
-
启用颜色显示:切换到建模模式(左上角菜单集),然后转到“网格显示”(Mesh Display) >“切换显示颜色属性”(Toggle Display Colors Attribute)。
- 在时间轴中滑动。现在,您应该会在圆柱体上看到一张热图,显示变形时的张力。
微调可视化
调整可视化效果以获得更好的结果:
- 选择 dgaTension 节点并打开“属性编辑器”(Attribute Editor)。
- 尝试不同的设置:
-
张力模式(Tension Mode):UV
-
规格化张力:启用以实现一致的可视化。
- 最大挤压/拉伸(Max Squash/Stretch):将这些值调整为预期值以更好地捕捉范围。
- 选择 dgaVisualizer 节点并调整:
-
可视化模式:在张力、拉伸和挤压之间切换。
-
归一化模式(Normalization Mode):设置为“动态”(Dynamic)。
- 颜色渐变:根据首选项自定义颜色渐变。
疑难解答
如果在网格上看不到颜色:
- 确保在“网格显示”(Mesh Display) 菜单中启用“切换显示颜色属性”(Toggle Display Colors Attribute)。
- 检查是否已禁用“缓存播放”(Cache Playback)。
- 验证所有节点连接是否正确。
- 尝试将“规格化模式”(Normalization Mode) 切换为“动态”(Dynamic)。
如果节点不显示输入属性:
- 在每个节点上单击鼠标右键,然后选择“显示所有属性”(Show All Attributes)。
如果拖动时颜色未更新:
- 禁用“缓存播放”(Cache Playback)(这是最常见的问题)。
- 检查是否正确完成了所有几何体连接。
后续活动
现在,您已了解基本工作流,请尝试以下想法:
- 使用 dgaTension 节点上的 ComponentTagExpression 属性分析网格的特定区域。
- 尝试使用边和 UV 计算方法,确定哪种方法最适合您的几何体。
- 将张力数据连接到变形器权重列表,以自动驱动修正过渡形状。
- 尝试使用 dgaDelta 节点来比较两种完全不同的网格状态。
高级:Arnold 集成(可选)
如果用户习惯使用脚本,可以将张力数据导出到 Arnold:
- 创建 dgaToArray 节点。
- 展开 dgaTension 的“输出属性”(Output Attributes) 并将“输出值”(Output Values) 连接到 dgaToArray 的“输入双精度值”(Input Double Values)。
- 将几何体连接到 dgaToArray 的输入几何体。
- 使用 MEL 创建自定义属性:
addAttr -ln "mtoa_varying_tension" -dt "doubleArray" yourMeshShape;
- 将 dgaToArray 的输出连接到自定义属性。
- 在材质图表中使用属性名称为“tension”的 aiUserDataFloat。
通过“动态几何体属性”(Dynamic Geometry Attributes),可以精确控制角色的变形方式。无论是修复有问题的蒙皮、创建逼真的布料褶皱,还是添加程序曲面细节,此工具组合都能让您全力以赴。