前些时候,我们在Unity官方微博分享了下面的视频内容。使用iPhoneX和ARKit的特性,利用一套简易的工具,Unity Labs的开发人员实现了更便捷的实时面部表情捕捉,让江毅冰新作《发条乐师》中小女孩的角色形神兼备,更富有表现力。

今天我们将介绍这套由《发条乐师》团队和Unity Labs通力合作创作的新工具:Facial AR Remote。

001653syop79clzlggbenx.png

我们想要使与AR混合形状动画相关的工具和工作流程更易于使用,比当前可用的传统动作捕捉方法具有更高的可用性。Facial AR Remote可以让我们构建出一些工具用于在编辑器中迭代混合形状,无需创建新版本就可以检查手机上的网格变化。

这意味着用户能够在Unity中对演员面部进行捕捉和录制。捕捉的内容能够作为固定点来迭代和更新角色模型,还可以重新指定动画到另一角色上,不必重新对演员进行面部捕捉。该工作流程对处理角色的表情非常实用,还能优化各个独立的混合形状。

Facial AR Remote的工作方式
Facial AR Remote由手机客户端应用组成,它带有流式读取工具作为Unity编辑器中的服务器。客户端则是一个轻量级应用,能够使用ARKit的最新功能,通过网络发送数据到Stream Reader游戏对象上的Network Stream Source。通过使用简单TCP/ IP socket和固定大小的字节流,我们将混合形状、摄像机和头部姿势数据的每一帧画面从设备发送到编辑器上。得到数据后,Unity编辑器会解码数据流,实时更新绑定角色。

为了消除由于网络延迟带来的抖动,流式读取工具有一个存放历史帧的可调节缓冲区,它会在编辑器画面和手机画面有延迟时使用。这是一个非常重要的功能,它能保持预览角色的平滑画面效果,同时还能和真实演员的当前姿势尽可能保持一致。在较差的网络条件下,该预览效果有时会有掉帧现象,但设备仍会记录带有原始时间戳的所有数据。

001659ydq49q294h9k2dt7.png

在Unity编辑器层面,我们使用流式数据推动角色的预览和烘焙动画剪辑。由于我们将原始流式数据从手机保存到磁盘,因此我们可以在调整混合形状时继续播放角色上的数据。

由于存储数据是来自手机的原始流式数据,我们甚至可以将动作重定位到不同的角色。在对采集的流式数据满意后,可以烘焙该流式数据为角色上的动画剪辑。这是一个很棒的功能,因为制作出的这些剪辑能像Unity中动画一样使用,剪辑可以用在Mecanim、Timeline或是动画工具中,从而驱动角色。

《发条乐师》动画演示
随着《发条乐师》渲染技术演示的完成,《发条乐师》团队能够使用这些高质量资源开始动画探索之旅。由于我们能够快速启动并运行基线,我们拥有大量时间使用我们所开发的工具迭代混合形状。抖动、平滑和形状调整很快就成为了这个项目主要关注部分。

我们在帧处理过程中发现了帧率和延迟之间的联系,并移除了回放内容中摄像机的移动,从而解决了抖动问题。移除摄像机的能力可以使用户专注于捕获混合形状,并使我们能够将手机安装在支架上。

001701v1mxjbc3d66c8pbo.jpg

大多数迭代过程需要理解混合形状并在ARKit中充分利用混合形状的锚点。从文档中很难理解不同形状的细节差异。因此很多最后得到的表情效果,取决于对角色进行的风格化处理以及组合形状的方式。

我们发现通过限制混合形状变化对面部特定区域的影响,可以改进眼睛、面颊之类的斜面形状和嘴部延伸的效果。

例如:面颊的斜面应对下眼睑几乎没有影响,下眼睑的斜面部分也应对面颊几乎没有影响。我们最初没注意mouthClosed形状怎样才能作为矫正姿势,从而让它和嘴唇关闭时的jawOpen形状有100%的吻合度,而混合形状对这部分也没有任何影响。

001708huxo4kl6k6lny9on.gif
001715v3emzkwnvwu6zme3.gif
001722qjadjuh87zraaua7.gif

然后我们使用Skinned Mesh Renderer的数据,查看任意帧上所组成表情的数值,通过降低或提高这些数值来给混合形状的处理过程带来帮助。我们能够快速调整当前的混合形状,并决定任意混合形状是否需要修改和所需修改程度。

这样有助于解决最麻烦的问题之一,那就是让正确的角色得到关键动作。例如:让小女孩微笑。查看组成特定动作的形状有助于解决该问题,在本示例中,微笑时嘴部左右拉伸的距离总量形成了其最终的形状。把手机提供的形状看作小型组成部分非常有用,而不是将它看作人类独立做出的面部动作。

在演示项目最后的创作过程中,我们尝试改进角色动画。通过对ARKit混合形状的理解,我们尝试修改了角色的基本自然动作。由于小女孩角色的风格化部分,角色基本动作的眼睛太宽,而且面部上的基本笑容也太多了。

这使得眼睛睁大时与眼睛正常状态的变化幅度太小,而眼睛正常状态和闭眼时的变化幅度又太大了。眯眼的表情也需要进行更好的处理。当测试者闭上眼睛时,我们发现眯眼部分的范围总会在约60%到70%之间。通过对基本型进行如此的修改,从而得到了在最终展示时极富表现力的动态表情效果。

未来展望
通过使用Facial AR Remote和Unity中的工具,开发者和艺术家将能创作出各式各样的优秀动画,只要拥有创意,便不会受到任何限制。

不久后,所有人都将能像木偶一样操控数字角色,孩子可以表演和录制他们最喜欢角色的动作,分享给朋友和亲人看;游戏主播可以通过这个技术给自己头像添加额外的活力;专业人士或业余爱好者可以得到新的方法来制作并发布动画内容。

请下载Unity 2018,并访问Facial AR Remote的Github页面查看安装指南。地址:
https://github.com/Unity-Technologies/facial-ar-remote

我们期待着看到用户使用Facial AR Remote创作出充满艺术感的创意作品。更多Unity新功能和工具介绍尽在Unity官方中文论坛(UnityChina.cn)!
ARkit, 表情捕捉 本主题由 admin 于 2018-8-24 04:27 设置高亮锐亚教育

锐亚教育 锐亚科技 unity unity教程