《 NEXT 技术快报》:图形篇(上)

2021-08-03 14:56:11 浏览数 (1)

作者:TomZheng

导语: 每年暑期都是各路顶会扎堆,今年也不例外,SIGGRAPH,CVPR,ICML这三个我们一直关注的领域顶会相继召开,本期“NEXT技术快报”将重点关注这三大顶会的内容,摘录与游戏开发,游戏体验相关的内容做一个归纳点评。

角色动画(Character Animation)

角色动画是游戏、VR/AR或动画电影制作的核心环节,快速制作出高质量、栩栩如生的实时动画效果一直以来都是研究热点,角色动画包括:

● 角色之间或角色与环境的交互动画

● 动作序列之间的融合过渡

● 角色的表情动画/口型动画

● 角色身体的动画(比如肌肉和脂肪组织的抖动)

● 使用动作捕捉制作动画

DeepLoco: Dynamic Locomotion Skills Using Hierarchical Deep Reinforcement Learning

原文链接:http://www.cs.ubc.ca/~van/papers/2017-TOG-deepLoco/2017-TOG-deepLoco.pdf

演示视频:https://www.youtube.com/watch?time_continue=122&v=G4lT9CLyCNw

【摘要】

利用人工智能的方式控制或者制作可信的角色动画,一直以来是个不小的挑战,本文试图使用hierarchy(层级)控制网络来控制角色的下肢移动,可以适应未知的环境,并做简单的交互,比如踢球、沿着指定轨迹或者用户输入方向,自动调整步态运动。

【问题】

  • 三维环境下,角色关节的自由度很高,动作空间和状态空间都很大;
  • 使用强化学习方法时reward比较稀疏,且不好设计,与环境的交互很难训练,比如踢球。

【解决方法】

高层的控制网络(HLC),输入周围环境的高度图、角色当前的状态和高级的目标(比如到达某处或者将球踢向目标),运行频率为2Hz,输出为两脚下一步的位置和身体的朝向(Gh);底层的控制网络(LLC),它的输入是Gh,依次从运动捕捉数据中选择合适的片段,输出为角色各个关节的旋转量等,还可以加入动画风格的变量(比如踮着脚走路)。本文采用了标准的actor-critic强化学习方法。

【结果分析】

优势:1)HLC和LLC是分开的两个网络,底层LLC网络可根据需要进行替换,只需要对HLC适当再训练即可;2)使用多个动态捕捉数据序列,从而在步态转换中更加自然;3)HLC可以做出躲避环境中的障碍物的指示,以及防止角色跌倒;4)使用的是动态捕捉数据,有点模仿学习的味道。

不足:1)HLC和LLC是分开训练的,HLC与LLC之间的接口(即高级任务)是人为设计的,并不是深度学习中的端到端学习模式;2)只能处理静态的环境,如果是动态的障碍物,则没法处理;3)在LLC中使用了一种特殊的bilinear phase representation表示,而不是神经网络中常见的LSTM网络;4)目前是沿着指定的路径行走,网络本身还不能根据地形自动选择路径;5)只有下半身的运动,没有胳膊头部等上半身的运动;

【应用落地】

可以用作游戏中动画片段之间的自然过渡,网络本身并不大,可实时计算。

Facial Retargeting with Automatic Range of Motion Alignment

原文链接:http://vml.kaist.ac.kr/publication/journal/2017/2017RogerBR_ToG.pdf

演示视频:https://www.youtube.com/watch?v=p99jOup243g

【摘要】

捕捉到的表情动作如何在保留含义的情况下从演员传递给目标角色一直是个难点,目前方法一般只适用于写实风格的角色,或者需要用户针对演员的每个表情(FACS分类)制作对应的角色表情。本文作者提供了一种自动化的表情传递方法,可以用于不是很夸张的表情动画,基本思想是以一段演员的表情视频作为输入,对blend shape进行优化,并保留表情之间的相关性。

【问题】

  • 由于几何形状不同,表情动画从真实演员的面捕动画传递到卡通角色往往存在问题;

【解决方法】

首先从blendshapes开始,针对输入的演员的面部表演视频(使用了marker),优化每个blendshape的对应点的变形,这里作者是以整段视频输入和相关性来优化位置差异,并且考虑了RBF变换后的拉普拉斯坐标差异(局部几何特征信息),以及保留演员不同表情之间的相关性信息。其次,考虑了角色表情不宜有大的局部几何的弯曲,以及blendshape的权重应该稀疏化,来针对视频中的每一帧表情优化权重。

