生成自然丰富,反应灵敏的动作的“Motion Matching”是什么?
 
 
    Ubisoft在2016年内预定发售的【荣誉战魂】,是基于MOBA类集团战斗,并加入了高度紧张的剑斗动作的多人游戏。在绘制非常细致的战场里,主人公以骑士,武士还有维京勇士形象展现着厚重感和帅气的动作。是整体散发着次世代感的作品。
 
    特别引人注目的,是角色动画的自然响应性很高。无论切换到怎样的瞬间,自然的运动也感觉不像是游戏了,尽管如此,还是可以灵敏的反映玩家的操作。
 
    GDC 2016上,在Ubisoft的演讲【Motion Matching and Road To Next-Gen Animation】中对本作实现的高品质动画的独特算法和工作流做了讲解。即便稍微听一下说明,深入到那些游戏动画技术以外领域的,还真的是非常让人震惊的内容。
 
【For Honor Gameplay - Multiplayer Walkthrough】
 
 

把角色动作的自然迁移“有力量的”作出的最新技术

 
Ubisoft的Simon Clavet
 
本作动画系统的目标
 
    进行演讲的Simon Clavet,已经在Ubisoft担任了10年的动画程序员。
 
    在【荣耀战魂】中,除了要真实的描绘战士们激烈的剑斗之外,还要有在广阔战场的战略移动,移动消耗的时间也很多。而本作动画系统所提出的目标就是【正确的游戏性】和【有说服力的动画】。
 
    先从结果来看的话,本作实现的移动动作,在各种情况,各种瞬间,都是以往游戏没有的自然运动。方向转换和加速减速动作的关联,也看不出是多个动画组合而成的那样自然。而且对玩家操作可以快速反应,提供了毫无压力的正确的游戏性。
 
本作的移动动画。姿势变更,方向转化以及气势的变化等都可以完美的对应,完全感觉不到有衔接部分,自然的播放动作。

以前动画系统的问题

 
要实现自然的运动,就需要用户把动画片段(Animation Clip)之间的衔接可以对应玩家操作灵活的变化,这个具体要怎么实现?
 
以前的动画移动系统因为会引起组合数量的爆炸,只能粗略的对应。
 
    这样,在有说服力的动作,和动作游戏才有的响应性上,【荣耀战魂】要求实现的等级很高,用以前的方法几乎是不可能的。
 
    用手工来设定动画片段的转移是有限的,走,跑,停止,转向等各个动作的链接部分,只用少数几个模板怎么也无法实现的。而角色现在的情况是,要正确的再现玩家输入的变化,动画转移的入口和出口变的非常的大,用手工来连接是很勉强的。
 
    因此,以前的游戏,采取的是动画的衔接部分通过程序在方向和力上做修正,动态的来近似的方法。用这种方法,会出现脚无法很好的贴合地面,以及滑步移动的绘制情况。这也是以往角色动画看起来像游戏风格的原因。
 
    【荣耀战魂】中对于这个问题,采用了非常大胆的方法来解决(只有次世代机才能实现)。也就是本次演讲公开的“Motion Matching”的方法。
 
走->停止的运动控制,因为要在忠实的反应玩家操作的同时,实现自然的运动,会有很多的问题。
 

在每帧中对庞大的动作捕捉数据做检索

 
非常简单的算法
 
为了拍摄一种运动,要持续5分钟相似的动作。
 
每30分之1秒1次,检索下一个动画片段
 
对于速度和姿势,提取几个代表点进行匹配
 
     Clavet所说的【愚蠢又有力的的动画系统】的方法,原理上简单得惊人。在每帧里,检索全部的动作捕捉数据,发现最适合的一帧动画时,就进行动画的转移。
 
    例如【疲劳状态的走动】动作。游戏中使用的是,把演员动作的微妙变化全部保存在5分钟的运动数据里。同样的动作,手足位置,腰的高低,头的方向等有微妙的不同,是一连串的运动数据。
 
    然后并不把它分割成多个动画Clip,而是一个整体就直接在游戏中使用就是重点了。在这5分钟的动画数据中,按帧的单位检索,向最适合需要的动作范围进行转移就可以了。不再需要人手工的制作转移图了!
 
    候补的动画帧,以下面的条件为基准进行选择。
 
