用普通视频为 3D 角色制作动画
过去,捕捉运动需要带标记点的服装、摄影棚和专用设备。Animatic 可以把普通视频中的人体动作迁移到您的 3D 角色上。只需一部手机或任意一台相机即可。
本文介绍如何拍摄素材、如何准备帧,以及如何获得可直接用于游戏或短片的动画。
需要准备什么
如何拍摄容易迁移的视频
原始视频的质量决定了动画的质量。以下是几条拍摄规则:
- 固定机位。三脚架或平稳的表面比手持拍摄更好。如果相机抖动,角色的动作就会断续。
- 人物完整入镜。在整个动作过程中,腿、手臂和头部都应清晰可见。
- 均匀光照。强烈的阴影和与背景的强烈对比会妨碍准确判断身体姿态。
- 只有一个人。如果画面中有多人,就需要手动选出需要的那位。
- 简单的背景。纯色墙面或平整的地面更容易把人物与环境分离。
- 适中的速度。非常快速的运动,例如击打或跳跃,在不损失质量的情况下更难迁移。
动作迁移如何工作
整个过程由若干依次执行的阶段组成:
- 拆分为帧。视频被拆分成单独的图像,保存到文件夹 inputs/[名称]/imgs/。
- 关键点跟踪。程序找到人体的关键点,并逐帧跟踪它们,由此得到运动轨迹。
- 骨架拟合。角色的骨架会根据轨迹进行调整,使其动作与视频中人物的动作保持一致。
- 检查与平滑。清除由于不精确帧而产生的细微抖动。
- 导出。完成的动画保存为 FBX 或 GLB。
需要多长时间
传统的逐帧精确拟合能给出准确结果,但耗时较长。一段高质量的长视频,根据电脑性能和片段长度,处理时间可能从几分钟到几个小时不等。对于短片,时间会明显更短。
如果需要快速得到结果,例如用于预览,请使用快速模式。它能显著缩短等待时间,但逐帧拟合的精度可能更低。
如何检查动画
处理完成后,在查看器中打开结果并播放几次。注意:
- 关键姿势与原始视频的动作是否一致;
- 腿部:脚是否陷入地面或在地面上「打滑」;
- 关节处突然的抽动,这可能表明跟踪出现错误。
导出到游戏引擎
动画可以保存为 FBX 格式用于 Unity 和 Unreal Engine,或 GLB 格式用于 Godot。有关格式的更多信息,请参见文章《导出为 FBX 和 GLB》。
常见问题
可以用手机拍摄吗?
可以,关键是要固定机位、光线良好。横向拍摄通常效果更好。
动物的视频适用吗?
程序针对人体及其骨架而设计。对于其他生物,结果可能不够准确。