【结果分析】

优势:只要输入一段演员的表演视频,就可以实现自动化的、贴合演员特征的表情动画传递系统,可以适用于不很夸张的卡通角色。

不足:1)文中卡通角色的blendshape数量较少,如果希望获得较为精细的面部动画,blendshape数量还需要增加,可能优化解算会存在问题;2)嘴部的marker点的变化,在多个差别表情中差异不大,比如亲吻、张嘴、大笑,造成传递后的卡通角色的表情程度相对真人演员比较轻微;3)对于较为夸张的卡通动画表情,仍然效果不好;4)传递的是比较粗的表情动画,脸部的细节并没有涉及,比如皱纹,不过作者认为可以通过叠加的方法来解决。

【应用落地】

可以根据真人的一段表情动画,获得优化后的blendshapes和权重,从而做到实时的表情传递,可以用于教育或VR/AR交互中,比如将教师的表情传递到一只卡通兔子上,从而替换为一个兔子在授课。

A Deep Learning Approach for Generalized Speech Animation

原文链接:http://ttic.uchicago.edu/~taehwan/taylor_etal_siggraph2017.pdf

演示视频:https://www.youtube.com/watch?v=lYTTpazRttc

【摘要】

口型动画一直是动画制作中的难题,也是VR/AR虚拟角色实时动画中的难题。本文首先将输入的音频分解为互相有重叠的音素,然后利用slide window的技术结合深度神经网络预测中性角色口部动画的参数,在做动画迁移时,只需做一次录制角色和目标角色骨骼之间的对应关系即可。

【问题】

  • 动画师手动key动画比较耗时,不同的语言需要制作不同的口型动画;
  • 面部动作捕捉(需要marker点或者用颜色标记),对设备和光线要求比较高,而且在后期需要动画师修改调整。

【解决方法】

作者发现常用的LSTM或RNN网络更易产生偏差,需要更大量的数据才能获得较好的效果,所以选择了slide window的方法。

【结果分析】

优势:只要使用声音和角色面部视频(可以将无marker的视频用计算机视觉的方法变为marker的),比较容易训练出虚拟角色的口部动画,而且可以做到实时的匹配。

不足:1)口部的动画控制还是有些简单,用于真人动画可能会存在问题;2)训练得到的中性角色上的口部动画,还需要做好迁移才能将动画保真的迁移到其他卡通角色上;3)训练数据使用的是不带感情的面部数据,如何训练带感情的口部动画,是下一步的工作。

【应用落地】

用于实时的、简单的虚拟卡通角色的口部动画。

Data-Driven Physics for Human Soft Tissue Animation

原文链接:http://motionlab.kaist.ac.kr/wp-content/uploads/2017/07/mkim_siggraph2017.pdf

演示视频:https://www.youtube.com/watch?v=YySDlC7NZg4

【摘要】

本文试图将传统FEM方法和数据驱动方法的实时性结合,既能获得实时的肌肉或脂肪组织的变形动画效果,也能让身体响应外力的作用。基本思想是,将角色的身体划分为内层的VSMPL voxel和外层的FEM voxel,前者用数据驱动,后者用动力学计算。

【问题】

  • 在模拟人体运动时的肌肉变形和次级运动时,FEM方法会精确,但是物理参数需要设置,且计算量大;
  • 使用数据驱动的方法,速度很快,但是存在误差,以及无法模拟外力作用下的肌肉变形。

【解决方法】

本文将15年的SIGGRAPH论文的SMPL方法扩展到体积方面,简称VSMPL,从而对4D扫描的不同人的运动时的身体变化,分解为shape blendshape和pose blendshape,然后依据harmonic坐标的方法建立从身体表面到线状骨骼的势场RDF,根据场的数值将voxel划分为内层的VSMPL voxel和外层的FEM voxel,前者使用类似SMPL的方法来获取建模参数,后者根据肌肉和脂肪组织的次级运动来建模参数(包括统一的衰减系数),最终得到完整的模型,FEM层可以响应外力作用。

【结果分析】

优势:1)处理速度很快,可以达到4毫秒每帧,2)与真实人体的4D扫描数据误差在8%左右,3)模型的精度(PCA方式)可以根据需要调节,且精度高系数多所增加的计算时间并不多,4)FEM计算所依赖的RDF图是可以手绘的,所以次级运动的程度和区域也是可以控制的,5)在关节处变形效果不错,比如胳膊肘的扭曲中,6)方案基于15年SIGGRAPH论文的SMPL方法,这个方法已经有了整合进Maya流水线的插件,可以与LBS或Dual Quaternion配合。

