动态几何体属性:快速入门教程

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

“动态几何体属性”工作流

开始之前

您需要:

第 1 步:设置场景

创建简单的测试场景以查看实际的张力:

  1. 在视口中以足够的分辨率创建一个多边形圆柱体:
    • 将“高度”(Height) 设置为 6,并将“高度细分”(Height Subdivisions) 设置为 12 或更高,以获得更好的张力可视化效果。
    • 将“半径细分数”(Radius Subdivisions) 设置为 8 或更高。
  2. 挤压变形器添加到圆柱体(“变形 > 非线性 > 挤压”(Deform > Nonlinear > Squash))。
  3. 为挤压变形器的“因子”(Factor) 属性设置动画(尝试 -2 和 2 之间的值)以查看圆柱体压缩和拉伸效果。
  4. 提醒:请确保在时间轴控件中禁用“缓存播放”(Cache Playback)。

这将为您提供随时间变形的网格 - 非常适合计算张力。

步骤 2:准备节点编辑器

设置“节点编辑器”(Node Editor) 以显示所有必要的连接:

  1. 打开“节点编辑器”(Node Editor)(Windows > 节点编辑器)。
  2. 在“大纲视图”(Outliner) 中选择圆柱体形状节点,并将其添加到“节点编辑器”(Node Editor)。
  3. 多次单击展开箭头(节点编辑器的右上角)以显示所有连接,包括变形器创建的原始几何体。
  4. 现在应该可以看到变形的圆柱体形状和原始几何体节点。

第 3 步:创建张力节点

计算网格发生拉伸和挤压的位置:

  1. 在“节点编辑器”中,按 Tab 键或单击鼠标右键,然后创建 dgaTension 节点。
  2. 重要信息:在 dgaTension 节点上单击鼠标右键,然后选择“显示所有属性”(Show All Attributes)(某些节点仅显示默认输出)。
  3. 建立以下连接:
    • 将原始几何体的 outMesh 连接到 dgaTension 的原始几何体输入。
    • 在挤压变形器中,展开 outputGeometry,然后将“输出 Geometry[0]”(Output Geometry[0])连接到 dgaTension 的“输入几何体”(Input Geometry)

现在,dgaTension 节点将变形的网格与原始网格进行比较,从而基于变形计算曲面张力。

第 4 步:可视化结果

将这些张力值转换为您可以看到的内容:

  1. 在“节点编辑器”中创建 dgaVisualizer 节点。
  2. 选择 dgaVisualizer 节点。
  3. 打开 dgaVisualizer 节点的属性编辑器。
  4. 在“可视化属性”(Visualization Attributes)部分中找到“单放属性”(Solo Attribute)。
  5. 建立以下连接:
    • 将 dgaTension 的输出属性连接到 dgaVisualizer 的输入属性。
    • 将 dgaTension 的输出几何体连接到 dgaVisualizer 的输入几何体。
    • 将 dgaVisualizer 的输出几何体连接到圆柱体形状的 inMesh 输入。
  6. 将“单放属性”(Solo Attribute)值设置为“拉伸”(Stretch)
  7. 在节点编辑器中,在 dgaVisualizer 节点上单击鼠标右键,然后选择“显示所有属性”(Show All Attributes)。
  8. 启用颜色显示:切换到建模模式(左上角菜单集),然后转到“网格显示”(Mesh Display) >“切换显示颜色属性”(Toggle Display Colors Attribute)。
  9. 在时间轴中滑动。现在,您应该会在圆柱体上看到一张热图,显示变形时的张力。

微调可视化

调整可视化效果以获得更好的结果:

  1. 选择 dgaTension 节点并打开“属性编辑器”(Attribute Editor)。
  2. 尝试不同的设置:
    • 张力模式(Tension Mode):UV
    • 规格化张力:启用以实现一致的可视化。
    • 最大挤压/拉伸(Max Squash/Stretch):将这些值调整为预期值以更好地捕捉范围。
  3. 选择 dgaVisualizer 节点并调整:
    • 可视化模式:在张力、拉伸和挤压之间切换。
    • 归一化模式(Normalization Mode):设置为“动态”(Dynamic)。
    • 颜色渐变:根据首选项自定义颜色渐变。

疑难解答

如果在网格上看不到颜色:

如果节点不显示输入属性:

如果拖动时颜色未更新:

后续活动

现在,您已了解基本工作流,请尝试以下想法:

高级:Arnold 集成(可选)

如果用户习惯使用脚本,可以将张力数据导出到 Arnold:

  1. 创建 dgaToArray 节点。
  2. 展开 dgaTension 的“输出属性”(Output Attributes) 并将“输出值”(Output Values) 连接到 dgaToArray 的“输入双精度值”(Input Double Values)
  3. 将几何体连接到 dgaToArray 的输入几何体
  4. 使用 MEL 创建自定义属性:
    addAttr -ln "mtoa_varying_tension" -dt "doubleArray" yourMeshShape;
    注: 有关命名约定的详细信息,请浏览 Arnold userData 文档。
  5. 将 dgaToArray 的输出连接到自定义属性。
  6. 在材质图表中使用属性名称为“tension”的 aiUserDataFloat

通过“动态几何体属性”(Dynamic Geometry Attributes),可以精确控制角色的变形方式。无论是修复有问题的蒙皮、创建逼真的布料褶皱,还是添加程序曲面细节,此工具组合都能让您全力以赴。