前皮克斯 FX 技术总监分享多层 RBD 工作流:破坏模拟改稿不必推倒重来

AI3D 发表于 09-29 浏览 2 分类 创作分享

一旦破坏模拟的整体运动获得批准,修改它们的成本就会变得极其高昂。改变某一区域的碎裂模式或行为,可能会改变碎块索引、约束、碰撞以及周围几何体的运动,迫使艺术家重新计算导演已经认可的工作。前皮克斯 FX 技术总监 Jae Jun Yi 开发了一套分层 Houdini 工作流,旨在让那些日益具体的制作意见更容易处理。

该技术在 SIGGRAPH 2026 上展示,多层 RBD(刚体动力学)模拟从相对简单的基础模拟开始,聚焦于构图和大规模运动。随后,艺术家可以手动或通过尺寸、速度、撞击强度和碰撞事件等条件来选择单个碎块。这些碎块会再次碎裂,继承父级已获批准的运动,并且只有在达到艺术家定义的触发条件时,才会转入新的动态模拟。

在这次采访中,Yi 解释了标识符、变换属性、激活状态、约束和碰撞调整如何维持各层之间的物理连续性。他还讨论了该工作流的艺术指导控制、它在高度互联或交互式破坏方面的局限性,以及他更倾向于扩展 Houdini 为人熟知的 RBD 工具集,而不是创建一个其他艺术家难以理解的专业化系统。

Former Pixar FX Artist Reveals a Smarter Way to Refine Destruction

首先,能否请你简单介绍一下你自己、你的研究以及你的背景,作为开场?

Jae Jun Yi:我担任特效技术总监(FX Technical Director)大约 12 年,职业生涯横跨多家工作室,包括皮克斯动画工作室(Pixar Animation Studios)、The Mill 和 Blur Studio。

作为一名特效艺术家,我感兴趣的不仅是最终的视觉效果本身,还包括其背后的技术结构,以及开发更高效的生产流程。尤其是,我一直关注如何更高效地控制复杂的模拟,同时又保持足够的灵活性,以响应导演的艺术指导。

基于这些经验,近年来我也有机会在 SIGGRAPH 上分享我的一些工作和研究。2025 年,我做了关于为皮克斯《Elio》开发的沙子模拟工作的 SIGGRAPH 演讲。2026 年,我以 SIGGRAPH 海报的形式展示了我的研究《多层 RBD 模拟》(Multi-Layered RBD Simulation),这就是我将在本次采访中介绍的工作。

2025 年离开皮克斯后,我开始作为独立电影人工作,探索 AI 在动画制作中的应用。2026 年,我发布了一部 AI 辅助制作的动画短片,名为《Masha》。该片入选了富川国际奇幻电影节(BIFAN)的 AI Frontier 单元,并在那里放映,随后还有观众 Q&A 环节。

我目前正在开发我的下一个独立动画项目,同时继续探索如何将我在传统 CG 制作中的经验与创作过程中新兴的 AI 技术结合起来。更多信息可以在我的 个人网站、我的 Masha 短片、SIGGRAPH 2025 演讲以及这份 SIGGRAPH 2026 海报中找到。

Masha
Masha

是什么样的反复出现的制作难题启发了这套多层 RBD 工作流?为什么在传统破坏模拟的整体运动获得通过之后再去修改它,代价会如此高昂?

Jae Jun Yi:我开始开发这套工作流的主要原因之一,是随着项目推进,艺术指导往往会变得越来越具体。

在早期阶段,通常主要关注的是破坏的整体方向和宏观运动。然而随着工作推进,导演往往开始针对单个碎块的运动、碎裂的确切时机、碎片的大小与形状,或画面中某个特定区域,给出详细得多的意见。

在这个阶段,目标未必是做出物理上尽可能准确的模拟。更常见的情况是,优先考虑的是模拟能否精确地在屏幕上实现预期的视觉效果。

传统的破坏工作流通常遵循这样的流程:
碎裂 → RBD 模拟 → 粒子/碎屑 → 体积/烟雾
然而在实际制作中,会出现若干反复发生的问题。

随着艺术指导不断演进,艺术家往往需要重新计算现有模拟中相当大的一部分,很多时候甚至不得不重跑整个模拟。在 RBD 模拟中,许多碎块之间会发生物理交互,因此哪怕只改动一个条件,也可能改变那些已经获得通过的其他碎块的运动。

例如,即便整体运动已经通过,你只想给某个特定区域添加更细碎的破裂细节,这也不是单纯提高几何细节那么简单。碎块的数量及其索引会发生变化,约束关系可能也需要重建,这意味着与现有模拟的衔接也必须重新组织。

这促使我换一种思路来看待破坏。与其一开始就构建最终级别的细节,我认为更高效的做法是先从较大的碎块和整体运动入手,然后随着项目和艺术指导变得越来越具体,只把必要的区域逐步碎裂成更小的碎块。

