第1章 虚幻引擎技术简介 1
1.1 《虚幻》系列游戏的历史 1
1.1.1 1998年6月:《虚幻》 1
1.1.2 1999年11月:《虚幻竞技场》 2
1.1.3 2001年3月~7月:虚幻开发人员网络 3
1.1.4 2002年9月:《虚幻锦标赛》和《虚幻竞技场2003》 4
1.1.5 2003年2月:《虚幻Ⅱ》 5
1.1.6 2004年3月:《虚幻竞技场2004》 6
1.1.7 2005年4月: 《虚幻锦标赛2:The Liandri Conflict》 7
1.1.8 2006年11月:《战争机器》 8
1.1.9 2007年11月:《虚幻竞技场3》 9
1.2 虚幻引擎综述 10
1.3 虚幻引擎的构成 10
1.3.1 图形引擎 10
1.3.2 声音引擎 11
1.3.3 物理引擎 11
1.3.4 输入管理器 12
1.3.5 网络基础结构 12
1.3.6 UnrealScript Interpreter 13
1.4 组件交互综述 13
1.5 工作中的引擎组件 14
1.6 使用虚幻引擎创建自己的游戏世界 15
1.6.1 游戏资源 15
1.6.2 动画与骨架网格物体 18
1.6.3 游戏资源相关工具 19
第2章 游戏开发概述 25
2.1 循环开发的重要性 25
2.2 从创意着手 26
2.3 剧情简介 27
2.4 考量开发日程表 32
2.5 交流 33
2.5.1 定期举行会议 33
2.5.2 各抒己见 33
2.5.3 尊重您的同事 33
2.5.4 协调美工人员与编程人员 34
2.5.5 正视挑战 34
2.5.6 保持创造性 34
2.6 测试与反馈 35
2.7 结束开发 35
第3章 开始行动:手把手创建关卡初级教程 37
3.1 开始创建您的第一个关卡 37
3.2 小结 95
第4章 画刷的世界:深入了解世界几何体 97
4.1 关键术语及概念:BSP和CSG 97
4.2 画刷类型 97
4.2.1 红色构建画刷 98
4.2.2 添加型画刷 98
4.2.3 挖空型画刷 99
4.3 构建简述 100
4.4 清除BSP材质 100
4.5 使用画刷 103
4.5.1 添加型关卡和挖空型关卡 103
4.5.2 万能的拖拽网格 103
4.5.3 随着支点移动 103
4.5.4 画刷的顺序 103
4.5.5 选择恰当的比例 104
4.6 图元 105
4.6.1 立方体(Cube) 105
4.6.2 圆锥体(Cone) 106
4.6.3 圆柱体(Cylinder) 107
4.6.4 薄片(Sheet) 107
4.6.5 四面体或球体(Tetrahedron或Sphere) 108
4.6.6 曲线形楼梯(Curved Staircase) 108
4.6.7 直线形楼梯(Linear Staircase) 109
4.6.8 螺旋形楼梯(Spiral Staircase) 109
4.6.9 测定体积(Volumetric) 110
4.7 布尔运算 110
4.7.1 交集工具(Intersect Tool) 110
4.7.2 反交集工具(De-Intersect Tool) 111
4.8 画刷固体性 111
4.8.1 固体(Solid) 112
4.8.2 半固体(Semi-Solid) 112
4.8.3 非固体(Non-Solid) 112
4.9 画刷操作 112
4.10 几何体模式(Geometry Mode) 113
4.10.1 选择模式 113
4.10.2 Toggle Modifier Window(切换修改器窗口)按钮 116
4.11 使用阴影 135
4.12 小结 138
第5章 静态网格物体 139
5.1 静态网格物体的重要性 139
5.2 静态网格物体工作流概述 140
5.3 UV纹理贴图坐标 153
5.4 创建UV展平贴图时需要考虑的因素 158
5.5 创建纹理贴图 160
5.6 导入静态网格物体 162
5.7 使用Static Mesh(静态网格物体)编辑器 164
5.8 碰撞 166
5.9 放置静态网格物体 175
5.10 静态网格物体与阴影 178
5.11 小结 181
第6章 材质简介 183
6.1 材质的定义 183
6.2 材质与纹理贴图的对比 184
6.3 纹理贴图坐标(UV) 184
6.4 材质指令 186
6.5 虚幻引擎中颜色的概念 186
6.6 光照概述 187
6.7 材质剖析 187
6.7.1 材质节点 187
6.7.2 材质通道 191
6.7.3 材质表达式 196
6.8 可用的材质表达式 200
6.8.1 材质表达式列表 200
6.8.2 参数表达式 217
6.9 材质创建 219
6.10 表面属性 227
6.11 小结 292
第7章 光照简介 293
7.1 放置光源 293
7.2 创建光源概述 294
7.3 光照概念 309
7.3.1 光源贴图与阴影贴图 309
7.3.2 静态和动态光照 310
7.3.3 顶点光照和光照细分 311
7.4 光源类型 311
7.4.1 可切换光源 311
7.4.2 可移动光源 311
7.4.3 PointLight 312
7.4.4 SpotLight 313
7.4.5 DirectionalLight 314
7.4.6 SkyLight 315
7.4.7 拾取点光源 315
7.5 光源的基本属性 318
7.5.1 常规属性 318
7.5.2 SpotLight独有的属性 319
7.5.3 DirectionalLight独有的属性 319
7.5.4 SkyLight独有的属性 319
7.6 光照通道 320
7.7 光照体积 323
7.8 阴影 323
7.8.1 预计算阴影(阴影贴图) 324
7.8.2 阴影缓冲阴影 324
7.8.3 阴影体积阴影 325
7.8.4 阴影调制 326
7.9 光源环境 332
7.10 光源函数 336
7.11 工作流小技巧 340
7.12 小结 341
第8章 地形系统 343
8.1 地形的定义 343
8.2 进入地形编辑 344
8.3 地形剖析与属性 351
8.3.1 地形剖析(术语解释) 351
8.3.2 地形属性 352
8.4 TerrainMaterial与层 356
8.4.1 TerrainMaterial的属性 356
8.4.2 地形层 356
8.5 地形编辑对话框 369
8.5.1 地形编辑对话框界面概述 369
8.5.2 地形编辑工具 377
8.6 装饰您的地形:植被和装饰层 395
8.6.1 植被 395
8.6.2 装饰层 398
8.7 地形工作流小技巧 402
8.8 小结 403
第9章 Kismet简介 405
9.1 Kismet:庞大的模块网络 405
9.2 Kismet入门 406
9.3 序列对象剖析 412
9.4 序列对象的类型 414
9.4.1 事件 414
9.4.2 动作 415
9.4.3 变量 416
9.4.4 条件 416
9.4.5 Matinee 417
9.5 Kismet序列流 417
9.6 简单Kismet序列 429
9.7 注释Kismet序列 437
9.8 稍微复杂的Kismet序列 437
9.9 小结 500
第10章 Unreal Matinee简介 501
10.1 Matinee的定义 501
10.2 Matinee术语解释 502
10.3 访问Matinee 517
10.4 Matinee序列对象 518
10.4.1 输入端 518
10.4.2 输出端 519
10.4.3 变量链接 519
10.4.4 属性 519
10.4.5 Matinee数据对象 520
10.5 InterpActor 521
10.6 Mover Kismet事件 521
10.7 Matinee编辑器 522
10.7.1 工具栏 523
10.7.2 曲线编辑器 524
10.7.3 Group/Track列表 524
10.7.4 时间轴 525
10.7.5 属性窗口 526
10.8 轨迹类型 526
10.8.1 Anim Control 526
10.8.2 Color Property 526
10.8.3 Event 526
10.8.4 FaceFX 526
10.8.5 Float Material Param 527
10.8.6 Float Particle Param 527
10.8.7 Float Property 527
10.8.8 Morph Weight 527
10.8.9 Movement 527
10.8.10 SkelControl Scale 528
10.8.11 Sound 528
10.8.12 Effects Toogle 528
10.8.13 Vector Material Param 528
10.8.14 Vector Property 529
10.8.15 Director组特有的轨迹 529
10.9 使用Matinee时需要考虑的事项 529
10.10 小结 570
第11章 关卡优化 571
11.1 总体优化 571
11.2 理解系统开销 571
11.3 游戏内的性能诊断 572
11.4 遮挡 580
11.5 CullDistance和CullDistanceVolumes属性 581
11.6 细节层次 582
11.7 优化光源和阴影 582
11.7.1 光照贴图 582
11.7.2 光源环境 583
11.7.3 光源函数 583
11.7.4 将光源投射到无光照材质上 583
11.8 Primitive Stats浏览器 584
11.9 动态阴影和Dynamic Shadow Stats浏览器 585
11.10 材质优化 587
11.10.1 每个对象多个材质 587
11.10.2 材质指令 588
11.10.3 无光照半透明性 588
11.11 小结 590
第12章 关卡动态载入 591
12.1 关卡动态载入的优势 591
12.2 测试关卡动态载入 592
12.3 关卡动态载入的方法 592
12.4 永久性关卡与动态载入关卡的对比 593
12.5 Level浏览器和Scene Manager浏览器 593
12.6 地图变更 595
12.7 通过Kismet进行关卡动态载入 613
12.8 通过LevelStreamingVolume进行关卡动态载入 614
12.9 通过距离进行关卡动态载入 622
12.10 疑难解答 630
12.11 关卡动态载入需要考虑的事项 630
12.12 小结 631
附录A UnrealEd用户指南 633
附录B 曲线编辑器 677