概述 工具和资产管道
Cheng:游戏引擎在制作游戏过程中的工作流程,即引擎工作流。不同的引擎有不同的工作流程。
Cre:游戏引擎一般都会支持导入外部资源或者引擎内制作。
一、数字内容创作工具
游戏引擎需要的网格模型、纹理、音频、动画等源数据都由美术人员使用数字内容创作工具(DCC)软件制作。常见的DCC软件有3ds max、maya、blender、photoshop、soundforge等。DCC必须易用、可靠。
二、资产调节管道
DCC软件的数据格式,一般不能直接被游戏引擎使用。原因有以下:
- DCC数据格式的一般是工程文件,包含一系列用不到的数据比如编辑历史等,很复杂很庞大。
- DCC数据格式读取慢,并且有些不公开。
所以DCC的数据通常要导出为易读的通用格式或者自定义格式。导入引擎时引擎还要根据需求做一些适配处理。
从DCC到游戏引擎的管道一般称为资产调节管道(asset conditioning pipeline)。
三、常用的数据类型
笔刷几何图形:
由凸包集合定义,每个凸包由多个平面定义。即可用作碰撞体积又可用作渲染几何图形。
网格:
网格是复杂的图形,由顶点和三角形组成。每个网格使用一个或者多个材质。
网格也可以使用四边形和高次细分曲面。但是现有的硬件基本都是为渲染光栅化三角形设计的,渲染前需要转化为三角形。
骨骼网格:
骨骼网格是特殊的网格。骨骼网格每个顶点包含一组关节索引,表明绑定到哪些关节。每个顶点还包含一组关节权重,决定每个关节对顶点的影响程度。
网格和骨骼可以导出为一个文件。对于共用骨骼的多个网格,可以把骨骼单独导出为单独文件。
骨骼动画:
未优化的骨骼动画一般是30帧的,对于每个关节采样记录成一串4x3矩阵。
骨骼动画是内存密集的,需要进行压缩。
动画一般是分别导出,有些文件类型可以包括骨骼和网格以及动画。
音频
音频有不同的采样率和格式,分为单声道(mono)和立体声(stereo)。
游戏引擎一般使用.wav格式。
粒子系统
一些软件例如Houdini可以制作电影级的粒子效果,但是大部分引擎不能渲染houdini的所有效果。所以多数引擎都有自制的粒子效果编辑器。
四、游戏世界(场景)和世界编辑器
不少商用的游戏引擎提供优良的世界编辑器。
不同版本的Radiant游戏编辑器,应用在基于Quake的引擎上。
半条命2的Source提供名为Hammer的编辑器。
虚幻引擎提供名为UnrealEd的世界编辑器。
五、引擎工具的构建
一些工具是独立的软件,与引擎本身无关。(可能会和引擎共用一些第三方SDK)
一些工具嵌入了引擎本身,比如一些游戏的控制台。
游戏内编辑器:
虚幻引擎的世界编辑器UnrealEd是个特例,UnrealEd建构在游戏引擎内。要执行编辑器就要先执行游戏并在命令行输入editor
。
- 这种架构使得工具可以存取引擎的所有数据结构,避免了运行时引擎和编辑器工具使用两种数据结构表示方式。
- 在编辑器中执行游戏很快速,因为游戏实际已经在运行中。
- 这使得原本困难的游戏内现场编辑功能变得容易开发。
- 游戏内编辑器的设计缺点是耦合度高。引擎如果容易崩溃的话工具也一样变得不稳定。