新書推薦:
《
何以中国·何谓唐代:东欧亚帝国的兴亡与转型
》
售價:HK$
89.7
《
一间只属于自己的房间 女性主义先锋伍尔夫代表作 女性精神独立与经济独立的象征,做自己,比任何事都更重要
》
售價:HK$
45.8
《
泉舆日志 幻想世界宝石生物图鉴
》
售價:HK$
137.8
《
养育女孩 : 官方升级版
》
售價:HK$
51.8
《
跨界:蒂利希思想研究
》
售價:HK$
109.8
《
千万别喝南瓜汤(遵守规则绘本)
》
售價:HK$
45.9
《
大模型启示录
》
售價:HK$
115.0
《
东法西渐:19世纪前西方对中国法的记述与评价
》
售價:HK$
207.0
|
編輯推薦: |
本书面向艺术类的游戏设计专业(方向)学生,以较易理解与操作的案例化教学方式,将游戏程序设计与引擎应用的知识点融入其中。在分析方法的同时,举一反三,同时引入计算机思维的内容。旨在让读者在理解游戏开发技术的同时,为游戏策划、游戏TA(技术美工)、游戏开发技术等职位建立知识储备,为后续更深入地理解游戏开发流程与技术打下基础。
|
內容簡介: |
本书面向数字媒体艺术专业、游戏艺术设计专业的本科生及艺术类对游戏设计感兴趣的学生,旨在为其提供游戏开发相关的基础知识与必要技能。全书以4个具有代表性的案例为切入点,前半部分以Flash为工具分析游戏程序设计的必要知识;后半部分以Unity为工具分析游戏引擎的操控要点,与专门针对程序设计的教材不同的是,本教材涉及内容相对广泛,也符合艺术类学生学习游戏开发的特点,重点并非掌握游戏开发的核心技术,而是通过对技术的了解掌握在工具辅助下的开发流程,进而更好地与开发人员配合完成开发项目,再进一步在工具的帮助下独立完成开发项目。全书在上述内容讲解之余,亦投入相当篇幅分析具有前沿应用的增强现实与体感游戏,并就产业特点同样以一章的篇幅分析跨平台游戏开发与项目管理。
|
關於作者: |
严宝平,南京艺术学院传媒学院游戏艺术设计教研室主任,先后毕业于南京师范大学与南京大学。中国图象图形学会数码艺术专业委员会委员,主攻游戏程序设计、游戏引擎设计、数字媒体项目管理方向。出版教材《数字游戏艺术概论》,获江苏省高等学校精品教材。发表论文《严肃游戏与游戏化学习》、《游戏项目开发现状分析》、《数字媒体创作中的软件工程方法引入》、《基于移动终端的严肃游戏展望》等多篇。主持校级重点课题《游戏项目开发的资源配置》及省级课题《严肃游戏的社会作用机制研究》。
|
目錄:
|
目录
第1章游戏程序设计概述1
1.1游戏开发的进化1
1.1.1数字游戏产生前1
1.1.2数字游戏的产生2
1.1.3复杂的硬件促生丰富的游戏内容3
1.2编程语言与脚本语言4
1.2.1编程语言与脚本语言的区别4
1.2.2主要的编程语言与脚本语言5
1.3游戏基本类型7
1.3.1从数字游戏的介质中区分游戏类型7
1.3.2从数字游戏的内容中区分游戏类型8
1.4游戏中的常见功能13
1.4.1场景的动态加载13
1.4.2角色动作系统管理及驱动14
1.4.3自动寻路系统15
1.4.4资源的回收与优化15
1.4.5回合制战斗系统16
1.4.6塔防系统中的数据管理16
小结18
第2章Flash游戏开发基础19
2.1Flash游戏开发历程19
2.1.1Flash的诞生与早期的发展19
2.1.2Flash在游戏设计领域的起步19
2.1.3Flash在社交网页游戏中的主导地位建立20
2.2Flash基本要素21
2.2.1新版本Flash CC的特征内容21
2.2.2Flash基本概念21
2.3ActionScript脚本25
2.4程序设计的必要概念26
2.4.1变量、常量及数据类型27
2.4.2变量作用域31
2.4.3函数、形参、实参32
2.5程序的基本结构33
2.5.1顺序结构33
2.5.2选择结构33
2.5.3循环结构35
2.6事件36
2.6.1Event事件类型37
2.6.2MouseEvent鼠标事件类型37
2.6.3KeyboardEvent键盘事件类型38
2.6.4TimerEvent计时器事件类型38
2.7游戏中的元素39
2.7.1美术素材39
2.7.2音频素材40
2.7.3视频素材40
小结41
目录游戏程序设计与引擎第3章记忆双消游戏实例42
3.1游戏策划中的功能设计42
3.1.1消除类游戏简述42
3.1.2本案例的功能计划43
3.2场景元素的组织与动态生成44
3.2.1游戏的开始界面44
3.2.2游戏的主运行界面46
3.3游戏控制的实现52
3.3.1单击的控制52
3.3.2消除的实现53
小结55
第4章飞行射击类游戏实例56
4.1游戏策划中的平衡性设计56
4.2飞行射击游戏功能分析56
4.2.1飞行射击游戏的参考56
4.2.2飞行射击游戏功能分析58
4.3战斗场景的控制59
4.4战斗系统与资源回收64
4.4.1敌方飞机的不断出现与攻击64
4.4.2敌我双方子弹的功能实现65
4.5动态表现与游戏特效68
小结69
第5章游戏引擎概述70
5.1游戏引擎的基本概念70
5.2游戏引擎的功能模块72
5.3主流游戏引擎分析73
5.3.1Unreal虚幻引擎74
5.3.2CryEngine76
小结79
第6章Unity开发入门80
6.1Unity介绍80
6.1.1使用Unity开发的游戏80
6.1.2Unity游戏引擎的发展历程83
6.1.3Unity 5及其技术优势83
6.2安装与运行84
6.2.1Unity的安装84
6.2.2Unity的激活87
6.2.3样例工程分析90
6.2.4工程文件的新建与维护93
6.3Assets Store94
6.4C#脚本95
小结105
第7章打地鼠游戏实例106
7.1游戏对象与地形106
7.1.1游戏对象的类型106
7.1.2Terrain地形109
7.2游戏的视角115
7.2.1第一人称视角游戏115
7.2.2第二人称视角游戏116
7.2.3第三人称视角游戏116
7.3使用2D ToolKit插件包构建游戏场景117
7.3.12D ToolKit概述117
7.3.22D ToolKit基本使用117
7.3.3打地鼠场景构建119
7.4地鼠的动态生成与受控121
小结122
第8章投射类游戏实例123
8.1Unity中的物理系统123
8.1.1重力与摩擦力系统123
8.1.2物理材质系统125
8.1.3碰撞检测128
8.2游戏功能计划与开发周期预算130
8.2.1游戏的功能计划131
8.2.2游戏的功能点分析及周期预算131
8.2.3开发流程控制133
8.3主体功能设计135
8.3.1飞镖的投射及控制135
8.3.2飞镖的击中与稻草人控制137
小结138
第9章增强现实与独立游戏139
9.1增强现实139
9.1.1增强现实的产生139
9.1.2增强现实应用的领域140
9.2基于高通Vuforia SDK的AR实现142
9.2.1关于高通公司及其Vuforia142
9.2.2与Unity配合的增强现实开发142
9.3基于微软Kinect的体感游戏开发146
9.3.1微软体感硬件Kinect146
9.3.2Unity和Kinect交互的环境配置147
9.3.3用于Kinect开发的包中包含的资源147
9.3.4在工程中使用KinectWrapperPackage包148
9.4独立游戏与实验游戏150
9.4.1独立游戏代表作: 陈星汉《旅程》150
9.4.2独立游戏代表作《机械迷城》151
小结153
第10章跨平台游戏开发154
10.1跨平台趋势154
10.1.1跨平台前期的障碍154
10.1.2跨平台发展的契机154
10.2网页游戏平台及其特点156
10.3手机游戏平台及其特点158
10.4电视游戏平台及其特点160
小结161
参考文献162
|
內容試閱:
|
序《计算机艺术设计规划教材》是在教育部高等学校文科计算机基础教学指导分委员会组织下完成的教育部大学计算机课程改革项目计算机艺术设计课程与教材创新研究的成果,涵盖了大学计算机基础、信息与交互设计、互动媒体艺术、数字游戏设计、计算机网页设计、计算机动画应用与开发等内容。本套教材由清华大学美术学院牵头,国内多所在本领域具有广泛影响力的综合性院校和艺术院校的相关专业教师参与,目的是通过教材创新改革引导学生利用计算思维,发现并善于借助计算机的优势,科学运用计算机技术,培养学生基于计算思维优化创新、应用设计的综合能力,以适应当今时代的发展和需求。在计算机技术应用目的、层次、范围不断扩延和提升的今天,其学科渗透与产业渗透越来越明显,计算机技术也正从一项或是一个系列性的技术技能,升蜕为一种思维模式,并进而深刻影响着人们分析与解决问题的角度和方式。换言之,计算思维已成为当今艺术设计领域从业人员不可或缺的素质和能力。尤其是其与艺术思维的互补和互动,彰显出鲜明的创新驱动性和广阔的发展前景。因此,在新的趋势下通过教材的改革创新将计算思维引入课程和训练环节,对推动计算机教学的改革与研究,具有积极的现实意义。随着艺术设计人才培养改革的深入,如何构建以计算思维培养为导向的课程体系,探讨计算思维方式培养与应用的教学模式,提升学生多元化思维的能力,已成为时代的重要命题。本系列教材的编写,体现了各编著者多年来在此领域的努力和经验,反映了他们长期以来对计算机教学理论与实践探索总结的成果,具有较强的针对性和问题意识。教材内容力求在理论层面,从以计算思维为基础、与艺术思维相结合的角度,形成对计算机课程和知识结构、体系的务实探讨,从而有利于学生多元化思维的建立,以适应时代与社会、行业与职业的发展需求。相信通过本系列教材的出版发行,将进一步引发艺术设计领域同仁对计算思维及计算思维模式与应用技术的关注和重视,推动计算机教学改革与课程建设的深层次尝试和探究。是为序。
清华大学美术学院何洁杨静2016年12月
前言游戏是一门艺术,也是一门技术,正是这样的交叉学科所具有的独特魅力,使其不仅在商业上获得成功,也在当代艺术中倍显光彩。游戏及由游戏所衍生的模拟化数字互动形式,正以更快的速度进入大众视野,可以预见在不远的将来,以游戏形式呈现的娱乐、学习、社交、生活等将如同当前的电子设备一般牢牢地渗透我们的世界,并在其形态与功能上不断推陈出新,以更贴近我们需求的方式无所不在。游戏产业的发展之迅速,是偶然更是必然。自2000年开始的网络游戏繁荣,是互联网普及与文化消费贫乏的必然; 2006年网页游戏兴起,是社交媒体迅速发展、网络带宽提速与浏览器性能提升的必然;2008年开始的手机游戏大潮是以苹果为首的高配置智能手机普及的必然;手机游戏大有替代网络游戏的趋势也是手机的高使用频度及其显示、计算等性能提升的必然;而自2009年开始的网络游戏衰退,则是在网页游戏、手机游戏普及与文化消费观念回归的大环境下产生的必然。在上述发展过程中,国内的产业形态也在发生着不断的变化。从代理到买入再到合作研发,从外包制作到自主研发以及定制开发,游戏产业及游戏从业者在摸索中前进。从最初就已被证明这是一条宽广的大道,在经历过几次大互通后,这早已不再仅仅是一条大道,而是广泛散开的路网。这个产业的人才向来都是缺乏的,前期外包制作的时候缺乏美术人才,当前自主研发的时候缺乏技术人才与策划人才。本书作为游戏开发技术的入门教材,适合游戏专业二、三年级同学阅读,或是其他专业有兴趣的同学在具备基本程序基础后阅读。在网络如此发达的今天,书作为知识与经验分享的阵地其存在价值仍是不容置疑的。书更多地承担的是知识的牵引与思维的发散,正基于此,我们将内容压缩,教材做薄,以期在简化阅读背后引出更多的思考。受限于个人能力,在本教材成稿后仍存有很多遗憾,烦请各位读者指正。本教材的编写过程中,有幸得到我的两名学生包洋洋与谢亚男的倾力协助,在此表示诚挚的感谢。书中使用的案例由毕时、颜亚威与崔容峰制作,在此一并表示诚挚的谢意。
严宝平2015年11月
第5章游戏引擎概述在讲解了基于Flash的游戏设计之后,以下进入本书的第二部分游戏引擎,并通过一款名为Unity的游戏引擎重点分析在应用中的设计实现。1. 游戏引擎的由来游戏引擎的产生是游戏制作产业化的结果。当一个团队用原生开发的方式设计了自己的第一款射击类游戏,在制作过程中留存一些射击游戏的脚本和开发经验。半年后该团队对这款游戏进行升级,对原有的游戏内容进行了优化维护并新加入一些功能模块。到第二年,该团队觉得这款射击游戏相当成功,便决定从底层开始重新设计射击游戏的第二代产品,虽然是从最基本结构重新开发,但过程中仍然有选择地使用了第一代产品的一些脚本。此时,从第一代产剥离出来的脚本单元经第二代加工后,成了更为通用的模块。可想而知,这些模块到了第三代,基本可以直接拿来使用了。到了第四代产品,该团队觉得自己关于游戏的经验已经相当丰富了,手上的功能模块也相当成熟了。于是决定做一个更具有公共性的射击游戏整合系统,通过这个系统,只要将美术元素进行替换并加入自己一些特征表现的脚本,便可以重新构建一个独立的射击游戏,到这里,一款射击类的游戏引擎便产生了。这正是早期游戏引擎的诞生过程,1992年,3D Realms公司的约翰卡马克发布了一款名为《德军司令部》(Wolfenstein 3D)的第一人称射击游戏,并在此基础上加入了ID Software公司后,以Wolfenstein 3D为名发布了游戏引擎。后来,同样是这家公司,发布了著名的DOOM系列游戏引擎,与之同名的游戏中文名译为《毁灭战士》,正是基于强大的DOOM引擎,《毁灭战士》系列一直走在游戏界3D显示技术前沿。2. 游戏引擎的概念从属性角度看,游戏引擎是一款用于游戏开发的工具软件,同时也是一款行业软件,专业化程度较高。从结构角度看,游戏引擎集成了游戏设计的基础模块,同时制定了规范的游戏开发流程,通过丰富的接口提升了游戏开发效率。引擎一词音译自英文的Engine,该单词实际的含义为发动机。其实将游戏引擎换成游戏发动机更为贴切。众所周知,发动机是汽车或是飞机的心脏,决定着其运行性能与稳定性。发动机动力强劲,对应的行驶速度自然够高,同时,发动机的转速平顺,对应的速度切换自然也会比较平稳。游戏的发动机(引擎)也是如此。第5章游戏引擎概述游戏程序设计与引擎游戏是将剧情、关卡、美术元素、音乐以及各项操作体验的内容组织起来,呈现给玩家。玩家在体验过程中,需要的是精美的画面、精准的操作以及流畅的动态表现效果,这一切的核心都源自游戏引擎的驱动。简单地说,引擎就是用于控制所有游戏功能的主程序,从计算碰撞、物理系统和物体的相对位置,到接受玩家的输入,以及按照正确的音量输出声音等。经过不断的演变进化,如今的游戏引擎已经发展成为一套由多个子系统共同构成的复杂系统,从建模、动画到光影、粒子特效,从物理系统、碰撞检测到文件管理、网络特性,还有专业的编辑工具和插件,几乎涵盖了开发过程的所有重要环节。3. 游戏引擎的分类从游戏引擎的由来可知,游戏引擎早期的发展更偏向于专注某个分支的游戏领域。在接下来游戏引擎的发展过程中,一方面是自身的基因所致,另一方面也是侧重差异化竞争,故不同的引擎富有各自不同的特点。游戏引擎的分类没有严密标准,实际中游戏引擎自身的不断演变进化,同时也在不断地突破分类的局限。通常情况下从两个方面对游戏引擎进行划分,首先是从其画面特性,分为二维游戏引擎与三维游戏引擎。如果Flash也可归为引擎类别,则其是典型的二维游戏引擎。另一款典型的二维游戏引擎为Cocos2D,它是一个开源的二维游戏框架。最初的Cocos2D框架是使用Python编写的,基于Pyglet开发,目前Cocos2D框架已经被移植到了多种语言和平台上。另具代表性的引擎还有: 基于Ajax的neabEngine引擎、基于OpenGL的ika引擎、基于SDL的Finex等。相对而言,专注于二维的游戏引擎占比较小,大多数引擎兼顾二维与三维的开发。三维游戏引擎非常丰富,除了本书重点分析的Unity,还包括本章将介绍的CryEngine和Unreal这些大作,同时也包括一些小型的如Web3D、GameStudio、Blitz3D等。其次从引擎的产品属性上划分,通常分为免费游戏引擎、开源游戏引擎及商业游戏引擎。免费游戏引擎很容易理解,整个产品免费授权,无论是个人用户还是商业用户均可以免费获得,这类游戏引擎相对较少,当然也不乏著名产品,如前文提到的Doom引擎,即已经免费向公众开放。开源游戏引擎同时具有免费的特征,但其拥有另一个更大的特征完全开放,开放到源代码。这类产品引擎公司提供的相对较少,更多的是由组织发起,以开源精神集中创作的,该类引擎主要源自Linux平台,在基因中保留着很大程度的Linux开源精神。其代表作有当前较为热门的Cocos2D引擎,另一个具有代表性的产品为HGE引擎,它基于DirectX、使用C作为语言系统,开发环境依附于Visual Studio,通过其提供的基础类与富有特性的中间件,可以方便地开发出运行于Windows平台的二维游戏。商业游戏引擎是当前游戏引擎的核心,本书主要分析的Unity、Unreal、CryEngine都是主流的商业引擎。这类引擎功能强大,资源丰富,同样提供优质的配套服务等,售价也相对较高,当然Unity除外。Unity Pro版本的售价只有1500美元,这在游戏引擎中已属相当廉价的。Unreal这样的游戏引擎即便是基本的结构,售价通常也在百万美元以上,如果搭载更多的功能模块,添加更多的服务内容,售价千万美元也是正常的,但近年来售价在持续降低。值得一提的是,在开源方面还有一些特征化的引擎,主攻某一特定方面,虽然不被列入游戏引擎家族,但同样在游戏引擎中占据着相当重要的地位。如专攻物理表现的Box2D,它采用C语言,对刚体材质与物理效果做了大量封装,提供大量丰富的API接口,使用者可以通过Box2D简单、方便地创建自己的物理环境。Box2D不但可以通过Visual Studio开发Windows平台的游戏,还可以结合Xcode为 Mac平台进行游戏开发,同时还可以结合Flash使用ActionScript开发跨平台的游戏。1. 动态表现游戏是动态的艺术,首先是游戏画面富含动态元素,其次是大部分游戏中的整个世界都在动态摄像机控制下变化画面。如何让动态画面流畅地播放并可控制,进一步,如何提供更为高效的工具制作动态效果,都是游戏引擎的核心任务之一。除去简单地变化元件的大小、角度及位置,在二维游戏设计中,动态表现主要体现在逐帧的画面播放中,对逐帧元件的存储与读取方式很大程度上体现了一款游戏引擎是否拥有更好的优化能力。三维游戏设计中,动画系统主要分两种: 一种是骨骼动画系统,另一种是模型动画系统,前者用内置骨骼带动物体产生运动,动作比较灵活,但面与面之间的实时计算比较复杂,后者则在模型的基础上直接进行变形并保存关键帧,比较常见。使用骨骼动画较为重要的一个应用是布娃娃系统(Ragdoll Physics),通过对骨骼的动态计算,再结合物理的碰撞计算,显然画面表现会丰富很多。著名的游戏《GTA》(侠盗飞机)在其第四部发布时,便集成了布娃娃系统,当角色被子弹射中后,会出现中弹后退甚至倒地的一系列动作,这些动作效果通过受力的关联计算得出,非常细腻、真实。2. 碰撞与物理材质系统碰撞探测是物理系统的核心部分,它可以探测游戏中各物体的物理边缘。在二维与三维游戏中都有着广泛的运用。二维游戏检测平面素材的轮廓边缘,三维游戏则检测物体的整个外边缘。边缘检测是一项计算极为复杂并消耗资源的工作,一个优秀算法是该类计算执行时保持流畅性画面的保障。以Flash为例,其对位图的边缘检测相对简单,一旦位图出现的部分区域Alpha透底后,Flash提供的内置碰撞检测便失效了,于是便需要自己编写碰撞算法或者寻求第三方开源代码的支持。碰撞后自然就要讨论碰撞结果,铁球掉在石头上、橡胶上及铁块上的结果显然是不一样的,自然界中存在极为复杂的材质系统。要想告诉游戏玩家这是真实的石头,那就需要首先在视觉上给出的反馈与物理世界基本保持一致。于是游戏引擎大多集成了一套完整的物理材质系统,如以Unity为例,其将物理世界的材质抽象成基本类型,如木头、冰块、铁块、橡胶等,同时提供丰富的接口,可由设计者根据各材质的物理属性自定义材质类型。这一部分在后续章节中将展开分析。3. 渲染与实时计算渲染是引擎最重要的功能之一,现实世界是因为有光照才让人有了视觉,光的冷暖直接影响着人的情绪,透光性与折射率的不同,给予人们五彩缤纷的世界。影子的变化让人类得以从细节上分辨事物的空间关系。所以对光影的渲染能力是游戏画面品质的重要保障。渲染重点表现在三维游戏的设计中,三维模型的核心魅力是其在空间结构上的表现,游戏中模拟的世界自然也是有光的存在的,无论是平行光源的自然光还是烘托气氛的点光源,都必须真实地作用在模型上,随着模型的运动进行实时地改变。于是,如何实时地计算反射、折射以及更复杂的连续反射、折射,便是考量一款游戏引擎的性能优劣的重要指标了。4. 网络与硬件支持引擎还有一个重要的职责就是负责玩家与计算机之间的沟通,处理来自键盘、鼠标、摇杆和其他外设的信号。如果游戏支持联网特性,网络代码也会被集成在引擎中,用于管理客户端与服务器之间的通信。通过上述介绍可以了解到,引擎相当于游戏的框架,框架打好后,关卡设计师、建模师、动画师只要往里填充内容就可以了。因此,在早期的游戏开发过程中,引擎的制作往往会占用非常多的时间,《马克思佩恩》的MAXFX引擎从最初的雏形Final Reality到最终的成品共花费了4年多时间,LithTech引擎的开发共花了整整五年时间,耗资700万美元。正是出于节约成本、缩短周期和降低风险这3个方面的考虑,越来越多的开发者倾向于使用第三方的现成引擎制作自己的游戏,一个庞大的引擎授权市场已经形成。本书将重点讨论的Unity引擎,虽然诞生较晚,但已经在短短几年时间内成长为一线引擎阵营成员。5.3.1Unreal虚幻引擎虚幻引擎3是一个面向下一代游戏机和DirectX 9个人计算机的完整的游戏开发平台,提供了游戏开发者需要的大量核心技术、数据生成工具和基础支持。虚幻引擎3的设计目的非常明确,每一个方面都具有比较高的易用性,尤其侧重于数据生成和程序编写方面,这样的话,美工只需要程序员的很少协助,就能够尽可能多地开发游戏的数据资源,并且这个过程是在完全可视化环境中完成的,实际操作非常便利。与此同时,虚幻引擎3还能够为程序员提供一个具有先进功能的,并且具有可扩展性的应用程序框架(Framework),这个框架可以用于建立、测试和发布各种类型的游戏。1. 64位色高精度动态渲染管道校正和线性颜色空间渲染器提供完美的颜色精度,同时支持各种后期特效,如光晕、镜头光环和景深等效果。在最新一代显示芯片发布的过程中,人们注意到一个非常明显的特点,就是新一代显示芯片已经不再满足于传统的32位色深,转而需要更加高精度的颜色范围,这一点在NV40和R420身上都能非常明显地看出来。在NV40上,这种技术称为HPDR技术,而在R420身上,这种技术也有所体现。支持当前所有的基于像素的光照和渲染技术,包括使用法线贴图技术的参数化的Phong光照、虚拟位移贴图、光线衰减函数、采用预计算的阴影遮罩技术以及使用球形harmonic贴图的预计算的凹凸自阴影。2. 高级的动态阴影虚幻引擎3提供对下列3种阴影技术的完全支持: ① 采用动态模板缓冲的阴影体积技术,能够完整支持动态光源,这样就能在场景中所有物体上精确地投射阴影。② 能够让动态角色在场景中投射出动态的、柔和的模糊阴影,这个过程是通过使用16X超级取样的阴影缓冲实现的。③ 采用拥有极高质量和极高性能的预先计算出的阴影遮罩,可以离线处理静态光源的交互现象,同时保留完整的动态高光和反射效果。所有支持的阴影技术都是可视化的,并且可以按照美工的意愿自由混合。另外,同时可以与有颜色的衰减函数结合,从而实现具有合适阴影的平行光、聚光灯效果以及投射光效果。角色能够在虚幻引擎3中使用阴影技术产生动态的软阴影。强大的材质系统,使得美工可以在实时图形化界面中建立任意复杂的实时Shader,而这个界面的友好性可与Maya的非实时Shader图形编辑界面媲美。材质框架是模块化的,所以程序员不仅可以加入新的Shader程序,还可以加入能够让美工随意与其他组件连接的Shader组件,从而可以实现Shader代码的动态合成。完全支持室内和室外环境的无缝连接,在任何地方都支持动态每像素光照和阴影。美工可以通过一个可动态变形的基本高度图来建立地形,并使用多层混合材质,其中包括位移贴图、法线贴图和任意复杂的材质、动态的基于LOD的细分以及植被。另外,地形系统还支持美工控制的自然效果,如平地上的植被、陡坡上的岩石和山顶上的雪。体积环境效果,包括高度雾和物理上精确的距离雾。刚体物理系统,支持游戏者和游戏中的物体、布娃娃角色动画以及复杂碰撞等物体交互方式。3. 布娃娃(Ragdoll)系统布娃娃系统是目前最为流行的一种非常高级的物理引擎,能够赋予物体一定的质量、形状等特性,从而获得非常逼真的力学动态效果。Half Life 2、Pain Killer等著名游戏均采用了这个物理引擎。其特点如下:① 所有可渲染的材质都含有物理特性,如摩擦系数等参数。② 在虚幻引擎3提供的编辑工具UnrealEd中,能够对物体属性进行实时修改。③ 符合物理原理的声音效果。④ 完全整合的基于物理原理的交通工具支持,包括游戏者控制,人工智能和网络。⑤ UnrealEd内建的可视化物理建模工具,支持对于模型和骨骼动画网格的用于优化碰撞检测的图元的建立;约束编辑;在编辑器内可交互的物理模拟和调整。4. 动画系统骨骼动画系统,支持每顶点可达4骨骼同时影响的效果以及复杂的骨骼结构。动画由一棵动画物体树驱动,包括: ① 混合控制器,进行对嵌套的动画物体之间的多路混合。② 数据驱动控制器,封装动作捕捉或手动制作的动画数据。③ 物理控制器,连接到刚体动态引擎,用来实现布娃娃系统的游戏者和NPC动画和对力的物理响应。④ 过程动画控制器,以C或UnrealScript实现,为了实现一些诸如使一个NPC的头部和眼睛跟踪一个在关卡中行走的游戏者,或使一个角色根据健康情况和疲劳度作出不同动作等的特性。为3D Studio Max和Maya制作的导出工具,用于向引擎中导出赋予蒙皮权重的网格、骨骼和动画序列。5. 游戏框架以及人工智能Unreal虚幻引擎提供一个支持普通游戏对象(如游戏者、NPC、物品、武器和触发器)的面向对象的游戏框架。 丰富的多级别AI系统,支持寻路、复杂关卡游历、单独决策和组队AI。① 对如触发器、门和升降机等普通游戏对象敏感的寻路框架,允许复杂的游历设定,使得NPC可以按下开关,打开门,并绕过障碍物。② 游历框架带有短期战术战斗、掩护和撤退的路线网。③ 基于小队的AI框架,适合第一人称射击、第三人称射击和战术战斗游戏。AI路径在UnrealEd中可见,并可由关卡编辑者编辑,允许自定义和提示。可见的AI脚本工具,使设计者可以创建复杂的交互性游戏设定,如游戏者目标、通用的游戏事件触发器和交互式过场动画。UnrealMatinee是一个基于时间线的可视化序列、动画和曲线路径工具。设计者可以使用此工具建立游戏中的过场动画,可以是交互的或非交互的,通过动画序列化、移动包括摄像机在内的对象,控制声音和视觉特效,并触发游戏和AI事件。6. 角色对于每个主要角色和静态网格资源,建立两个版本的网格模型: 一个可选的带有唯一UV坐标的网格模型;另一个只带有几何信息的细节网格模型。通过虚幻引擎3来处理这两个模型,基于细节模型的所有几何信息来为可渲染模型生成一个高分辨率的法线贴图。可渲染模型: 在建立可渲染模型时使用3000~12000个三角形,在场景中同时可见的角色有5~20个。细节网格: 使用100万~800万三角形来为标准的角色建立细节网格模型。这对于为每个角色建立一到两个20482048大小的法线贴图已经足够了。骨骼: 每个标准角色都有100~200块骨头,包括有关节的脸部、手部和手指。7. 法线贴图和材质贴图在建立大部分角色和场景的普通贴图和法线贴图时都使用20482048分辨率的贴图。感觉这是一个对于2006年左右运行于中档PC上的游戏来说十分合理的目标。下一代游戏主机可能需要将贴图大小减少2倍,而低端PC则需要减少4倍,取决于贴图数量和场景复杂度。作为游戏中的灵魂,游戏引擎的成功与否将决定一系列游戏的最终效果。虚幻引擎3的确是一个非常先进的引擎,它提供的功能非常先进,几乎融合了目前顶级显卡提供的所有功能,在这样的技术背景下,这款引擎带来了非常绚丽的效果,其演示画面已足以震撼游戏爱好者。5.3.2CryEngineCryEngine是和Unreal一样的另一款商业引擎支柱性产品。其最主要的特点表现在以下几个方面:1. 实时动态光照(Realtime Dynamic Illumination)不进行预先的演算,也不限制场景的复杂性,能够实现二次光照与反射等特效。在图中能够看到空中漂浮的光点照亮了周围,而被光源照射到的物体上的反射,就是段落开头所说的特效。不进行预先的演算,不被几何条件所左右是该引擎的最大特点,在实际效果中,还能看到类似于后述的SSAO改进型的特效。2. 延迟光照(Deferred Lighting)CE3中采用了和KILLZONE2一样的延迟渲染Deferred Shading技术,在延迟着色的场景渲染中,像素的渲染被放在最后进行,随后再通过多个缓冲区同时输出。最后进行的是光照渲染,这是一种将存在于该场景的光源通过类似于后处理的渲染来进行的处理。在该流程中,理所当然地要对光照进行计算,这时首先需要使用的是通过多个缓冲区输出的中间值。在延迟光照中,就算是遇到动态光源比较多,或者是场景内三维物件数量比较多的情况,也能够高效率地进行光照渲染。但是,因为半透明物件需要同普通的渲染管线的效果进行合成处理,所以在遇到场景内半透明的物件比较多的场合,可能会遭遇性能损失,使得延迟渲染的效果无法得到很好的发挥。3. 动态软阴影(Dynamic Soft Shadows)动态阴影的生成可以说是CE引擎的一个特色,CE3中使用了深度阴影算法实现阴影生成。而阴影边缘则使用模糊滤镜,从而实现了平滑的软阴影效果。主要表现在:① 即时动态柔和阴影的生成。② 可以表现出真实的空气远近状态。③ 通过HDR能够表现出更加自然的效果。④ 容积云与视距雾化。CE3支持适用于以场景距离为基础的模拟光散射的远程雾(Distance Fog)表现。具体来说,画面内由近到远的那些空旷部分因为有着比较多的光散射,所以雾的颜色也会比较强,而距离试点比较近的场所,因为遮挡物的存在,所以光散射比较稀少,雾的颜色也显得比较淡。另外,引擎也能够表现出那些具有立体形状的容积雾(Volume Fog)的效果。这也是一种经常用到的效果。从雾的立体形状的前后之间的差来求出该雾领域的厚度,随后再将视线如何穿透该厚度的方法用像素单位表现出来,求得雾的色彩。在这一容积雾中,能够自由地在场景中配置那些由立方体、球状之类形状组合成的任意形状的雾团是该效果的特征。另外,CE3 还支持 Cloud Sprite 的云层表现及烟雾表现。4. 法线贴图与视差遮蔽贴图能够表现出那些用多边形无法实现的极其细微的凹凸效果的就是法线贴图技术。法线贴图是微小的凹凸法线数据纹理化之后的产物,在进行渲染的时候,以该数据为基础表现出细微凹凸阴影的效果。从地面的几何参数来看其实是平坦的地面,但是通过视差遮蔽贴图,则可以表现出真实的砂石凹凸感。将此技术继续进化,就是视差遮蔽贴图了。视差遮蔽贴图在渲染的时候不仅仅只参照细微凹凸的法线数据,而是连凹凸的高度数据都考虑进去的一种技术手段。而将凹凸高度的数据纹理化后的产物称为高度贴图,基本上视差遮蔽贴图都是和法线贴图1∶1对应使用的。性能样例如图5.1至图5.4所示。图5.1CE3中内置了植物生成引擎,可以正确地处理与植物间的互动图5.2通过HDR能够表现出更加自然的效果图5.3非常真实的CE3水面效果图5.4游戏里即时地表现出真实的脸部画面
|
|