1.玩家输入预测的移动曲线的适合度
2.对角色现在的姿势(脚,头,手的位置的)的适合度
※为了实现高速化,每帧里都把上面的数据通过预先计算输入到参数里。
 
    例如【边跑边转90度】的动作,在动作捕捉数据中也有模板的。在这些候补中,选择最接近现在姿势的帧。因为这样帧单位进行反复操作,可以达到玩家输入那样的灵敏反映,完全看不到有动画衔接部分。
 
只要不断的拍摄各种姿势的运动捕捉数据,不需要分割数据就在游戏里使用
 
为玩家输入为基准进行方向预测,选择接近的移动方向,维持将来的位置和姿势的动画

成为角色动画技术的革命者?

 
用轨迹预测提升动画匹配的精度
 
斜面也对应了
 
这个方法的优点是,可以实现支持灵敏操作的高品质动画,以及减轻手动工作。
 
    这个方法和以前的动画系统完全不同,以前那种从一个动画Clip转移到另外一个动画Clip,和现在这种运动匹配方法在结果上就不用说了。即便制作捕捉数据的人,也无法事先预测帧与帧之间的变化。
 
    而且,它与最近的热门话题-深度学习也有相似之处。这个是通过原始的庞大运动数据,创作出新的连续动作的系统。如果可以【学习】新的运动,这样对应动画的精度也会提升。
 
    但这个方法也有弱点。虽然这个系统也能实现类似【蹲下的状态从朝向右向左做旋转并后退移动】这样的复杂组合,因为不是手工制作动画转移图,要确认可以对应游戏玩法需要的全部运动是很难的。特定的操作组合,感觉还是会有动画模板的盲点产生(捕捉数据的不足)。这种情况因为转移到了不匹配的帧上,运动的表现程度也就下降了。
 
    这样的话,【For Honor】的开发团队每次都要进行游戏内运动的不自然情况的检查,每周都会实施“填坑”的动作捕捉议程。一边减少盲点,一边继续提高游戏的完成度。
 
    当然因为实现这种方法的负荷很高。使用大量运动数据的话,数据容量会变得非常大,为了最佳动画帧的检索需要有很强力的CPU,完全是面向次世代机的技术。但这确实是真正革命性的游戏动画系统。
 
    把动作的流畅和真实性作为生命的游戏【荣耀战魂】,使用这个技术的游戏究竟是怎么样的呢,作为动作游戏玩家真的是非常期待。
 
 
 

