GDC2017: 《Lone Echo》中的VR动画

去年在Oculus Connect 3体验过《Lone Echo》的多人竞技玩法, 品质很高, 算是VR游戏中的一线大作了. 正好今年GDC上他们分享了一些关于VR中角色动画的一些经验, 还是比较有借鉴意义的, 毕竟Avatar做了全身的VR游戏少之又少.

这是一个太空失重背景下的游戏, 可以用手抓住环境物体或者推墙进行反向的漂浮. 一开始他们是通过手部射线了检测是不是抓住静态几何体, 通过让身体与双手保持与真人1:1的相对位置来驱动身体, 但是这样对于抓/推动态的环境物体效果不是很好. 原因是游戏逻辑的更新与物理引擎的更新会有次序上的问题.

后来抓取的实现修改成了基于物理的Constraint来代替射线.

有趣是他们在头跟手之前也加了个Constraint, 这样手抓到移动的物体上就可以带动玩家进行漂浮移动了.

手抓物体的动作在多数VR游戏中都是使用美术预先制作的动画, 但《Lone Echo》中要求可以抓住世界中的任意表面. 所以他们通过程序化的方式来计算手指抓住物体时的角度.

针对单根手指来看这个问题, 其实就是求解三角形与圆盘的交点: 1. A*搜索靠近手掌的最近三角形 2. 根据相交边找到相邻的三角形 3. 持续这个过程直到不在圆盘范围内 4. 计算与相交点接触的手指角度, 取最大的那个来旋转手指 5. 拇指使用另外的算法, 分享中没有提及

为了避免手与表面穿插, 需要在手掌与表面之间做一些距离和角度的约束.

虽然这样做减少了一些走样, 但是射线拾取到错误的表面会导致手掌吸咐到表面时的角度或位置偏转过大, 与真实手的位置不同步后一下就让人出戏了(影响VR体验). 所以需要选择一个同步代价最小的位置.

双臂的动画是比较难模拟的, 这是因为我们只有三个点的位置(朝向): 头, 左手, 右手. 对于肩, 胸, 肘的信息是我们是不知道的, 只能通过IK算法进行估算.

在肩与手的位置确定的情况下, 我们只需要估算肘部的转动角度, 肘部的弯曲角度只与肩到手的距离有关系, 是确定可以计算出来的.

肩部位置的估算涉及到锁骨的伸展和朝向. 朝向指向手的方向, 伸展通过一条手肩距到伸展量的曲线映射进行估算.

胸部的朝向通过混合三个方向的权重进行估算: 头的观看方向, 头到左手的方向, 头到右手的方向. 运行时也会调整这些权重的分配, 因为手离胸近的时候它的权重就小了, 如果手在身后, 那就完全忽略掉它的影响.

手臂的长度是可以动态调整的, 因为虚拟手的位置必须与控制器的位置1:1进行同步.

所以手臂的IK估算一共有5步.

对于脊柱和双腿的运动模拟, 主要是通过角度约束从脖子一级级往下传递, 与双臂的IK是分开计算的. 由于《Lone Echo》是一个太空行走游戏, 所以不需要处理双腿与地面的走路/下蹲等, 只需要根据位置和速度进行模拟跟随躯干即可. 对于待机/推开/观看等, 是通过叠加动画师制作的动画来实现的.

总结: 《Lone Echo》这种太空失重背景的游戏比较少见, 所以其中的攀爬漂浮与双腿的处理不是很具备通用性, 不过手指的抓握模拟与双臂的IK解决思路是值得每个VR游戏学习的, 目前也有一些IK中间件专门针对VR下的三点驱动的FullbodyIK做出了一些尝试, 相信随着技术的成熟, 以后的VR游戏不再是只有一个头和两只手了.

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏自然语言处理

Google Plus 文本提取与分析2

为了进一步对每条记录分析,有必要进行中文分词。文章3中提到11款开放中文分词引擎,从分词效果和调用难度角度考虑,这里采用商业化的BosonNLP工具(关键被他一...

1722
来自专栏机器之心

更偏好白人男性?Science新研究证明人工智能也能学会偏见

选自Science 机器之心编译 参与:吴攀、晏奇 至少从口号上来说,我们一直在追求「人人平等」,但我们也都清楚我们离这一目标还相去甚远,部分原因是因为世界并不...

3688
来自专栏PPV课数据科学社区

“被打”和“北大” 的关联--- 趣味数据挖掘系列之一

作者:唐常杰 小时候喜欢读趣味数理化,所以久有一个小心愿,写一组趣味数据挖掘的科普博文。要把数据挖掘的一些概念讲得通俗有趣,需要好的例子,正搜寻中,一个...

3048
来自专栏新智元

【一图读懂】你不得不知道的10个影响人类社会的算法

【新智元导读】本文的信息图表详细介绍了算法的定义、起源以及 10个重要而且基本的算法,并提出有关算法,尤其是人工智能和深度学习对人类社会、经济的影响的思考。 在...

4136
来自专栏量子位

最高76%破解成功率!GAN已经能造出“万能指纹”,你的手机还安全吗?

如果有一种特殊的指纹,可以和绝大多数人的指纹对上号,大概率破解身边的几乎所有的指纹锁,会发生什么?

1094
来自专栏上善若水

054Android操作系统11种传感器介绍

Android操作系统11种传感器介绍 在Android2.3 gingerbread系统中,google提供了11种传感器供应用层使用。

1904
来自专栏新智元

【计算机图形学生成完美笑容】科学家根据时空轨迹生成“成功的微笑”

【新智元导读】面部表情是社会性互动中非语言沟通的重要形式,美国明尼苏达大学的一项新研究使用3D计算机模拟生成微笑表情,并对其进行评价,发现“成功的微笑”所具有的...

4137
来自专栏机器之心

前沿 | 详解Microns项目:通过大脑逆向工程来创造通用人工智能

选自IEEE Spectrum 机器之心编译 参与:黄小天、晏奇、李亚洲 去年,美国高级情报研究计划署(Intelligence Advanced Resea...

3595
来自专栏人工智能头条

最全数据科学学习资源:Python、线性代数、机器学习...

1633
来自专栏量子位

Google人工智能面试·真·题(附参考答案+攻略)

然而想要“应试”成功,考验的不仅仅是开发人员的编程技术,还能侧面考验着参赛者的渠道来源是否广泛、背景力量是否强大、脑洞回路是否清奇……

1553

扫码关注云+社区

领取腾讯云代金券