blender中的骨骼约束是没法导出的,并不是通用的行业标准,如果想导出使用rigify制作的动画,并在游戏引擎或其他三维软件导入,就需要烘焙动画,过程比较繁琐。网上有个视频分享了一个方法,我这里做一下总结。
1、复制rigify控制骨架,并进行重命名,我暂且命名为root,用于导出。
2、选中root骨架,再选择DEF骨骼集合中的所有骨骼,按ctrl+i,进行反选,删除除了DEF骨骼集合以外的所有骨骼。有些骨骼不能选择的,可以在大纲视图里面让它变的可选,然后继续删除。
3、如果骨骼的父子关系有丢失的,就需要重建剩余骨骼的父子关系,保证根骨骼能够带动整个骨架运动。
4、如果骨骼变换被锁定的,可以在N面板中进行解锁。
5、选中所有剩余骨骼,按ctrl+alt+c删除所有约束。
6、选中当前骨架,打开blender中的文本编辑器,输入一段python脚本
python
import bpy
rig_name="control_rig"
for bone in bpy.context.selected_pose_bones:
nc=bone.constraints.new(type='COPY_LOCATION')
nc.target=bpy.data.objects[rig_name]
nc.subtarget=bone.name
nc=bone.constraints.new(type='COPY_ROTATION')
nc.target=bpy.data.objects[rig_name]
nc.subtarget=bone.name

其中,control_rig是rigify的控制骨架,这里为root骨架的所有骨骼都添加了复制位置和复制旋转的约束,并将目标骨架设置为control_rig。这样一来,所有control_rig中的动作都会被复制到root骨架上。
然后,执行python脚本。
7、选中角色模型,按alt+p进行解绑,解除原来的骨骼绑定关系。
8、将角色模型绑定到root骨架上,按ctrl+p后,选择"附带空顶点组"即可,因为角色原来已经有了权重的顶点组,这样一绑定,原来的权重仍然有效。
9、选中root骨架,在动作编辑器选中需要烘焙的动画,点击物体(姿态)->动画->烘焙动作菜单,即可为root骨架烘焙动画。
10、选中角色模型和root骨架,导出glb时选择需要导出的动作即可。