Unity&VR游戏美术设计实战
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.2 游戏引擎的定义

“引擎”(Engine)这个词汇最早出现在汽车领域,引擎是汽车的动力来源,它就好比汽车的心脏,决定着汽车的性能和稳定性,汽车的速度、操纵感等直接与驾驶相关的指标都建立在引擎的基础上。电脑游戏也是如此,玩家所体验到的剧情、关卡、美工、音乐、操作等内容都是由游戏引擎直接控制的,它扮演着中场发动机的角色,把游戏中的所有元素捆绑在一起,在后台指挥它们同步有序地工作(见图3-8)。

图3-8 游戏引擎如同汽车引擎一样精密复杂

例如,在某游戏的一个场景中,玩家控制的角色躲藏在屋子里,敌人正在屋子外面进行搜索。突然,玩家控制的士兵碰倒了桌子上的一个杯子,杯子坠地发出破碎声。敌人在听到屋子里的声音之后,聚集到玩家所在位置。玩家开枪射击敌人,子弹引爆了周围的易燃物,产生爆炸效果。在这一系列的过程中,正是游戏引擎在后台起着作用,控制着游戏中的一举一动。简单来说,游戏引擎就是用于控制所有游戏功能的主程序,从模型控制到计算碰撞、物理系统和物体的相对位置,再到接受玩家的输入,以及按照正确的音量输出声音等都属于游戏引擎的功能范畴。

无论是2D游戏还是3D游戏,无论是角色扮演游戏、即时策略游戏、冒险解谜游戏还是动作射击游戏,哪怕是一个只有1MB的桌面小游戏,都有这样一段起控制作用的代码,我们可以笼统地将其称为引擎。或许在早期的像素游戏时代,一段简单的程序编码都可以被我们称之为引擎,但随着计算机游戏技术的发展,经过不断进化,如今的游戏引擎已经发展为一套由多个子系统共同构成的复杂系统。从建模、动画到光影、粒子特效,从物理系统、碰撞检测到文件管理、网络特性,还有专业的编辑工具和插件,几乎涵盖了开发过程中的所有重要环节,这一切所构成的集合系统才是我们今天真正意义上的游戏引擎。而一套完整、成熟的游戏引擎必须包含以下几方面的功能。

首先是光影效果,即场景中的光源对所有物体的影响方式。游戏的光影效果完全是由引擎控制的,折射、反射等基本的光学原理及动态光源、彩色光源等高级效果都是通过游戏引擎的不同编程技术实现的。

其次是动画。目前游戏所采用的动画系统可以分为两种:一种是骨骼动画系统,另一种是模型动画系统。前者用内置的骨骼带动物体产生运动,比较常见;后者则在模型的基础上直接进行变形。游戏引擎通过这两种动画系统的结合,让动画师为游戏中的对象制作更加丰富的动画效果。

游戏引擎的另一重要功能是提供物理系统,这可以使物体的运动遵循固定的规律。例如,当角色跳起的时候,系统内定的重力值将决定其能跳多高,以及其下落的速度有多快。另外,诸如子弹的飞行轨迹、车辆的颠簸方式等也都是由物理系统决定的。

碰撞探测是物理系统的核心部分,它可以探测游戏中各物体的物理边缘。当两个3D物体撞在一起时,这种技术可以防止它们相互穿过,这就确保了当角色撞在墙上的时候,不会穿墙而过,也不会把墙撞倒,因为碰撞探测会根据角色和墙之间的特性确定两者的位置和相互作用关系。

渲染是游戏引擎最重要的功能之一,当3D模型制作完毕后,游戏美术师会为模型添加材质和贴图,最后通过引擎渲染把模型、动画、光影、特效等所有效果实时计算出来并展示在屏幕上。在游戏引擎的所有部件当中,渲染模块是最复杂的,它的强大与否直接决定着最终游戏画面的质量(见图3-9)。

图3-9 游戏引擎拥有强大的即时渲染能力

游戏引擎还有一个重要的职责,即负责玩家与计算机之间的沟通,包括处理来自键盘、鼠标、摇杆和其他外设的输入信号。如果游戏支持联网特性,则网络代码也会被集成在引擎中,用于管理客户端与服务器端之间的通信。

时至今日,游戏引擎已从早期游戏开发的附属品变成了今日的中流砥柱,对于一款游戏来说,能实现什么样的效果,在很大程度上取决于所使用游戏引擎的能力。下面我们就来总结一下优秀的游戏引擎所具备的优点。

1.完整的游戏功能

随着游戏要求的提高,现在的游戏引擎已经不再是一个简单的3D图形引擎,而是涵盖3D图形、音效处理、AI运算、物理碰撞等游戏中的各个组件,所以齐全的各项功能和模块化的组件设计是游戏引擎所必需的。

2.强大的编辑器和第三方插件

优秀的游戏引擎还要具备强大的编辑器,可以进行场景编辑、模型编辑、动画编辑、特效编辑等。编辑器的功能越强大,美工人员可发挥的余地就越大,做出的效果也就越多。而插件的存在,使得第三方软件如3ds Max、Maya等可以与游戏引擎对接,无缝实现模型的导入/导出。

3.简洁有效的SDK接口

优秀的游戏引擎会把复杂的图像算法封装在模块内,对外提供的则是简洁有效的SDK接口(见图3-10),有助于游戏开发人员迅速上手。这一点就像编程语言一样,越高级的语言越容易使用。

图3-10 简洁有效的SDK接口

4.其他辅助支持

优秀的游戏引擎还提供网络、数据库、脚本等功能,这一点对于面向网游的游戏引擎来说更为重要。网游要考虑服务器端的状况,要在保证优异画质的同时降低服务器端的极高压力。

以上 4 点对于今天大多数游戏引擎来说都已具备,当我们回顾过去的游戏引擎时便会发现,这些功能都是从无到有慢慢发展起来的,早期的游戏引擎在今天看来已经没有什么优势,但正是这些先行者推动了今日游戏制作的发展。