在本文中,我将展示如何使用 Phoenix FD for 3ds Max 创建水果爆炸。两颗水果高速碰撞,然后果皮炸裂,果汁溅出。
我们选用西红柿作为本教学的蔬果。您可以根据自己喜好修改水果类型或材质,达到你想要的水果裂开汁液飞溅的效果。本文不详细介绍的水果材质的设定。
这个动画中最具挑战性的部分就是水果相撞裂开的效果。我不使用 softbody 或布料模拟,而是使用 3ds Max 的 Morpher Modifier 和关键帧来制作水果裂开的效果。本教程避免使用 softbody/cloth 模拟是因为物理模拟很难控制其结果。通过关键帧设置,可获得完全的控制力并能层层添加细节。
由于几何体动态完全依赖于关键帧动画,因此找到与之对齐的正确参考素材至关重要。您可以上网搜索“high speed fruit”或“fruit explosion”等关键词。或者当任何素材网站寻找。找到适当的素材后,将其加载到 3ds Max中。这样您就可准确地将关键帧动画与视口中的素材对齐。
1.水果的变形
根据参考视频的观察得出结论,只需要一个基础水果几何体,加上四个不同的变形几何体就足以重现水果相撞裂开的效果。从建模基本形状开始,水果从简单的 Sphere 修改,然后切割几何体,如上图所示。所有其他四个变形的几何体都基于这个基础集合体。这样能确保所有五个几何体都具有相同的拓扑结构,之后可以拿来作为 morph targets。
我们将基本几何体复制四个。通过修改这四个几何体的模型顶点或在其上添加修改器,我们创建了四个不同的变形的水果几何体:split,bump_shape,dent 和 FFD_deformed。这四种几何形状分别代表了在碰撞过程中果实变形的各个阶段。 在基本几何体上添加“Morpher modifier”,并将四个变形的几何体加载做为其 morph targets。
上图显示了四个 morph targets 的曲线。在第 15 帧,两颗水果相撞。通过混合这四种变形的几何体,我们手动调整出果实相撞变形,破裂的动态效果。
除了 Morpher modifier 之外,我们还在其上添加一个 Ripple modifier,让水果碰撞时获得微妙的波动感。然后,我们对 Ripple 设置为关键帧动画。为了使运动和形状更随机,我们还添加 FFD3X3X3 modifier 并为其控制点设定关键帧动画。然后,我们添加一个 Shell modifier 增加其厚度,使 Phoenix FD 的液体能与水果的网格碰撞。
一旦单一颗水果的变形动画准备就绪,我们复制并旋转之,然后稍微改变 Modifier stacks 中的参数,使左右两颗水果看起来不完全一样。
当两颗水果碰撞时,注意到必须有一颗果实推动另一颗。在本例,我们假设左侧的水果比较强势。我们在场景中创建了一个 Dummy helper。两颗水果连结到这个 Dummy。当水果碰撞时,对 Dummy 设置关键帧动画,使两者看起来好似黏在一起移动。
最终的关键帧动画
2.流体模拟
现在水果的几何体变形动画已经完成,我们准备好进入下一阶段 – 流体模拟。我们在两颗水果内部放置两个环状几何体(上图中以半透明显示)。这环状几何体添加到 Liquid Source 的发射器节点列表中。
在真实的物理世界中,果汁(果肉)充满在果实内部,水果碰撞时果汁会挤出。然而,我们不使用 Phoenix FD Properties / Initial Fill 的功能来填充水果。Initial Fill 容易产生液体渗漏的问题;相反地,我们使用环状几何体来发射液体。这样就可以更容易地控制流体发射,特别是当场景有快速移动的物体(水果)时。
对 Outgoing Velocity 设定关键帧,使其从第 9 帧喷发液体,然后在第15帧完全停止。如此,当果实碰撞时,就可获得猛烈的果汁爆发效果。
System Unit 与 Simulation Grid:本教学中 Liquid Simulator 的 Cell Size 为 0.64cm。 启用 Adaptive Grid 选项。在真实物理世界中,一般的水果大小是在公分的范围内; 因此,我们将 3ds Max 系统场景比例设置为公分。实际上我们的水果大小直径 50 公分。这是一个巨大的果实。我们故意使用这么大的几何体,是因为使用大型物体让流体要花更长的距离移动,这样一来更易于操控流体的效果。
Dynamics:因为在本例中不需要重力,所以我们重力的数值调得非常低。水果移动迅速,因此我们提高 SPF 的数值。我将粘度(Viscosity)和表面张力(Surface Tension)设定为少量,使液体稍稍看起来有点粘稠。对 Time Scale 设定关键帧动画,这样果实在爆炸时会产生慢动作效果。
上图为 Time Scale 的关键帧曲线,这样在流体模拟完成后,我们会得到随时间缓慢移动的爆炸流体。
左图:没有启用 Mesh Smoothness;右图:启用 Mesh Smoothness。对于“Mesh Smoothing”,将“Smoothness”设置为 10,将“Particle Size”设置为 0.5。
最终渲染结果