入门指南: 关卡编辑
概述
关卡编辑是设计及构建游戏发生所处环境的过程。这个过程可以囊括了广泛的规则,并涉及了整个团队的人。关卡设计人员一般是负责关卡创建过程的人,尽管也可能有脚本书写人员、光照搭建人员等,他们在设计阶段的不同时间点处来设计关卡。
从最基本的层次来说,创建关卡可以归结为在虚幻编辑器中向地图中放置对象。这些对象可能是世界几何体、以BSP画刷形式出现的装饰物、静态网格物体、光源、玩家起点、武器或载具。什么时候添加哪些对象通常是在关卡设计团队使用的特定的工作流程规定的。
关于在虚幻引擎3中创建关卡的详细工作流程,请访问 创建关卡页面。
关卡设计工作流程
定义创建关卡的可靠的工作流程并遵守它将会使得开发时间保持到最小,并且会使得迭代更加容易。
开发关卡的标准的工作流程是这样的:
- 设计出关卡草图及关卡路径。
- 运行关卡测试流程和游戏性。
- 修改布局并重新测试
- 第一遍布局网格物体
- 第一遍布局光照
- 运行关卡测试碰撞及性能问题。
- 润色。
关于关卡创建工作流程的详细信息,请参照设计流程页面。
虚幻编辑器概述
Unreal Editor (UnrealEd)是虚幻引擎3的编辑套件。
它包含了主要的关卡编辑器及各种浏览器、工具及用于关卡编辑和内容创建过程中的不同方面所使用的编辑器。关卡编辑器位于应用程序主窗口中,是通过视口在世界中放置对象来创建地图的地方。
关于UnrealEd界面的更多信息,包括所有的浏览器、工具及编辑器的信息,请参照 UnrealEd用户指南页面。
世界几何体
关卡中的主要建筑物及装饰物都可以当做 世界几何体 ,是指关卡中静态的可见的几何体。世界几何体组成了大部分关卡的主要部分,因为它是环境中的主要的可见组件。
有两种类型用于创建世界几何体的Actor: BSP画刷和静态网格物体。
BSP
BSP画刷或者更加精确地说是构造实体几何体(CSG),是虚幻引擎3中最基本的构建块。它们用于在世界中雕刻出或填充大量的空间。这些是在之前的引擎版本中创建世界几何体的主要方法,但是现在已经被专门的高效的几何体类型即静态网格物体所取代。BSP画刷主要用于在初期阶段勾勒出关卡,因为可以在编辑器中快速并容易地创建它们,并且可以直接地编辑它们,从而很容易进行迭代。
关于创建及使用BSP画刷的更多信息,请参照使用BSP画刷页面。
静态网格物体
静态网格物体是通过您的显卡硬件描画的一组多边形。它们的处理速度更快,可以处理很多的多边形,并且不会出现BSP漏洞,看上去比BSP画刷更好。之所以叫静态网格物体是因为它们是作为永远不会改变的网格物体进行描画的,所以它们可以缓存到视频内存中,这样会产生更好的效率和性能。
光照和阴影
在虚幻引擎3中,有两种基本类型的光照: 静态光照和动态光照。静态光照会被烘焙到光照贴图中,使它具有非常高效的性能,但是光照贴图却占用了内存,并且光照质量越高,光照贴图越大。动态光照实时地进行计算,使得它对性能的影响更大,但是因为它不需要预先烘焙的光照贴图,所以它占用的内存量较小。根据您的项目需求的不同,您所选择的光照类型也会有所不同。
Light(光源)actor放置在世界中,可以照亮环境和角色。虚幻引擎3提供了几种不同类型的光源: 点光源、聚光源、定向光源、天空光源。每种类型的光源既有共同的属性集合也有它们各自特有的属性,从而可以进行非常灵活的光照设置。
虚幻引擎3也支持几种不同类型的阴影。它们是:
- Shadow Volumes(阴影体积) - 最通用的解决方案,它们具有轮廓分明的锐化边缘,但它们是完全动态的并且100%精确。在游戏机平台上默认情况下阴影体积是禁用的,因为它们使用了大量的内存,并且渲染速度非常慢。
- Shadow Buffers(阴影缓冲) - 它也是动态的,但是具有漂亮的柔和边缘,用于给角色和动态的几何体添加阴影。
- Precomputed Shadows(预计算阴影) - 它是照亮静态几何体的静态光源,它们既可以影响BSP和静态网格物体又可以保存出来做阴影贴图。
在同一个场景中,可以无缝地结合使用这些阴影方法。通过把这些阴影方法和不同的光照类型结合到一起,这使得虚幻引擎3的光照和阴影非常灵活。
关于光照及光源类型的更多信息,请参照 光照参考指南和阴影参考指南?。
Lightmass
Lightmass是虚幻引擎3中内置的静态全局光照系统。它使用类似于区域阴影和漫反射交互的复杂光照交互创建光照贴图,这使得可以产生类似于光照可以收到周围表面的颜色影响的功能。它也启用了区域光源创建功能,它使用应用到静态网格物体上的材质的自发光组件来真正地发光。
关于Lightmass和虚幻引擎3中的全局光照的更多信息,请参照Lightmass页面。
Dominant Lights(主光源)
主光源提供了一种使用较高质量的光照和阴影照亮室外环境却仍然可以维持较高的性能水平的方法。
关于主光源的更多信息,请参照主光源页面。
动态光照环境
虚幻引擎3也提供了类似于DynamicLightEnvironments(动态光照环境)的功能,它通过把影响动态对象的光照组合到一个特殊的球形谐波光源和定向光源中使得静态光源可以照亮动态对象。这降低了动态地照亮动态对象的性能消耗。
关于DynamicLightEnvironments(动态光照环境)的更多信息,请参照光照环境页面。
Kismet概述
Kismet是可视化的脚本系统,用于在虚幻引擎3中创建复杂的脚本化的关卡事件和交互。它允许您把简单的函数序列对象连接到一起组成复杂的序列来进行工作。每个序列对象是一个自包含的黑框,执行一个功能。序列对象的类型有:
- Actions(动作) - 这些是在您的关卡中的Actor上执行一些动作的对象。
- Conditions(条件) - 它们实际上不影响关卡,但是可以控制您的序列的流程。它们根据某些条件决定触发哪个输出端。
- Events(事件) - 这些对象可能从游戏中的Actor上创建一个到您的序列的‘输入’, 常见的示例是在关卡加载开始时触发的Level Loaded(关卡加载完成)事件。
- Variables(变量) - 这些对象存放了Event、Action或Condition所使用的特定类型信息。
关于Kismet编辑器的概述,请参照 Kismet用户指南页面。
关于Kismet中可以使用的所有动作、事件、条件及变量的完整的参考指南,请参照Kismet参考指南页面。
在Kismet示例页面可以找到一些常见有用的技术和序列的示例。
Matinee概述
Matinee是个通过随着时间变化修改对象的属性值来在关卡中的对象上执行动画的工具。它使用了关键帧和动画曲线,从而可以更好地控制值如何随着时间变化。每个Matinee序列可以包含任何数量的和关卡中特定Actor或Actor组相关的组。每个组可以包含应用到各种类型属性上的任意多的轨迹。它和在视频编辑中常用的非线性编辑应用程序类似。
Matinee的常见应用是创建运动的Actor,比如电梯或门。有一种特殊类型的Actor,称为InterpActor,用于这些类型的元素。InterpActor和正常的StaticMeshActor非常类似,但是可以使用matinee移动它们并使它们产生动画。
关于使用Matinee工具的概述,请参照 Matinee用户指南页面。
过场动画序列
Matinee也可以用于创建过场动画序列,该过场动画序列可以在游戏中实时地播放,或者可以渲染出来作为游戏视频或用于宣传目的。
关于使用Matinee工具创建过场动画的详细信息,请参照创建过场动画页面。
关卡动态载入概述
关卡动态载入是虚幻引擎3中的一个特殊系统,这使得可以在游戏运行中异步地加载及卸载关卡。这样便可以把非常大的环境细分为较小的部分(动态载入关卡),仅当需要时才把这些动态载入关卡加载到父项地图中,这可以防止占用内存,并防止在碰撞检测及光照计算中把这些动态载入关卡包括在内。
关于如何使用关卡动态载入的信息,请参照关卡动态载入页面。
关卡优化
对于每个关卡设计人员来说,优化关卡都是个非常重要的技术,以便可以获得最佳的性能。如果关卡以10fps的帧频率运行,那么即使是具有令人惊叹的游戏可玩性的最漂亮的关卡玩家也是无法享受。分析及优化过程需要查找问题区域并避免已知的容易导致性能下降的问题。
关于当优化关卡时要查看的事情的通用指南及技巧可以在关卡分析及优化部分找到。
请参照针对渲染优化关卡和针对分隔屏幕优化内容页面来获得关于渲染相关的优化指南。
Important!
You are viewing documentation for the Unreal Development Kit (UDK).
If you are looking for the Unreal Engine 4 documentation, please visit the Unreal Engine 4 Documentation site.