GDC2016【For Honor-荣耀战魂】的次世代动画技术的更多相关文章

  1. 深入Guerrilla Games解密次世代开山大作《杀戮地带暗影坠落》(The technology of Killzone Shadow Fall)

    文章摘要:这几天终于有时间,把全文翻译完了,自己感觉不是太满意,不过大家能看懂就好,就当一个学习的机会.整篇文章通过SONY第一方游戏工作室Guerrilla Games主创的语录,为我们展现了次世代 ...

  2. 基于Unity 5的次世代卡通渲染技术 -- Unite 2017 米哈游总监贺甲分享实录

    在5月12日Unite2017开发者大会上,米哈游技术总监兼美术指导贺甲进行了主题为次世代卡通渲染的演讲.一下为详细分享内容: 大家好,首先自我介绍一下,我叫贺甲,在米哈游担任技术总监和美术指导工作, ...

  3. 剖析虚幻渲染体系(14)- 延展篇:现代渲染引擎演变史Part 1(萌芽期)

    目录 14.1 本篇概述 14.1.1 游戏引擎简介 14.1.2 游戏引擎模块 14.1.3 游戏引擎列表 14.1.3.1 Unreal Engine 14.1.3.2 Unity 14.1.3. ...

  4. cg tut

    Gesture Drawing with Alex Woo Gesture Drawing with Alex Woo and Louis Gonzales http://eisneim.com/?p ...

  5. 中国VR公司的详尽名单

    中国VR公司的详尽名单   <VR圈深度投资报告一:2014年以来所有VR/AR融资事件> 特征一.投资机构观望居多 尽管VR在媒体和二级市场炒得很热,但大多风险投资机构却慎于出手,以观望 ...

  6. [转]Cryengine渲染引擎剖析

    转篇Napoleon314 大牛的分析,排版好乱,见谅,耐心读,这是个好东西,注意看他自己的实现,是个技术狂人啊,Ogre焕发次时代的光芒啊~~~努力 ------------------------ ...

  7. unity assetStore 常用插件

    常用插件 20180723============= 教程类 =============<Mecanim Example Scenes > 官方示例场景<Surivial Shoot ...

  8. 集显也能硬件编码:Intel SDK && 各种音视频编解码学习详解

    http://blog.sina.com.cn/s/blog_4155bb1d0100soq9.html INTEL MEDIA SDK是INTEL推出的基于其内建显示核心的编解码技术,我们在播放高清 ...

  9. Unity网游开发生存指南—蒸汽之城

    Posted by amy on 2013.03.07 文 / 王楠(梦加网络 游戏制作人) 前段时间关于Unity是否适合国内手游/网游创业团队的讨论非常火爆,本文从<蒸汽之城>的开发历 ...

随机推荐

  1. 20145223《Java程序程序设计》第9周学习总结

    20145223<Java程序设计>第9周学习总结 教材学习内容总结 第十六章:整合数据库 JDBC入门 1.JDBC简介: 2.JDBC主要分成两个部分,JDBC应用程序开发者接口和JD ...

  2. testng.xml文件结构组成及节点属性说明

    TestNG的DTD检查文件:http://testng.org/testng-1.0.dtd.PHP 更多testng配置及说明,请移步http://testdoc.org/docmaster?pi ...

  3. Redis执行Lua脚本示例

    Redis在2.6推出了脚本功能,允许开发者使用Lua语言编写脚本传到Redis中执行.使用脚本的好处如下: 1.减少网络开销:本来5次网络请求的操作,可以用一个请求完成,原先5次请求的逻辑放在red ...

  4. POJ1904 King's Quest(完备匹配可行边:强连通分量)

    题目大概就是说给一张二分图以及它的一个完备匹配,现在问X部的各个点可以与Y部那些些点匹配,使得X部其余点都能找到完备匹配. 枚举然后匹配,当然不行,会超时. 这题的解法是,在二分图基础上建一个有向图: ...

  5. The 2015 China Collegiate Programming Contest G. Ancient Go hdu 5546

    Ancient Go Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)Total ...

  6. 【转】Xcelsius2008 水晶易表问题 部分汇总

    要使用 Xcelsius 2008,需要安装 Adobe Flash 吗? 若要正常运行 Xcelsius 2008,必须安装 Adobe Flash Player 版本 9.如果在安装过程中没有安装 ...

  7. 【BZOJ1864】[Zjoi2006]三色二叉树 树形DP

    1864: [Zjoi2006]三色二叉树 Description Input 仅有一行,不超过500000个字符,表示一个二叉树序列. Output 输出文件也只有一行,包含两个数,依次表示最多和最 ...

  8. hdu1710 Binary Tree Traversals(二叉树的遍历)

    A binary tree is a finite set of vertices that is either empty or consists of a root r and two disjo ...

  9. [深入浅出Windows 10]分屏控件(SplitView)

    4.18 分屏控件(SplitView) 分屏控件(SplitView)是Windows 10新增的控件类型,也是Windows 10通用应用程序主推的交互控件,通常和一个汉堡按钮搭配作为一种抽屉式菜 ...

  10. UVA 11039 - Building designing(DP)

    题目链接 本质上是DP,但是俩变量就搞定了. #include <cstdio> #include <cstring> #include <algorithm> u ...