zhouqijie

概述 工具和资产管道

Cheng:游戏引擎在制作游戏过程中的工作流程,即引擎工作流。不同的引擎有不同的工作流程。

Cre:游戏引擎一般都会支持导入外部资源或者引擎内制作。



一、数字内容创作工具

游戏引擎需要的网格模型、纹理、音频、动画等源数据都由美术人员使用数字内容创作工具(DCC)软件制作。常见的DCC软件有3ds max、maya、blender、photoshop、soundforge等。DCC必须易用、可靠。



二、资产调节管道

DCC软件的数据格式,一般不能直接被游戏引擎使用。原因有以下:

  1. DCC数据格式的一般是工程文件,包含一系列用不到的数据比如编辑历史等,很复杂很庞大。
  2. DCC数据格式读取慢,并且有些不公开。

所以DCC的数据通常要导出为易读的通用格式或者自定义格式。导入引擎时引擎还要根据需求做一些适配处理。

从DCC到游戏引擎的管道一般称为资产调节管道(asset conditioning pipeline)。



三、常用的数据类型

笔刷几何图形:

由凸包集合定义,每个凸包由多个平面定义。即可用作碰撞体积又可用作渲染几何图形。

网格:

网格是复杂的图形,由顶点和三角形组成。每个网格使用一个或者多个材质。

网格也可以使用四边形和高次细分曲面。但是现有的硬件基本都是为渲染光栅化三角形设计的,渲染前需要转化为三角形。

骨骼网格:

骨骼网格是特殊的网格。骨骼网格每个顶点包含一组关节索引,表明绑定到哪些关节。每个顶点还包含一组关节权重,决定每个关节对顶点的影响程度。

网格和骨骼可以导出为一个文件。对于共用骨骼的多个网格,可以把骨骼单独导出为单独文件。

骨骼动画:

未优化的骨骼动画一般是30帧的,对于每个关节采样记录成一串4x3矩阵。

骨骼动画是内存密集的,需要进行压缩。

动画一般是分别导出,有些文件类型可以包括骨骼和网格以及动画。

音频

音频有不同的采样率和格式,分为单声道(mono)和立体声(stereo)。

游戏引擎一般使用.wav格式。

粒子系统

一些软件例如Houdini可以制作电影级的粒子效果,但是大部分引擎不能渲染houdini的所有效果。所以多数引擎都有自制的粒子效果编辑器。



四、游戏世界(场景)和世界编辑器

不少商用的游戏引擎提供优良的世界编辑器。

不同版本的Radiant游戏编辑器,应用在基于Quake的引擎上。
半条命2的Source提供名为Hammer的编辑器。
虚幻引擎提供名为UnrealEd的世界编辑器。



五、引擎工具的构建

一些工具是独立的软件,与引擎本身无关。(可能会和引擎共用一些第三方SDK)
一些工具嵌入了引擎本身,比如一些游戏的控制台。

游戏内编辑器:

虚幻引擎的世界编辑器UnrealEd是个特例,UnrealEd建构在游戏引擎内。要执行编辑器就要先执行游戏并在命令行输入editor

  1. 这种架构使得工具可以存取引擎的所有数据结构,避免了运行时引擎和编辑器工具使用两种数据结构表示方式。
  2. 在编辑器中执行游戏很快速,因为游戏实际已经在运行中。
  3. 这使得原本困难的游戏内现场编辑功能变得容易开发。
  4. 游戏内编辑器的设计缺点是耦合度高。引擎如果容易崩溃的话工具也一样变得不稳定。