不足:1)该方法不能处理皮肤的紧缩和滑动等效果,2)只适用于身体,因为脸部需要更加精细的FEM网格,3)在收集4D扫描数据时,没有考虑衣服对身体的压迫作用。4)因为内层是VSMPL,所以对于体积大的变形效果还不好,Disney采用的是adaptive voxel精细度的FEM方法,效果最好,已用在动画电影《超能陆战队》中,不过缺点是速度要慢很多,几秒一帧。

【应用落地】

可以用于拳击,相扑或者其他需要展示肌肉运动的体育游戏中,或者需要写实风格的高精度游戏中。初始的数据来源,可以是动画师制作的动画序列。

VNect: Real-time 3D Human Pose Estimation with a Single RGB Camera

原文链接:http://gvv.mpi-inf.mpg.de/projects/VNect/content/VNect_SIGGRAPH2017.pdf

演示视频:https://www.youtube.com/watch?v=W1ZNFfftx2E

【摘要】

实时的人体动作捕捉对于VR/AR交互或游戏都很有意义,但目前的动作捕捉方法往往很难兼顾民用和实时。本文试图发明一种用常见网络摄像头就可以在室内外使用的动捕方案,其关键思想是借助于骨骼节点的热点图和深度图估计,以及实时的骨骼长度和时序变化校正。

【问题】

  • 多摄像头方法,准确但多数不是实时的;
  • 基于RGB-D深度摄像头的方案,比如微软的kinect,在室外因为红外干扰无法实施;
  • 传统电影制作中使用的基于红外marker的方式,价格昂贵且需要搭建场地。

【解决方法】

视频经过track定位到人的bounding box区域后,经过resnet-50的处理,然后通过cnn网络同时获得骨骼节点的2D热点图和三维x/y/z轴向的位置信息(相对于人的胯部基准点),然后使用euro filter进行时间上的过滤平滑,得到实时的人体三维骨骼节点信息,然后利用ceres库做了一次skeleton骨骼节点的匹配优化处理,获得最终骨骼位置。

【结果分析】

优势:1)在6核志强和titan x平台上,速度可以达到接近30fps的实时效果;2)摄像头裁剪后含人的区域为384384/256256,就可以得到较为精确的动捕信息,所以一般民用摄像机或手机摄像头即可作为输入设备;3)考虑到了骨骼的长度信息,以及对骨骼的2D/3D信息都进行了时序过滤,并且最后加入了skeleton匹配优化,所以动捕信息较为稳定;4)辅助更多的信息,比如imu-sensor,脚步着地信息等,可以获得更加稳定的动捕效果。

不足:1)对于肢体的遮挡问题,仍然无解,恐怕必须有多个摄像头方案才能解决;2)因为采用了多次过滤,以及匹配优化,在肢体运动较快时,会出现跟掉的问题,不过之后还能回复;3)因为是用2D热点图来预测骨骼节点信息,然后在x/y/z位置图中查找位置信息,所以前者的预测不准确,会造成三维位置出现很大的偏差。

【应用落地】

使用手机摄像头将视频流传送到一台强大的电脑上,能实现不错的动捕效果,可用于vr社交或交互游戏。

特效模拟(VFX&CFX)

特效模拟指动画或游戏中模拟真实世界各种物理效果,可以细分成:

● 场景特效(VFX),包括爆炸、烟雾、沙子和湖泊海洋瀑布等;

● 角色相关的特效模拟(CFX),包括头发的动态模拟、角色衣服的模拟;

Data-Driven Synthesis of Smoke Flows with CNN-based Feature Descriptors

原文链接:https://wwwcg.in.tum.de/fileadmin/user_upload/Lehrstuehle/Lehrstuhl_XV/Research/Publications/2017/Data-Driven_Synthesis/cnnpatches.pdf

演示视频:https://www.youtube.com/watch?time_continue=11&v=L50fXkStQso

【摘要】

流体模拟通常很耗时,相对于基于粒子的模拟,欧拉方法更为精准,但是计算量随模拟尺度的三次方增长。本文试图用机器学习的方法,利用之前精确模拟的高精度烟雾来近似替代到当前的粗分网格中,在降低计算量同时保持流体模拟的细节。

