大连工业大学艺术与信息工程学院 辽宁大连 116000
摘要:游戏引擎中动画角色的两个或多个输入姿势相结合,能够达到美妙的混合动画效果。文章根据动画混合技术原理,运用双轨混合、多轨混合、线性插值混合或加法混合等方法,在Unity3D和UnrealEngine4引擎的动画混合实例中进行了验证。验证结果表明,生成的混合动画效果良好,能够缩短角色动画的制作工时,显著提升动画制作的质量和效率。
关键词:游戏引擎;动画混合;混合技术
目前,手机游戏或网络游戏多数都是基于各类游戏引擎进行开发的,它不仅提高了游戏的开发效率,同时也提高了游戏的运行质量。经过近几年的快速发展,游戏引擎进入一个蓬勃发展、百花齐放的时代,市场上涌现了诸如UnrealEngine、Unity3D等较高水准的商业化游戏引擎。角色的自然动作由游戏引擎中的动画系统而产生,一些非角色的物体运动,如载具上的可移动组件、以关节联系的机械、微风中摇曳的树枝,甚至是游戏中可以爆炸的建筑物也能够利用游戏引擎的动画系统产生。随着游戏硬件的不断升级,研究和改进游戏引擎中的动画技术具有现实的意义。鉴于此,本文拟通过梳理和归纳相关游戏引擎理论,剖析游戏引擎中的动画混合技术原理,运用一些动画混合方法,在Unity3D和UnrealEngine4引擎的动画混合实例中进行验证,以期为游戏引擎中混合动画的制作提供技术参考。
1.基本概念叙述
1.1游戏引擎
游戏引擎是用作控制所有游戏功能的主程序,从计算碰撞、物理系统和物体的相对位置,到接受玩家的输入,以及按照正确的音量输出声音等等,都是游戏引擎的功能所在。一个典型的游戏引擎一般包含的组件有:(1)实时渲染;(2)光影计算;(3)动画技术;(4)物理系统;(5)场景管理;(6)人工智能;(7)人机交互;(8)网络接口。
Unity3D游戏引擎是当下比较主流的商用游戏开发引擎,它具有跨平台、通用性强、图形效果佳、资源管理便捷、一键部署、插件和编辑器完整等特点,是手机游戏和网络游戏开发者经常使用的一款游戏引擎,Unity3D的脚本引擎支持UnityScript、Boo和C#语言。UnrealEngine虚幻引擎是目前世界知名授权最广的游戏引擎之一,UnrealEngine4(简称为UE4)是第4代虚幻引擎,由EpicGames公司推出,包括一个方便和强大的图形用户界面,它能够表现出更加惊人的画面。
1.2动画系统概述
游戏是在计算机上实时模拟虚幻世界所得的数学模型,数学渗透到游戏产业的各个环节中,其中最为常用的是三维矢量和矩阵运算。游戏引擎中每个角色或物体有其实体数据结构,但相同类型的角色或物体都会共享一组资源数据。这些共享数据一般包括骨骼(Skeleton)、蒙皮网格和动画片段(AnimationClip)。由于游戏的动画几乎都不可能制作成一串很长的、连续的帧,因而游戏角色的移动都必须拆分为大量小粒度的动作,这些个别的动作称为动画片段。每个动画片段都可以令角色表现一个有明确界定的动作,一个动画角色的动作通常会被拆分为上千个动画片段。每个动画片段各自有一条局部时间线,局部时间线的某时刻通常用自变量t(局部时间)表示,t的取值范围是[0,T],T为该片段的持续时间。
期刊文章分类查询,尽在期刊图书馆
2.动画混合技术概述
动画混合就是能令一个以上的动画片段对角色最终姿势起作用的技术。确切地说,混合是将两个或更多的输入姿势结合起来,从而产生骨骼的输出姿势。混合一般能够结合某个时间点的两个或两个以上的姿势,并产生同一时间点的输出。因此混合作用结合两个或两个以上的动画,大量新动画便能够自动产生,而无需手工制作这些动画,这样便能节省制作工时。按不同的分类方法,动画混合有不同的类型。(1)按源动画片段的数目分:双轨混合和多轨混合;(2)按混合的细节度分:整体混合和细节混合;(3)按混合的算法类型分:线性插值混合、加法混合和减法混合等;(4)按应用目的的不同分:基于速度的混合和基于方向的混合等。动画混合可用于对面部表情、身体姿势、运动模式等的极端姿势之间的插值。动画混合也能够用于求出不同时间点的两个已知姿势之间的姿势。当要取得角色在某个时间点的姿势,而该时间点并非刚好对应动画数据的采样帧,那么就能够使用这种动画混合。也能够使用时间上的动画混合:通过在短时间内将来源动画逐渐混合至目标动画,就能将某动画圆滑过渡至另一个动画。主要有轨混合、多轨混合、线性插值混合和加法混合等四种动画混合方法。
双轨混合是含两个源动画片段的混合,多轨混合是含三个或三个以上源动画片段的混合。双轨混合是多轨混合的特例,通常能够以某种方式将多轨混合转换为双轨混合。下面以三轨混合转换为双轨混合为例,介绍一种最简单的转换方法。按权求和的思想在角色动画中的应用很广,实际上动画混合就是对各个源动画片段中的角色姿势进行按权求和(“权”即混合权重)。
3.游戏引擎中的动画混合技术应用简介
在UE4中,主要使用混合空间和动画蓝图混合动画。混合空间(Blendspace)是将动画混合在一起的最常用的方法,它能够基于多个值对多个动画进行复杂混合。例如,把定向跑步动画和一个空闲动画基于游戏玩家的移动方向及速度进行混合的方法是:在UE4的内容浏览器中,选择“Blendspace”命令创建一个混合空间,并在“ChooseSkeleton”(选择骨架)对话框中选择该混合空间应指向的骨架,使用拖曳放置混合空间节点,将玩家的方向及速度分别作为输入值(Input1和Input2)传入到混合空间Blendspace中,把设置动画基于这两个输入值进行适当的混合,从而输出混合动画Pose(姿势)。
使用Unity3D的Mecanim动画系统能够创作优美的角色蒙皮动画,Mecanim动画系统支持动画混合功能。Mecanim工作流主要包括3个主要阶段:(1)游戏场景和角色资源的准备和导入;(2)角色的建立;(3)角色的运动。包括设定动画片段及交互、建立动作状态机及混合树、调整动画参数和通过代码控制动画(动画混合)等。例如,假设一个模型有4种动作,即:walk、leap、shrug和idle。在Unity3D中,一个Layer层只能够播放两种动画。
混合动画也可使用动画蓝图中的动画图表处理。动画图表依靠一系列不同的节点绘制动画数据姿势流程的图表,每一节点皆以某种方式对姿势或动作的最终效果产生影响。所有姿势都是能够叠加的(即将两个动画基于带权重的偏移量或alpha值叠加在一起)。例如,可指定一根特定的骨骼及其子骨骼对某个动画进行播放,起初可让角色播放奔跑动画,接着有选择性地在右臂播放挥手动画,最后此角色就能边奔跑边挥手了。在动画蓝图的动画图表中放置混合空间节点,即可应用混合空间。在动画图表中,能够向混合空间输入数据,接着输出动画混合后的姿势。
4.结语
经过近几年的不断发展,当下的游戏引擎已进化为由多个子系统共同构成的复杂系统,从建模、动画技术到光影计算、粒子特效,从物理系统、碰撞检测到场景管理、网络特性,还有专用的编辑工具和插件,几乎涵盖了开发过程中所有的重要环节。一款游戏能够实现什么样的效果,在很大的程度上取决于所使用引擎的性能。游戏引擎中的动画混合技术结合两个或两个以上的动画,自动产生大量的新动画,明显缩短了动画制作的工时,显著提升了动画制作的质量和效率。游戏引擎中动画系统性能的提升和算法的优化,将是下一步的研究工作。
参考文献:
[1]于潇翔,彭月橙,黄心渊.基于Unity3D的道具系统研究与开发[J].成都理工大学学报(自然科学版),2014,41(4):523-528.
[2]胡起云.UE4游戏引擎的建筑可视化表现探析[J].装饰,2016(8):134-135.
[3]列夫,蔡建平.数字皮影戏骨骼动画技术的研究与应用[J].计算机工程与设计,2013,34(1):241-246.
[4]罗植尹.虚拟角色交互框架及动画混合的研究与实现[D].成都:电子科技大学,2011:46-52
论文作者:赵跃隆,马浩增,冯镜澎
论文发表刊物:《防护工程》2019年9期
论文发表时间:2019/8/8
标签:动画论文; 引擎论文; 游戏论文; 角色论文; 姿势论文; 片段论文; 两个论文; 《防护工程》2019年9期论文;