要在 Blender 中创建类似我现在屏幕上展示的动画,也就是让一个通过关键帧动画控制的对象与 Rigid Body 对象发生交互,需要将这个手动动画对象设置为 Passive 类型的 Rigid Body,并勾选 Animated 选项。。。
本教程不提供中文配音。您可以在下方观看英语配音的视频,并选择中文、英文或其他语言的字幕。视频下方提供了翻译成中文的文字稿。
视频文字稿
大家好!要在 Blender 中创建类似我现在屏幕上展示的动画,也就是让一个通过关键帧动画控制的对象与 Rigid Body 对象发生交互,需要将这个手动动画对象设置为 Passive 类型的 Rigid Body,并勾选 Animated 选项。

接下来我们一步一步完成创建该动画所需的操作。
当前所有对象都被设为台球桌的父对象,但这种结构不适用于物理模拟。因此首先选择除台球桌以外的所有对象,然后按 ALT P,并在屏幕弹出的菜单中选择 Clear Parent and Keep Transformation 选项,以清除父子关系。
接下来创建一个新的 Collection,用来放置所有台球。这样我们可以通过右键点击该 Collection 并选择 Select Objects 来快速选中所有台球。当需要同时修改所有台球的某些 Rigid Body 参数时,这会非常方便。
现在为台球桌添加一个 Passive 类型的 Rigid Body 组件,然后将 collision shape 设置为 Mesh,这样台球就可以落入球袋中。
所有台球都将作为 Active 类型的物理对象,因此请选中它们全部,打开工具搜索框,输入 Rigid Body Add Active,为所有台球添加该组件。
根据我当前场景的初始设置,台球的质量过轻。要一次性修改所有台球的质量,请先选中它们全部,然后按住 ALT 键,同时点击 Rigid Body 选项卡中的 Mass 字段。接着松开 ALT 键,输入一个合适的数值,例如 0.16 kg。这个质量值就会被应用到所有台球上。
请记住这个 ALT 键技巧,当需要同时修改多个对象的参数时非常有用。在这个场景中,这个操作还可以用于修改其他所有台球通用的参数,例如 Damping、Bounciness,以及位于 Rigid Body 选项卡中的 Surface Response 和 Dynamics 部分的其他物理参数。
再次使用这个技巧,将所有台球的 Collision Shape 修改为 Sphere。
现在我们可以在动画的第一帧放置球杆的位置,并为其初始位置插入一个动画关键帧。

球杆需要添加一个 Passive 类型的 Rigid Body 组件,并且最重要的是,需要勾选 Animated 选项,正如本教程开始时所说明的那样。

接下来切换到 Local Axis 显示模式。注意我们可以沿着球杆的本地 X 轴方向前后移动它。
将时间轴移动到动画的第六帧,调整球杆使其击中白球,然后记录这个动画关键帧。

再向后移动 3 帧,将球杆从球桌位置移开,并为其新位置记录另一个动画关键帧。
在开始进行物理模拟 Bake 之前,请先将场景另存为一个新的文件。
返回时间轴的第一帧,在 Properties Editor 中打开 Scene 选项卡,然后在 Rigid Body World 的 Cache 部分点击 Bake All Dynamics。

当 Rigid Body 模拟 Bake 完成后,在 3D Viewport 中查看生成的动画效果。

如果台球的运动看起来过慢、过快,或者力量过大,可以调整不同参数,例如球杆的初始运动速度,或者球桌的 Friction 数值。我建议不要把台球的 Friction 设置得过低,否则它们可能会在桌面上滑动而不是滚动。
每次修改参数之后,请在 Rigid Body World 的 Cache 部分清除所有 Bake,返回时间轴第一帧,保存文件,然后重新进行物理模拟 Bake。
Bounciness 参数的默认值是 0。请将球桌的该参数设置为 1,并适当提高台球的数值,但不要设置过高,以避免它们在底部聚集而没有反弹。请记住,你可以通过按住 ALT 键点击参数,然后松开 ALT 键输入数值的方式,一次性为多个对象修改同一个参数。
另一个需要注意的方面是球杆撞击白球时的速度,因为它与施加的力成正比。有两种方法可以让球杆运动更快。
第一种方法是将撞击关键帧向动画第一帧靠近。可以在时间轴中选中表示关键帧的小菱形图标,然后按 G 键向前或向后移动它们。
第二种方法是在动画第一关键帧中,将球杆沿其 X 轴方向放置得更靠后的位置。在这种情况下,需要重新记录关键帧。
这两种方法可以结合使用,通过不断尝试找到最满意的效果。理想的结果通常来自初始距离、撞击速度以及 Friction 和 Bounciness 参数之间的平衡组合。
在进行测试时,请记得返回第一帧,清除 Bake,保存文件,然后重新进行一次 Rigid Body 模拟 Bake。
好了,本教程到这里就结束了!希望这个教程对你有所帮助!我们下次再见!