【问题】

  • 基于拉普拉斯的方法,存在浮点计算造成的耗散问题,且精度不够;
  • 基于网格的欧几里德方法,则需要消耗大量内存和计算。

【解决方法】

在烟雾欧拉方法模拟中低分辨率和高分辨率的一对模拟的密度分布和速度分布作为输入,训练cnn网络提取特征,并学习两组特征之间的相似度。然后以此特征作为量度,在实际的低分辨率模拟时,从之前的数据库中找到近似的高分辨率模拟的密度分布,然后利用当前模拟的advection来,在微分几何空间中进行as-rigid-as-possible的变形处理,可以将模拟所需的voxel数量降低到200分之一,处理速度达到4秒每帧(766464的网格,等效于560×360×360网格的模拟效果)。

【结果分析】

优势:针对大尺度的烟雾模拟,极大的降低了内存和计算量的消耗,可以达到4秒每帧左右的等同大网络的效果,同时因为是数据驱动的方式,所以缓解了物理模拟中出现的因为浮点数精度有限导致的能量消散现象。

不足:1)需要5.1Gb空间存储高精度模拟的数据,以及基于欧拉方法仍然需要较长的模拟时间和一定的内存占用,不太适合移动端设备;2)因为是数据驱动的方法,所以局部可能不满足散度为零,也就是局部体积可压缩,对于水的模拟可能会有瑕疵。

【应用落地】

可以应用于游戏过场动画的制作,或者小尺度的烟雾模拟。

Fluxed Animated Boundary Method

原文链接:http://alexey.stomakhin.com/research/siggraph2017_fab.pdf

演示视频:https://www.youtube.com/watch?v=EYBlxxI2dz8

【摘要】

如何快速真实的模拟开放大场景中的流体和刚体的交互是个难题,本文是迪士尼为动画电影《海洋奇缘》中所开发的技术,基本思想是在大的区域内使用FFT方法,在含有船只的小的水域内,使用真实物理模拟方法,在两者边界上做速度场的融合。

【问题】

  • 基于FFT模拟的海洋,快速但无法模拟水体和船体或礁石的碰撞;
  • 基于真实物理模拟的流体和刚体解算,解算量巨大,且存在边界计算不精确的问题,比如让艺术家创造魔法般的流体组成的人物的效果,而且没有考虑流体边界不定型的问题,比如在开放的海洋中。

【解决方法】

本文设计了一种框架,将Tessendorf方法(一种类似NV使用FFT模拟海洋的方法)和FLIP/MPM物理模拟方法相结合,由艺术家指定需要物理模拟的流体的区域(FAB区域),FAB区域外,使用FFT方法来模拟海浪,在FAB和物理模拟的边界上,计算出边界上的速度场,以及生成新的粒子或去除由物理模拟区进入FAB区域的例子,然后在物理模拟区内进行物理模拟,更新粒子速度,最后由粒子生成面,并和周围FAB区域的流体表面进行融合,从而获得最终的效果。该方法可以让艺术家创造具有魔法效果的流体角色或效果,或者开阔海洋上划过的小船所留下的波纹。

【结果分析】

优势:在GPU上用FFT模拟海洋的效果效率是很高的,但是和海洋中的刚体的碰撞交互是个问题。纯物理模拟的效果是最好的,但是大量水体的模拟计算很慢。本文做到了自动选择刚体和流体的交互区域进行准确的物理模拟,同时在其他区域使用更简易快捷的模拟,2)对于FFT方法,本文还使用了一种根据镜头需要,自动选择tile尺寸的方法,从而避免了FFT方法中存在tiling artifacts。

不足:1)在艺术家使用该方法创建魔法流体效果时,需要注意物理速度是否合理,否则会有瑕疵。2)在海洋中,因为有船体和海洋的交互,未必能保证船体周围非物理模拟区仍然是符合FFT模拟的海浪。3)本文目前使用的是MPM流体模拟方法,之后应该能扩展到其他流体模拟方法。

【应用落地】

用于开阔海洋的流体模拟,同时可以包括真实的船体和流体的交互。如果选择基于GPU的粒子流体模拟方法,也许可以做到实时的交互。

Anisotropic Elastoplasticity for Cloth, Knit and Hair Frictional Contact

原文链接:http://www.seas.upenn.edu/~cffjiang/research/cloth/paper.pdf

演示视频:https://vimeo.com/219585631 接《 NEXT 技术快报》:图形篇 (下)

0 人点赞