换句话说,模拟的细节级别也可以随着艺术指导一同逐步演进。主要的技术挑战在于,每一个新的模拟层仍然必须与前一层自然衔接。因此,这套工作流中很重要的一部分,就是逐个碎块地管理:某个碎块何时应继续沿用现有的运动,何时应转入一个新的动态模拟。

Former Pixar FX Artist Reveals a Smarter Way to Refine Destruction

你能带我们了解一下分层模拟流程吗?已批准的基层模拟中的运动是如何被保留并传递到后续引入额外破碎、碎片或次级效果的层中的?

Jae Jun Yi: 该过程从标准的首轮 RBD 模拟开始。

在此阶段,主要关注的不是详细的破碎图案,而是整体的破坏运动和画面中的构图。一旦基础模拟获得了足够认可,我就会选择需要额外细节的碎块。

选择目标碎块主要有两种方式。

一种是根据艺术指导手动选择,另一种是使用不同条件以程序化方式选择。

例如,可以基于以下条件选择目标碎块:

  • 超过一定尺寸的碎块
  • 速度高的碎块
  • 受到强烈冲击的碎块
  • 与特定物体碰撞的碎块
  • 移动超过一定距离的碎块

然后,所选碎块会再次破碎,以生成更小、更精细的几何体。

此时,最重要的事情之一是保留先前模拟中的碎块与新破碎碎块之间的关系。

在创建新的破碎层之前,我会将上一阶段的碎块标识符存储为一个单独属性,然后为新的破碎层生成新的索引结构。这使我能够追踪每个新碎片来自哪个原始碎块。

接下来,我将先前模拟中的变换和运动属性传递到新创建的碎块上。这意味着创建新的破碎并不会立即开始新的模拟。

相反,每个新碎块首先继续跟随现有模拟的运动。当碎块达到其指定的触发帧时,它会从动画运动过渡到活动的 RBD 模拟。触发帧可以由艺术家手动设置,也可以基于冲击或速度等条件生成。

新破碎的碎块通过初始模拟中的碎块标识符继承原始运动,跟随该运动直到达到指定的触发条件,然后过渡到活动模拟。

约束也使用先前模拟中的碎块关系进行变换。当新模拟变为活动状态时,继承的运动和新模拟的运动之间的差异有时会导致约束过度拉伸。在这些情况下,我会根据约束长度等条件移除那些约束。
之后,新的 RBD 运动可以作为粒子、碎片和灰尘等次级效果的基础。

如有必要,可以对第二层、第三层或更多模拟层重复相同的过程,从而逐步添加细节。

Former Pixar FX Artist Reveals a Smarter Way to Refine Destruction

你如何管理图层之间的碰撞与物理连续性,让新模拟出的碎片感觉与原初的破坏相互连接,而不是看起来像叠加在上面的独立特效?

Jae Jun Yi: 我认为这是整个工作流程中最重要的部分。

要让一个新的模拟层感觉像是前一次破坏的自然延续,而不是叠加在上面的独立特效,就必须保持各层之间的运动连续性。

为此,新模拟中的每一个碎块都会继承上一次模拟的运动。即使一个碎块被再次破碎,它仍会继续跟随其父级碎块的位置、朝向、速度以及其他运动属性,直到它被激活为止。

只有当它到达指定的触发帧时,它才会转入主动模拟。即便到了那一刻,模拟也并不是从一个全新的状态开始,而是把上一次模拟继承而来的运动作为初始状态。

从那一刻起,重力、碰撞和约束等物理力才开始作用于这一继承而来的运动。

简而言之,新的模拟并不会取代先前的模拟。它从先前的运动继续下去,并让该运动从那一刻起按物理规律发展。同样的原则在第二层和第三层模拟中也会再次应用。

因此,尽管最终的破坏在技术上可能是由多次模拟过程构建而成的,它看上去仍然像是整个过程都在一次连续的物理模拟中发生。

Former Pixar FX Artist Reveals a Smarter Way to Refine Destruction

该工作流为 FX 艺术家提供了哪些用于艺术指导的控制手段?他们能否有选择地细化单个区域、更改碎裂规模,或调整时序,而不影响已经获得批准的模拟部分?

Jae Jun Yi:这是一个非常重要的问题,因为这项研究的出发点实际上就是 FX 艺术家如何更高效地实现艺术指导。
随着项目推进,FX 艺术家收到的意见往往会变得越来越具体。

例如:

“让这个区域的动作完全保持原样。”

“我想让右侧再碎裂得多一点。”

“我想在这次撞击之后出现更小的碎片。”

“我想让这一块稍微晚一点掉落。”

在这类情况下,重新运行整个模拟可能非常低效。因此,这个工作流的第一步就是定义模拟中究竟哪一部分需要更改。

最直接的方法是艺术家手动选择目标碎块。
如果导演的意见指的是画面中的某个特定区域或某个特定碎块,手动选择往往是最快、最有效的方法。

