用ARKit、iPhone X实时捕捉面部动画,Unity推出Facial AR Remote
文章相关引用及参考:映维网
(映维网 2018年08月14日)随着ARKit和iPhone X开始支持Unity,开发者现在可以通过一套易于使用的工具来创建美观且富有表现力的角色。这为江毅冰即将上映的动画短片《Windup》探索了实时木偶操作的魔力。
Unity Labs和《Windup》团队进行了合作,希望看看他们能在多大程度上推动Unity为电影角色实现实时捕捉面部动画的能力。与此同时,Beast House FX的Roja Huchez在混合形状的建模和Rigging上为他们提供了协助。
团队的成果是Facial AR Remote,这是一种通过联网设备直接在Unity编辑器中捕获性能的低开销方式。他们发现Remote的工作流程不仅对动画创作有用,而且对于角色和混合形状建模和Rigging同样非常有用,其提供了一种在Unity中构建自家animoji或memoji类型交互的简化方法。这允许开发者能够在编辑器中迭代模型,无需构建到设备,从而消除了流程中耗时的步骤。
为什么要构建Facial AR Remote
他们认为为电影项目构建新动画工具存在一个新机遇,可以为Unity开启实时动画的未来。通过AR工具进行创作还有一个“酷炫的因素”,而且有机会继续推进Unity的实时渲染。当基本掌握了在编辑器编辑来自手机的数据后,他们团队及办公桌周围的每个人都马上沉浸于操纵角色的乐趣之中。他们看到了这种技术的巨大潜力。最初的实验很快证明了它既有趣又有用。这个项目迅速扩展到当前的Facial AR Remote和功能集。
团队开始着手扩展项目,而Unity的目标是普及开发。他们希望围绕AR混合形状动画的工具和工作流程能够比当前的传统动捕方法更容易使用和更容易获取。Facial Remote允许他们构建为在编辑器中迭代混合形状(无需只是为了浏览手机上的网格变化而构建新版本)构建了一定的工具。这意味着用户能够捕捉一位演员的面部并将其记录在Unity中。这种捕捉可用作迭代和更新角色模型的固定点,或者将动画重新定位到另一个角色,无需重新捕捉与演员的会话。他们发现这个工作流程非常适用于在角色表达和改进各个混合形状。
Facial AR Remote的工作原理
Remote由客户端手机应用程序组成,其中流式读取器充当Unity编辑器中的服务器。客户端是一个轻量级应用程序,它能够利用ARKit的最新功能,并通过网络将数据发送至Stream Reader GameObject上的Network Stream Source。借助简单的TCP/IP socket和固定大小的字节流,他们将混合形状,相机和头部姿势数据的每一帧从设备发送至编辑器。接下来,编辑器对数据流进行解码,并实时更新rigged角色。为了消除因网络延迟引起的抖动,流式读取器保留了历史帧的可调缓冲区,以防编辑器落后于手机。他们发现这是一个重要的功能,可以保持预览角色的流畅外观,同时尽可能接近真正的演员姿势。在较差的网络条件下,预览有时会出现丢帧情况,但所有数据仍然会记录来自设备的原始时间戳。
在编辑器方面,他们使用流数据来为预览驱动角色,以及烘焙动画片段。由于他们将来自手机的原始数据流保存到磁盘,因此可以继续在角色上播放数据。由于保存的数据只是来自手机的原始数据流,他们甚至可以将动作重新定位到不同的角色。当你对数据流感到满意时,你可以将数据流烘焙到角色的动画片段。这很棒,因为它们可以像Unity中的任何其他动画一样使用你创作的剪辑来驱动Mecanim,Timeline的角色。
“Windup”动画演示作品
随着“Windop”的技术演示作品渲染完成,团队能够使用这些高质量的asset来开始他们的动画探索。由于他们能够相当快速地启动和运行基线,他们有大量的时间来使用他们开发的工具迭代混合形状。抖动,平滑化和形状调整很快成为了项目的主要关注领域。通过计算帧速率之间的连接和帧处理中的延迟,以及从播放中移除相机移动,他们优化了用于抖动的解决方案。移除相机移动的能力确实能令用户专注于捕捉混合形状,并使他们能够将手机安装在支架上。
理解混合形状并充分利用ARKit中的混合形状锚点是最需要进行迭代的方面。从文档中很难理解不同形状的细节。最终表达的大部分都来自于角色的风格化,以及形状如何以某种预期的方式结合在一起。他们发现,通过限制混合形状变化对面部特定区域的影响,可以改善眼睛/脸颊斜视形状和嘴部伸展等形状。例如,脸颊斜视对下眼皮几乎没有影响,斜视下的眼皮对脸颊几乎没有影响。
利用Skinned Mesh Renderer中的信息来查看构成任何帧中表达的值,然后超频或降频这些值确实有助于实现混合形状。他们能够快速超频或降频当前的混合形状,并且判断混合形状是否需要调整,以及调整的幅度。这有助于完成最困难的任务之一,亦即为正确的角色实现关键的姿势,就像他们希望小女孩以特定的方式微笑一样。能够看到哪种形状构成一个给定的姿势真的很有帮助。在这种情况下,是左右拉伸的数量给出了最终的形状。他们发现将手机提供的形状视为小积木很有帮助,而不是说将其视为人类可以孤立地做出的某些面部姿势。
在演示作品制作的最后,他们希望进行一项实验来改善角色的部分动画。借助针对ARKit混合形状的集体智慧,他们尝试修改角色的基本中性姿势。由于小女孩角色的风格化,他们认为角色的基本姿势令眼睛过宽,脸上的基础笑容过多。斜视混合形状的效果同样需要更好地考虑。事实证明,当测试中的某人闭上眼睛时,眯眼似乎总是介于60%-70%左右。对中性姿势的改变带来了回报,而且随着所有其他工作的进行,你可以在演示作品中看到富有表现力和动态十足的角色。
未来
结合Facial AR Remote和Unity的其他工具,你可以无所限制地创建出优秀的动画。无论是小孩子表演,然后录制自己喜欢的角色并与朋友和家人分享,还是游戏播客为他们的角色注入额外的生机,又或者是专业人士和业余爱好者为直播制作动画内容,不用多久任何人都能够操纵数字角色。你可以下载Unity 2018,浏览Facial AR Remote在GitHub上的设置指南,然后马上开始自己的探索。
文章《用ARKit、iPhone X实时捕捉面部动画,Unity推出Facial AR Remote》首发于 映维网。