跳到主要内容

完整案例教学

Dancing案例概述

本案例介绍如何创建镜头级的布料模拟。会涉及解算前的碰撞体预处理,多层布料的设置方法,常用约束创建技巧,以及参数设置。

drawing

制作流程

drawing

1. 碰撞体预处理

在进解算前,我们需要对碰撞体模型进行数据清洗,避免模型动画存在穿插或穿透的现象。因为碰撞体的穿插会引入非物理性的状态,解算器在处理这些状态时容易产生数值不稳定,从而导致模拟过程出现抖动、爆裂或其他异常现象。

Vera ClosedSurfaceSelfCollisionFree节点介绍

这是一个对碰撞体进行自动修型的节点,该节点每帧都会进行计算更新。所以使用时最好存储下cache再连接至下游,避免降低解算速度。

使用方法

将Vera_ClosedSurfaceSelfCollisionFree连接至需要修穿插的碰撞体下方即可生效。该节点支持贴图控制生效区域,一般头部与手脚等部位不需要进行穿插修正,可以绘制为黑色。如图(下)

drawing

参数面板讲解:

drawing

  • MaskAttribute: 取消碰撞区域Mask属性名称。

  • AutoCollisionMethod: 自动修正模式切换。

  • CollisionAreaBlur: 选区范围模糊强度。

  • Smooth Iteration: 平滑计算迭代次数,通过调整该数值,可以增大修正强度

  • Iterations: 总迭代次数。可以增大修正强度,但是速度降低比较明显,推荐先调整Smooth Iteration值,如果Smooth Iteration已经无法加大修正幅度,可以尝试调整该参数。

修型效果对比

drawing

如图(上),我们使用了Vera_ClosedSurfaceSelfCollisionFree节点进行穿插修正。左边是修正前的效果,腿关节处存在穿插,没有给布料留出足够的解空间。右边是修正后的结果,穿插部位被平滑开。

2. 设置多层布料动力学

在制作复杂动力学时,会面临多层布料的制作。比如上衣,裤子,外套。这些布料会有不同的质感,所以也需要不同的参数设置。通过以下方式,我们可以实现多布料解算资产的搭建

  1. 每件需要单独设置参数的解算模型,都创建一套cloth节点以及所需约束。

  2. 创建3个merge,第一个merge节点用来连接每件布料最后一个vellumConstraint节点的1号输出端(Topology数据)。 第二个节点用来连接2号输出端(Constraint数据)。第三个节点用来连接3号输出端(Collider数据)

  3. 将三个merge的输出,分别连接至解算器的3个输入口(Input1: Topology Input2: Constraint Input3: Collider)。

drawing

3. Attach约束

Attach 约束通过将布料的一部分点固定到指定的位置,来模拟例如衣物上固定点、旗帜上的挂点等效果。同时可以通过约束强度的调节,来控制布料变形效果,让某些区域实现半跟随。

  • 参数介绍:

    如图(下),Geometry一栏是用来选择被约束物体的,TargetGeometry一栏是用来选择约束目标的。

drawing

  • 使用技巧

    以当前案例为例,attach约束都创建在袖口,肩膀,以及腰带处。袖口与腰带处的attach主要起固定作用,防止衣物掉落。肩膀处的attach,强度会比较弱,用来防止领口滑落,但是又会保持自然的解算效果。如图(下)

drawing

  • 示例应用
    • 角色服装: 将角色的服装部分区域固定在角色身上,以模拟衣物褶皱或是防止不自然的滑落。

    • 旗帜: 将旗帜的一端固定在旗杆上,模拟旗帜在风中飘动的效果。

    • 装饰物: 将装饰物如流苏或挂饰固定在布料上,保持其在模拟过程中固定的位置。

4. Stitch约束

Stitch约束可以将两个不同的布料部分连接在一起,模拟缝合效果。一般应用于布料的缝合和连接。

  • 参数介绍:

    如图(下),Geometry一栏是用来选择被约束物体的,TargetGeometry一栏是用来选择约束目标的。

drawing

  • 使用技巧

drawing

如图(上)左侧显示的是裙摆模型的拆分图,每片裙摆都是一个独立模型。所以解算时,需要将下摆缝合在一起,否则会因为没有约束固定的作用散开。右侧是Stitch约束的分布图,集中在裙摆处(右图绿色区域)。

5. 与Vellum之间效果 计算效率对比

drawing

详情

  • 解算效率测试CPU: i50-12500 GPU: MTTS4000
Example NameFramesPrimitivesParameterVellumVeraFiber 1.19
Dress12023 w Triangles 221,942 + 13,866 ( Cloth & Body )300 Iterations 10 Collision Passes 3 Post Collision Paases3 substep : 28min3 substep : 7min