游戏引擎技术基础

2016-12-03 03:50陈丽萍
关键词:虚幻引擎动画

陈丽萍

(蚌埠医学院,安徽 蚌埠 233000)

[文章编号]1671-802X(2016)04-0029-04

游戏引擎技术基础

陈丽萍

(蚌埠医学院,安徽 蚌埠 233000)

介绍游戏引擎的作用、功能和分类,着重介绍虚幻3游戏引擎,对游戏开发者进行开发选择提供参考借鉴。

游戏引擎;Unity3D;虚幻;虚拟现实

一、游戏引擎简介

游戏引擎是指一些已编写好的、可编辑的电脑游戏系统或者一些交互式实时图像应用程序的核心组件,是一个为运行某一类游戏的机器设计的能够被机器识别的代码(指令)集合[1]。这些系统为游戏设计者提供编写游戏所需的各种工具,其目的在于让游戏设计者能容易和快速地做出游戏程式,而不用由零开始。

游戏引擎像一个发动机,控制着游戏的运行。一个游戏作品可以分为游戏引擎和游戏资源两大部分。游戏资源包括图象,声音,动画等部分,游戏引擎则是按游戏设计者的要求顺序的调用这些资源。

游戏引擎有很多内容,比如渲染引擎、脚本引擎、物理引擎、网络引擎、动画效果、人工智能、场景管理、音效处理等。

二、游戏引擎主要功能

经过不断的改进,游戏引擎已经发展为一套由多个子系统共同构成的复杂系统,从游戏建模到光影特效、场景动画,从物理碰撞检测到游戏联网,基本上包含了游戏开发中所有的重要环节。其主要功能有以下几方面:

(一)控制光影效果

光影效果,即游戏中的人和物受到其中光源的影响方式与结果。游戏的光影效果是受引擎控制的,其中基本的光学原理如折射、反射,动态光源等特殊效果都是通过各个引擎的编程来实现的。

(二)引入动画系统

游戏中常见的动画系统有两种:骨骼动画系统和模型动画系统[2]。引擎预先在游戏中植入这两种动画系统,动画师使用这些系统对游戏人物设计复杂多样的动作造型。

(三)提供物理系统

物理系统是引擎的一个重要功能,它可以使物体的运动遵循固定的规律,其中碰撞探测是物理系统的核心部分,它可以探测游戏中各物体的物理边缘。当两个3D物体发生相撞,它可以避免其相互穿过的笑话,比如当游戏人物与墙发生碰撞的事件,该人物既不会把墙撞倒,也不会从墙中穿越,就是因为碰撞探测系统会根据人物和墙各自的特点来确定两者的相互作用关系。

(四)进行游戏渲染

引擎的最重要的功能还包括渲染,游戏美工在游戏三维建模完成后,会根据模型不同的面进行材质贴图,再通过渲染引擎实时计算光影、音效、动画等各种效果并将其输出在屏幕上。因为这种实时性,所以渲染引擎是所有引擎中最复杂的,它的好坏直接决定着游戏的最终输出效果。

(五)支持游戏联网

引擎还有一个重要的职责就是负责处理玩家与电脑之间的互动,包括响应鼠标、键盘、游戏手柄等外设的信息。对于支持联网的游戏,在引擎中还集成了网络代码,便于客户端与服务器之间进行通信。

三、常用的游戏引擎

引擎就好比游戏的框架,框架搭好后,模型师、动画师、特效师就可以轻易地往里面填充各自相关内容,3D游戏的开发过程更是如此。因为引擎的制作会占用大量的游戏开发时间,为了降低成本、缩短开发周期、减少风险,大多数开发者愿意采用现成的第三方引擎来从事自己的游戏开发,而不是自主研发自己的引擎,这就引发和产生了一个巨大的第三方引擎授权市场。[2]市场上游戏引擎十分繁多,目前在市场上应用的3D游戏引擎主要有:

(一)Havok引擎

Havok引擎是Havok公司开发的一款物理引擎,全称为Havok游戏动力开发工具包(Havok Game Dynamics,SDK),简称为Havok,其被广泛用于三维设计(3D MAX)和游戏开发中,这款引擎是最早支持DirectX 9的物理引擎之一,也是目前世界上最快、最方便的跨平台游戏图形解决方案,也是目前应用最为广泛的物理引擎之一。

Havok是用C/C++语言开发而成,可以在微软的windows操作系统、Xbox、Xbox360、任天堂的GameCube与Wii、新力的PS2、PS3与PSP、苹果的Mac OS X、Linux等操作系统或游戏主机上使用。由于Havok的开放性以及不依赖特定硬件支持的特点,很多游戏大作都采用Havok引擎。自从Havok引擎发布以来,采用Havok引擎开发的游戏已超过280种。

