Blender将物体的模拟动画转成关键帧动画并导出
在Blender中,我们经常会为物体添加各种模拟动画,例如布料模拟、刚体模拟等,然后当我们想要将这些模拟动画导出到其他3D引擎中(例如C4D、Maya、Three.js)时,就发现无法导出。这是由于Blender导出动画只能通过关键帧导出,因此我们就需要将物体的模拟动画转成关键帧动画后再导出。
注意:本文仅适用于导出单个物体的形变动画,不适用于拓扑结构发生改变(例如顶点数发生变化)的物体动画。另外如果需要导出多个物体的动画,可以分别对每个物体一一导出。
模型示例
我们先建立一个模型,方便讲解如何导出模拟动画(使用的Blender版本是2.81):
如图所示,我们在原点添加一个棱角球,在上方添加一个平面,平面被分成20*20的网格,左侧添加一个风场并调节好风的大小和方向。
然后为棱角球开启物理碰撞模拟:
再为我们的主角平面开启布料模拟,并打开“物体碰撞”和“自碰撞”选项:
最后点击空格播放动画,就出现了下面的效果:
将模拟动画转成关键帧动画
为了将前面模拟出的动画转成关键帧动画,我们需要做以下操作:
导出.mdd文件
点击选中要处理的物体(在本文中就是前面提到的平面),然后导出成 .mdd
格式的文件:
如果导出格式中没有 .mdd
选项,需要先在插件设置中搜索“mdd”并勾选该插件:
注意:如果物体的位置、旋转、缩放等属性被改变过,那么导出 .mdd
文件前必须先选中物体,然后应用全部变换。否则,后续物体的位置、旋转、缩放等属性就会出现偏差:
删除物体原有的模拟动画
成功导出 .mdd
文件后我们就不需要原有的模拟动画了,直接将该物体上与这个模拟动画相关的物理计算和修改器都删掉。
导入之前的.mdd文件
点击选中该物体(必须),然后将之前导出的 .mdd
文件再导入到Blender中:
导入成功以后在“时间线”窗口中就可以看到一系列关键帧:
播放并检查关键帧动画
点击空格播放动画,这时我们就发现在没有模拟的情况下,物体也有和之前相同的动画。甚至我们将其他物体和力场删除后,这个物体的动画依然正常播放:
检查一下是否还有其他问题,如果没有问题的话,我们就成功地将这个平面的布料模拟动画转成了关键帧动画。
导出关键帧动画
成功转换后,我们就可以将前面物体的关键帧动画导出成其他格式,例如导出成 glTF
格式,只需要在导出时勾选“动画”和“形态键”选项即可:
最后,我们就可以在其他3D引擎中导入并查看模型动画了,例如导入Three.js中:
或者直接用Windows自带的3D查看器打开: