UE4+DeepMotion 低成本的角色动画制作
1、前言
- 最近工作中需要在UE4中使用大量的角色动画,动画要求如下:
- 绝大部分是肢体动画
- 大部分动作都是需要定制
- 动画的制作时间要求比较急、成本要有控制
- 考虑到制作成本及时间要求,而且其实需求对动作的精准度要求不是很高,于是决定采用AI视频动作捕捉软件制作动画,然后导入到UE4中使用,其主要的转换工具为DeepMotion,流程有以下几步:
- 录制或准备动作视频
- 使用deepmotion进行视频解析,生成动作文件
- 动作文件导入到UE4中,并进行骨骼重定向,将动画适配到目标角色模型上
- 采用动画blend方案对角色动作进行合成和调整
2、DeepMotion
- DeepMotion的Animate 3D让你把2D视频中的人体动作自动转化为可以在游戏、动漫、AR/VR应用软件、社交和移动平台、以及其它交互式媒体应用程序中使用的3D动画。
- 支持在线转换
- 支持视频和图片输入,生成动作或姿势文件
- 工具能够生成肢体动作动画和表情动画
- 免费试用,每个月有30s或30个动作的的免费试用
- 收费方式分为包年和包月,高级收费版支持导出动画优化(由于我用的是低级版本,优化效果尚不确定)
- 官方网站:https://www.deepmotion.com/
3、录制或准备动作视频
- 为了保证系统能够准确的识别动作姿态,官方对于输入的动画视频有如下建议:
- 视频的镜头需要和捕捉的人物平行
- 捕捉的人物从头部到腰部的整个身体或上半身都应该可见,并且距离摄像机2-6米
- 被捕捉的人物和背景要有强烈对比便于图像识别
- 镜头里的人物不应该被任何物体遮挡,并且镜头里只有一个人物
- 不要穿宽松的或覆盖膝盖和肘部等关键关节的衣服
- 面部捕捉支持全身和半身模式,但为了获得更好的结果,建议使用半身模式
4、使用DeepMotion进行动作解析
- 注册并登录deepmotion官网,点击进入Animate3D产品,点击界面上的create,此时会有空白框提示拖入视频或图片文件,将准备好的视频拖入,这是会有输出选项,因为我需要把动作输出为FBX格式导入到UE4中,所以要选择FBXOutput和Root Joint at Origin(根节点在原点,便于导入UE4后进行重定向),Face Tracking因为当前我不关注角色表情,所以没有选择。
- 点击create按钮,等待一段时间,就会生成角色动画,同时可以更换不同的角色模型进行预览
- 点击download,将动作导出到本地
5、导入UE4,骨骼重定向
由于UE4里的角色和Deepmotion导出的角色使用的不是同一套骨骼,因此需要使用UE4的Retarget功能进行骨骼重定向。
骨骼重定向(Retargeting)
骨骼重定向的实质是通过在相似骨骼间建立对应的关系,创建一个能在另一套骨骼播放的动画资源。
常用的使用场景
- A:我有一套带动画的人物模型,但它们没使用UE4的Mannequin骨骼,我想把这套动画应用到UE4的Mannequin上。
- B:我有一个绑定好的人物角色,但它没有使用UE4的Mannequin骨骼,我想让它使用Mannequin的动画。
当前的使用场景就是A的情况,我希望把DeepMotion的动画应用到UE4的Mannequin上(当然骨骼重定向后,DeepMotion的角色也能Retarget出UE4的动画)
- 导入DeepMotion资产动画
将下载的FBX文件导入到UE4,deepMotion下载的FBX包含两个文件(A-Pose和T-Pose),建议导入含有T-pose的fbx文件,这样便于重定向时调整姿态。
拖入到UE4中后,弹出导入选项,注意勾选导入动画选项
点击ImportAll后,FBX资产导入到UE4中,这是应该出现 Mesh、动画序列、骨骼、物理属性和纹理等资产
2、将UE4骨骼调整为T-pose
由于UE4自带的骨骼动画包的pose为A-pose,而我们导入的模型是T-pose,因此需要将UE4的动画骨骼重定向Pose改为TPose。
a.首先下载UE4骨骼自带的T-Pose动画,链接如下
链接:https://pan.baidu.com/s/10uTRfANIuLLprGc03isGIA
提取码:ni2q
b.下载完成后,导入到UE4中,并选择UE4自带的骨骼
右键导入的动画资产,选择create/ create poseAsset
c.打开UE4小白人骨骼,点击Retarget Manager下的ModifyPose
选择刚才生成的姿态资产,点击import
最后选择usecurrentPose
最后将UE4的小白人修改为T-Pose
3.设置Rig Map
打开UE4骨骼和DeepMotion的骨骼,在Set up Rig下的Select Rig中统一选择Humanoid
可以看到在UE4的骨骼中source和Target是一一对应的关系
但是在DeepMotion骨骼中source和Target还没有对应,此时需要进行关系对应,虽然autoMap能够对应部分关系,但是仍有错误,这就需要手动操作,否则动画重定向后由于对应关系错乱,会出现肢体扭曲的问题。或者直接下载以下连接,将资源拷贝到工程中,点击load加载
链接:https://pan.baidu.com/s/1xxd9RaZmXgLeOKJ2QwGXuw
提取码:b23p
(手动调节时需要点击show advanced显示所有信息,由于UE4自带一些武器和肢体插槽,但是deepmotion的骨骼中没有,如twist、ik等,选择none即可)
以上为映射后的部分截图
4.微调骨骼姿态
点击骨骼视图中的Character/bones/All hierarchy,显示骨骼信息,对比UE4和DeepMotion的骨骼,发现二者的T-Pose姿态还是有些差异的,此时需要对DeepMotion的骨骼姿态进行微调:
点击deepmotion骨骼视图左下角的View Pose,选中骨骼,对骨骼进行拖拽调整,是deepmotion的姿态和UE4的基本一致
最后点击Midefy Pose/use currentPose保存当前姿态
5.生成重定向的动画
鼠标右键点击DeepMotion生成的动画文件,点击复制动画资产并重定向
此时DeepMotion的动画预览看不见,这是因为骨骼预览的Mesh未设定,需要修复一下
在deepmotion骨骼的编辑界面点击Preview Scene Setting
在右侧弹出的Preview Scene Setting面板中点击Apply to Asset
此时在创建重定向动画资产就可以DeepMotion的动画预览,在左侧列表栏选择UE4个骨骼,点击Retarget,生成重定向动画。
生成的重定向动画即可用到UE4中的小白人上。
6、采用动画blend方案对角色动作进行合成和调整
由于DeepMotion进行视频识别导出的动画是AI计算的,不可避免的会出现一些动作bug,最常见的现象是站立时双腿会不自然的抖动,为解决这一问题,可以采用UE4动画蓝图的blend进行修复,主要思路是上半身采用DeepMotion的动作,下半身采用其他站立的动作,这样进行混合,达到动画修复的目的:
首先新建动画蓝图
在动画蓝图的AnimGraph中,将导出的动画拖入到面板中,并连接OutPose
此时可以看到动画预览界面播放动画。
再将UE4的Idle动画拖入到场景中,调用Layered blend per bone,最终输出到outpose
layered blend per bone修改的参数如下
骨骼动画blend的原理是将多个动画按照不同的权重进行计算,最终会得出一个混合结果。
这样,通过blend就能将动画的上半身动作和下半身动作进行融合,相应的,我们也可以对其他的身体部位进行融合生成新的动画,但是这周融合只能在特定的动作有效,如果全身协调性的动作,融合起来的最终结果就会显得任务动作很怪。
目前我们的动画只是在蓝图动画里播放,但是有些需求可能是需要在动画资产里播放,UE4里提供的录制功能,我们点击动画视图里的Record按钮,对动画进行录制:
点击Stop选择保存的路径,新的动画资产就生成了
7、后记
以上就是我通过DeepMotion导出动画到UE4中并且重定向后,通过blend和UE4自带的录制功能生成新的动画资产的全过程。由于目前需求只要求到肢体动画,虽然DeepMotion支持表情动画的导出,但并未实践到。另外,个人感觉deepmotion对人物手部动画没有支持,这部分后续可能需要通过动画blend进行修复。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本