(二)寒霜引擎(Frostbite)

寒霜引擎是瑞典DICE游戏工作室为著名电子游戏产品《战地》系列设计的一款3D游戏引擎,该引擎从2006年起开始研发。

寒霜引擎的特色是可以运作庞大而又有着丰富细节的游戏地图,可以利用较低的系统资源渲染地面、建筑、杂物的全破坏效果。寒霜引擎能够为远景提供精细的模型和贴图,为游戏中的昼夜更迭、远方的地平线提供逼真的效果,且较合理地分配系统资源,不会占用过大的内存,深受游戏开发者的青睐。

(三)Unity3D

Unity3D是由丹麦Unity公司开发的游戏开发工具,作为一款跨平台的游戏开发工具,从一开始就被设计成易于使用的产品[3]。它使用了PhysX的物理引擎,支持JaveScript、C#、Boo脚本,还可使用插件。Unity包含了功能强大的游戏引擎。它可以支持所有平台、具有先进的延迟照明系统、顶级的光照贴图技术、引入了脚本调试、应用范围广泛等出色功能使它不仅在游戏行业,也在建筑业、医疗成像和其他领域被广泛地使用。

Unity的扩展,为很多行业带来了广泛利益,如产品生成模拟,建筑漫游,军事训练,医疗培训和直觉反应测试等。

(四)虚幻引擎

虚幻引擎是全球领先的游戏开发商和引擎研发商Epic Games的核心产品。最新的开发版本是虚幻引擎4,但目前市面上大多数游戏的开发还是使用虚幻引擎3开发。虚幻引擎3是一套为DirectX9/ 10 PC、Xbox 360、PlayStation 3平台准备的完整的游戏开发构架,提供大量的核心技术阵列、内容编辑工具,支持高端开发团队的基础项目建设[4]。虚幻引擎3具有较高的易用性,特别在数据生成和程序编写的方面十分方便,游戏美工可以在可视化环境中非常便利地开发游戏的多个数据资源,而不需要依赖程序员的协助;虚幻引擎3还能够为程序员提供一个先进的应用程序框架,它具有良好的可扩展性,常用于测试和发布各种不同类型的游戏。

1.程序特点

在虚幻引擎中为了让游戏开发的程序员们能够更好地进行编写,提供了3个非常具体的编写实例和百分之百开放的源代码、编辑器、Max/Maya的输出插件,以及一些公司内部开发游戏所使用的游戏代码。

虚幻的游戏播放脚本语言提供了许多自动化的原数据,供游戏开发人员参考和使用。引擎不仅可以兼容多种文件格式,还允许游戏的关卡、任务编辑人员在编辑器中直接察看游戏脚本的内容、属性并直接进行修改。

虚幻引擎3提供了统一化的编码标准,适用于PC机的汇编及可以支持的下一代控制平台,所有游戏开发所需要的内容和数据文件都能在这些可以支持的控制平台中兼容。这样可以极快地增强开发的内容和数据在转化和测试工作中的效率。

2.渲染效果

它具有64位色高精度动态渲染管道,提供了完美的颜色精度,并且支持如景深、光晕等各种后期特效。同时支持几乎所有基于像素的光照与渲染效果,如光线衰减函数、采用预计算的阴影遮罩技术、虚拟贴图。其支持的所有阴影技术都是可视化的,并且可以按照美工的意愿自由混合。所以角色能够在虚幻引擎3中使用阴影技术产生动态的软阴影。

虚幻引擎3拥有强大的材质系统,使得美工可以在实时图形化界面中建立任意复杂的实时Shader,材质框架是模块化的,程序员不仅可以加入新的Shader程序,还可以随意加入Shader组件与其他组件连接,从而实现Shader代码的动态合成。

采用了刚体物理系统,支持游戏者和游戏中的物体、布娃娃角色动画以及复杂碰撞等物体交互方式,能够赋予物体一定的质量、形状等特性,从而获得逼真的力学动态效果。在虚幻引擎3提供的编辑工具UnrealEd中内建可视化物理建模工具,能够对物体的属性进行实时修改,包括游戏者控制、人工智能和网络。在地图编辑方面,使用了利用高度图直接生成地表高度的地图编辑器,可以对不同的地面层进行不同的材质融合,使得地形变化丰富,美术的制作效率更高。《半条命2》、《Pain Killer》等著名游戏均采用了这个物理引擎,才取得了惊艳的效果。

3.动画系统

动画系统包括4个部分:

(1)混合控制器,对动画物体进行多路混合。