另一方面,如果目标碎块具有某种共同的运动特征,就可以使用程序化条件。例如,可以根据以下条件对目标碎块进行分组:规模、速度、撞击、碰撞以及其他条件。

我认为特别重要的另一个方面是更改的时间范围。一个已获批准的模拟并不一定只指特定的碎块。有时,已获批准的部分是按时间定义的。

例如,导演可能会说:“我喜欢到目前为止的动作,但我希望在这一帧之后它碎裂得更多。”

在这种情况下,可以保留到某一时间点为止的现有动作,而新的碎裂模拟只在所需的时间点之后才激活。
这使艺术家能够有选择地控制要修改哪些碎块、要细化哪个区域、使用什么碎裂规模,以及新的模拟应在何时开始生效。

我认为这是多层工作流的主要优势之一。

Former Pixar FX Artist Reveals a Smarter Way to Refine Destruction

哪些工具构成了这套工作流的基础?你是否需要开发自定义的 Houdini 设置、数据结构、缓存方法或程序化工具,才能让分层修订在实际制作中变得可行?

Jae Jun Yi:这套工作流从根本上基于 Houdini 标准的 RBD 模拟工作流。

只要有可能,我更倾向于扩展一套已有的 Houdini RBD 工作流,而不是构建一个完全独立的系统。为了选择目标碎块并计算激活条件,我在 RBD Solver 内部使用了 SOP Solver。

对于这些条件,我使用了 Houdini 的 RBD 模拟所提供的信息,例如:速度、撞击和碰撞数据。

我还添加了几个自定义属性,用来保存需要在各个模拟层之间传递的信息。例如,我会存储上一破碎阶段的碎块标识符、目标状态、激活时机和触发值等信息,以便它们能在下一层中被再次使用。

与此同时,我个人倾向于让节点数量尽可能少,并避免偏离标准的 Houdini 工作流太远。
这样做主要有两个原因。

首先,这会让设置更容易修改。在特效制作中,艺术方向可能不断变化,而设置越是专门化、越是复杂,修改和调试所需的时间就越多。其次,设置需要能够被其他艺术家理解和使用。在制作环境中,我认为保持 Houdini 艺术家所熟悉的结构,比构建一个只有某一位艺术家才能理解的极其复杂的系统更为重要。

因此,多层 RBD 工作流中的每一层并不使用完全不同的系统。相反,相同的基本结构会被重复并应用到每一个额外的层上。

Former Pixar FX Artist Reveals a Smarter Way to Refine Destruction

这种方法的主要局限性是什么,尤其是对于高度相互关联的坍塌,或者从根本上改变基础运动的变化?类似的分层技术最终能否改善实时影视或游戏的破坏工作流程?

Jae Jun Yi:我提出的这种方法也有明显的局限性。最实际的问题之一出现在新的破碎层被激活时,现有碎块与新生成的碎片之间发生几何体重叠或强烈碰撞。

由于较小的碎块是在已经处于运动状态的模拟中被激活的,一些碎片可能在开始时彼此距离过近,或者发生穿插。

在这些情况下,碰撞求解器可能会产生非常强烈的反应。
这可能导致碎块突然向外弹出、抖动,或朝意想不到的方向移动。我使用的一个实用解决方案是,稍微减小新分层模拟中所用碎块的碰撞尺寸。这会在碎片之间制造少量空间,有助于减少激活瞬间过度的碰撞响应。

在最终结果中,这些细微差异通常很难被察觉,因为 RBD 模拟会与粒子、碎屑、尘土和烟雾等次级效果结合在一起。

然而,几何体穿插仍然是该方法的局限之一。另一个明显的局限出现在所要求的改动不是局部细节调整,而是改变破坏的整体方向或大规模运动本身时。这一工作流程的优化目标是:在保留已获批准的基础运动的同时添加细节。如果整体坍塌行为需要改变,通常更合适的做法是重新运行基础模拟。

对于游戏和实时应用,我认为类似的方法可能对烘焙好的破坏或影视级过场动画有用。在这些情况下,思路与电影制作类似,因为额外细节是添加在已经确立的运动之上的。然而,对于需要根据玩家输入动态改变结果的完全交互式破坏,当前方法仍有局限。

这一工作流程主要针对电影制作而设计,因为在这些场景中,摄像机和最终画面构图是预先确定的,导演也能为最终帧给出非常具体的艺术指导。因此,这种方法的目标并不是为每一种可能的情况创建物理上最准确的模拟。相反,它是要尽可能保留已获批准的运动,同时让特效艺术家对如何针对特定构图和时机实现导演的艺术指导拥有更精确的控制。

Former Pixar FX Artist Reveals a Smarter Way to Refine Destruction

Jae Jun Yi,资深特效艺术家

采访人: David Jagneaux

相关链接

原文链接:https://80.lv/articles/former-pixar-fx-artist-reveals-a-smarter-way-to-refine-destruction

喜欢这篇内容吗?