查看原文
其他

Facial AR Remote:使用AR创作动画

Unity Unity官方平台 2018-11-15

前些时候,我们在Unity官方微博分享了下面的视频内容。


https://v.qq.com/txp/iframe/player.html?vid=r0763bzjpol&width=500&height=375&auto=0

利用iPhoneX和ARKit的特性,使用一套简易的工具,Unity Labs的开发人员实现了更便捷的实时面部表情捕捉,让江毅冰新作《发条乐师》中小女孩的角色形神兼备,更富有表现力。


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


Facial AR Remote介绍

Unity Labs通过《发条乐师》项目,探索如何最大程度上提升Unity为角色进行面部捕捉,创建实时面部动画的能力。Beast House FX的Roja Huchez也为项目的建模和绑定混合形状等方面提供了帮助,使角色的表情变得栩栩如生。

 

Facial AR Remote以一种低开销方法,通过已连接设备,直接将画面捕获到Unity编辑器中。


Facial AR Remote的工作流程不仅在制作动画时非常实用,也有助于制作角色和混合形状的建模和绑定,它实现了一种简化方法,用来在Unity中构建Animoji动画表情或Memoji类型的交互。该工具将允许开发人员在编辑器中迭代模型,而无需构建到设备,从而消除了流程中耗时的步骤。


为什么创作Facial AR Remote 

通过这个试验性的项目,我们看到了为电影项目构建新动画工具的机会,它将开辟Unity中实时动画制作的未来。

 

使用AR工具进行创作是非常炫酷和有趣的过程,并且能够推动Unity实时渲染的发展。在对从手机发送到Unity编辑器的数据进行基本处理后,所有人都沉浸在操纵控制角色的乐趣之中。这种技术的既有趣又实用,拥有巨大潜力,所以该项目迅速扩展到当前的Facial AR Remote和功能集。


 

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

 

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

 

Facial AR Remote的工作方式

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

 

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



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

 

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

 

《发条乐师》动画演示

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


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



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

 

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

 

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



然后我们使用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)!



推荐阅读


优惠促销

8月Asset Store资源商店促销 

8月期间,只需在Asset Store资源商店消费满50-255美元,即可获赠2-6款精品资源,最高消费250美元,更可附赠获得一件Asset Store定制款T恤!

活动地址:

https://assetstore.unity.com/g/august-promo-activation-demo



点击“阅读原文”访问Unity官方中文论坛

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存