(2)数据驱动控制器,主要是封装动画数据,不管是采用动作捕捉还是手工制作的。

(3)物理控制器,与刚体动态引擎相连接,以便游戏者和NPC对力的物理响应。

(4)过程动画控制器,通过C++或UnrealScript实现一些特性,比如让一个NPC的头部和眼睛跟踪一个在关卡中行走的游戏者,或使一个角色根据健康情况和疲劳度作出不同动作等。

4.游戏性系统

丰富的多级别AI系统,设计者使用可见的AI脚本工具创建复杂的交互性游戏设定,例如游戏者目标,通用的游戏事件触发器和交互式过场动画。

三维声源位置设置多普勒效应,多普勒效应是指当发声物体在运动时,声音的音调会随着物体移动速度而改变其高低——声音频率的变化,这个原理也被运用在声卡3D发声原理之中。

在UnrealEd中的可视化音效工具可以为声音设计者提供对音效的全面控制,包括声音强度、顺序、循环、过滤、调制、变调和随机化。声音参数被从代码中分离开,使设计者可以控制所有的与游戏、过场动画和动画序列相关的声音。

5.网络及联机

引擎的互联网架构和局域网架构很好地支持PC机及各种操作平台,支持不同操作平台之间的联机对战。

虚幻引擎底层游戏网络传输是基于UDP的并能够将可靠和不可靠传输方式结合,来对游戏感进行优化,即使在低带宽和高延迟的环境下也能保证游戏的速度和性能。

6.UnrealED内容创建工具

Uneral编辑器(UnrealEd)是一个“所见即所得”的数据生成工具,它对游戏对象如游戏者、NPC、物品、光源的可视化放置与编辑等,带有完全的实时预览。它还包含一个数据驱动的编辑框架,允许关卡设计者自定义任何游戏对象,允许程序员通过脚本使用新的自定义的属性。其编辑界面如图1所示。

图1 Uneral编辑器

虚幻引擎3被作为一个可以在PC和下一代家用游戏主机上编译的统一的代码基础。所有游戏组件和数据文件都可以在各种平台上兼容,便于在PC上代码和资源的快速周转,在家用机和PC上进行游戏测试等。

总的来说,虚幻引擎3是一个非常优秀的引擎,占有全球商用游戏引擎近80%的市场份额。它提供的功能非常先进,几乎融合了目前顶级显卡中提供的所有功能,在这样的技术背景下,这款引擎带来了非常绚丽的效果,其制作的作品的画面足以震撼每一位观众。

四、总结

一个游戏能否给消费者带来尽可能完美的感官上的享受成为一个游戏能否获得成功的最基本的因素。对于游戏中最为流行的3D游戏来讲,开发游戏的难度是随着游戏容量不断攀升的。如何能够迅速的开发出一个高质量的游戏就成为业界十分关注和讨论的热点,而采用游戏引擎和游戏内容分离的方式是目前最好的一种解决方案。作为游戏中的灵魂,游戏引擎的成功与否将决定一系列游戏的最终效果,这也是游戏引擎开发在行业供不应求的根本原因。虚幻引擎3在目前的商业游戏引擎中仍占有举足轻重的地位,依然是游戏开发商进行游戏开发特别是第一、第三人称动作、射击游戏开发的不二选择。

[1]穆 俊.计算机游戏设计原理以及游戏引擎的设计思想[J].硅谷,2014,(3).

[2]倪泰乐.使用游戏引擎制作动画的方法研究,新闻研究导刊[J],2015,(10).

[3]李 雷,张俊楷.谈Unity游戏开发教学改革与实施对策[J],时代教育,2015,(7).

[4]李 强.基于游戏引擎技术的三维动画的制作研究,科技展望[J],2014,(21).

(责任编辑:魏树峰)

A Brief Introduction to the Game Engine Technology

CHEN Li-ping
(Bengbu Medical College,Bengbu 233000,China)

The roles,functions and classifcation of the game engine are introduced.The Unreal 3 Game Engine is presented,which provides good reference for game developers.

game engine;Unity3D;unreal;virtual reality

TP391.41

A

2016-06-11

陈丽萍(1974-),女,安徽祁门人,工程师,研究方向:计算机信息管理、数字媒体技术.E-mail:mingyang80@163.com.

猜你喜欢
虚幻引擎动画
雨中(外二首)
春天越来越虚幻
做个动画给你看
新海珠,新引擎,新活力!
动画发展史
我的动画梦
《头号玩家》里的虚幻与现实
动画批评融入动画教育的思考
三生 三大引擎齐发力
蓝谷: “涉蓝”新引擎