看动画的时候,角色从水里出来,头发上挂着水珠,肩膀上的水顺着皮肤往下淌——你有没有想过,这些水为什么看起来"对"?

大多数时候我们不会注意。但如果它做错了,你立刻就能感觉到:水像一层塑料膜贴在身上,或者干脆像一堆珠子滚过表面,跟角色没有任何关系。

打开网易新闻 查看精彩图片

资深特效师Milad Sãvar最近分享了一份 Houdini 的研发测试,专门研究这个问题:水如何附着在动画角色的表面上。角色动画部分由创意技术专家Alessandro Cracolici提供。

附着感,才是水特效的隐形门槛

Sãvar 提到,在做角色相关的水特效时,附着(adhesion)在营造可信的水体堆积、滴落、飞溅以及水与角色表面的互动中,扮演着重要角色。

这句话听起来像废话,但拆开看就知道难点在哪。水不是独立存在的——它必须"认"这个角色。角色的动作、体表曲率、运动速度,都会影响水往哪里流、在哪里停、什么时候掉下去。

如果附着做不好,水就会变成一层贴图,或者变成跟角色无关的粒子群。观众说不清哪里不对,但就是觉得假。

在这份研发中,Sãvar 尝试了多种 Houdini 里的程序化工作流,来复现这些行为。

他具体试了哪些东西

根据分享的内容,这套研发涉及的环节包括:

  • 使用自定义VEXSOP Solver处理碰撞
  • 用粒子控制来实现身体附着与飞溅滴落
  • POP FluidGas Tension工作流
  • 针对速度和位置目标的自定义 VEX 控制
  • 直接从源(source)采样噪波
  • 用于修补粒子缝隙的后处理技巧

这份清单里,有几个点值得单独拎出来说。

"粒子控制身体附着"意味着水的行为不是靠一个统一的流体解算硬算出来的,而是被拆成了可控的粒子逻辑。哪些粒子该留在身上、哪些该往下滴、滴到什么时候脱离,都是可以被单独调节的。

"从源采样噪波"则关系到水的自然感。真实的水不会均匀地铺在表面上,它会有厚薄、有断续、有随机性。噪波采样就是给这层水加上"不完美"。

而"修补粒子缝隙"是典型的后期救火环节。粒子模拟做到最后,经常会出现不该有的空隙或者断裂,这一步就是把这些瑕疵补上。

Sãvar 还分享了这份研发的HIP 文件,可以获取。

水之外,他还在折腾别的

在其他的测试中,这位艺术家还探索了使用Copernicus的自定义波浪曲线模拟,以及受电影《猩球崛起:新世界》启发的大规模海洋溢流效果。

从角色身上的一滴水,到整片海面的翻涌,用的是同一套工具,但解决的问题完全不同。角色水特效关心的是"这一滴水跟这个人的关系",海洋模拟关心的是"这一片水自己怎么动"。

顺带一提,Houdini 在水模拟之外也常被用来做各种视觉效果。比如 3D 艺术家兼技术总监Matt Taylor做的莫比乌斯环风格腕表,以及 3D 艺术家wildWillowPillow做的石墨铅笔粒子特效。

为什么这件事值得被单独拿出来讲

角色水特效不是一个"有没有"的问题,而是一个"信不信"的问题。

观众不会去分析你的解算器用了什么求解方式,也不会关心你的 VEX 写了多少行。他们只会在一瞬间判断:这个水,是真的还是假的。

而附着,恰恰是那个决定真假的关键。水珠停在肩膀上不往下掉,是因为表面张力赢了重力;水顺着下巴滴下来,是因为重力终于占了上风。这些微小的物理博弈,如果没被模拟出来,水就只是一层装饰。

Sãvar 这份研发的价值,不在于他做出了一个多炫酷的镜头,而在于他把"水怎么跟角色发生关系"这件事,拆成了可以被程序化控制的一个个环节。碰撞、附着、滴落、飞溅、缝隙修补——每一步都有对应的工具和方法。

对于做角色特效的人来说,这是一份