历代《雷神》《毁灭战士》《使命召唤》游戏引擎的地图创建基础
本帖最后由 Remaster_ARX-4 于 2016-12-28 20:13 编辑历代《雷神》《使命召唤》游戏引擎的地图创建基础原文在我的QQ空间上,这里转发一下,然而依然比网上各种乱七八糟的机翻要好一些。
在《雷神》以下简称QUAKE,《使命召唤》以下简称CoD的引擎中,地图与关卡是同义的,即在这两类游戏引擎下,制作游戏地图就是制作游戏关卡的过程。
一个quake的关卡是由一些专门为此功能而设计发布的关卡编辑程序创建的。目前已有的几种编辑器程序都是通过创建.map后缀格式的文件来设计一个关卡(地图)。这些.map文件被quake专门的编译器处理后生成可以被quake引擎程序读取特定地图信息并载入所需要的信息到程序所在内存中的终端的.bsp文件。可以把.map后缀格式的文件认为 是设计者设计一个关卡(地图)的储存明文信息的“草图”蓝本,他所存储的信息的结构中以明文的数据块记录所设计的一个关卡(地图)创建固定三维几何体的所有信息,同时记录所有的光照源,怪物(生物,{友军,敌军,中立,无害等}),可捡取的物品应该在什么时候(固定时间点,触发时间点)在什么坐标位置产生。
在quake的.map文件中,主要以两类定义属性的对象:brush(刷子),entity(实体) 来定义设计以上的所有关卡(地图)内容。
我们构建一个关卡(地图)的基础构建体是一个刷子,在关卡其中存在的所有的固定的几何实体(这些几何实体包括有碰撞效果和没有碰撞效果,并可以定义不同作用的表面类型)都是由一个或者一系列经过编辑修改的不同形状的刷子组成的,这个刷子究竟是如何出现为何用于关卡地图构建?在quake的关卡创建这一项目里它被用一个几何学名词这样定义:凸多面体(参考阅读延伸:欧拉定理,BSP二进制空间分割树计算以及文件格式的特性),或者用一个不严谨的较易理解的定义:在任何一个面的一侧,看不到任何这个几何体的另一侧的任何部分,或者在一侧能看见这个几何体的所有部分符合这种条件的3D立体。通常创建编辑关卡地图时,你经常会使用立方体,长方体这类立体作为刷子去构建简单的世界固定物体的立体,但实际上根据这个项目设计时最根源的定义,只要是凸多面体,你都可以使用它作为“刷子”去构造更加丰富的世界物体立体图形。
如果你看不懂或者不能完全理解这些原定义原理,但依然不妨碍你去设计简单的quake关卡地图,因为以上复杂的数学定义是最初引擎开发者在后台就已经设计好的,同时他们设计了一些简单的面向图形初级开发者所使用的编辑器程序,你无须考虑这些数学定义,只需要使用他们设计的人性化的图形程序在三视图以及3D视图中放置变换各种刷子去创建诸如墙壁,地板,楼梯这些将来出现在游戏场景的固定世界实体就行。
因此,我们是通过刷子去定义设计关卡世界中的固定几何体,但是在世界的场景中如果只有固定几何体这些不会改变存在的特定状态的“死”的无法和玩家进行高级交互效果的部分,将无法完整构成一个真正可以进行高级游戏操作的Quake游戏关卡,所以我们还需要定义一些可以改变特定状态或者可以与玩家进行高级交互效果的区别于固定不变的前者的新的组成对象来实现固定刷子构成的固定几何体所不能实现的效果,于是定义entity(实体)这另一类组成对象。
这些对象都是有一些更为高级的属性,这些属性由游戏内核代码预写的基础函数定义了各类相对于刷子简单固定几何体要高级的功能。所以地图场景中,那些不变的静态内容或者构成相对简单的的地形部分大多数都是由刷子去完成添加与修改编辑,而动态的存在于地形之上的大多数具有效果,(比如天气动画,光照,伤害地形)可以反馈的(动态AI,物品,武器,工具)以及需要导入精细模型动画的内容都是由实体对象配合刷子的一些低级属性去共同完成。所以,实体又分为刷型实体(brush entity)和点型实体(point entity)。
刷型实体由刷子和实体共同完成他所起到的作用,即刷子的一些低级属性加上实体的高级作用,场景中经常出现的可以开关的门,活动的平台,以及触发体等。另一类点型实体不需要绑定刷子就可独立完成其作用,光源,AI生物,以及武器,物品等通过简单静态几何体
无法构成而需要导入使用外部设计好的精细模型的个体,他们在世界场景中就是在世界坐标上的一个点来定位。
这两种实体都有很多预写以及可扩展的用来添加实体上特定效果的属性,每一个属性在编辑器程序中被称为一个叫“键”(key)的组合值, 一个是作用的名称,另一个是作用的值。
http://steamsignature.com/profile/english/76561198078830145.png
[游戏资料] 历代《雷神》《毁灭战士》《使命召唤》游戏引擎的地图创建基础 [
页:
[1]