体积 是指您的关卡中的三维区域,每个体积都有其特定的用途。 其中一些用途包括:
-
给玩家施加伤害
-
改变物理定律,在体积空间内可能会允许玩家悬浮,或者让玩家失重。
-
作为碰撞表面,阻止玩家进入该体积。
-
改变计算关卡光照或可见性的方式。
有很多种体积类型,它们可以执行各种任务。 本文将展示如何为您的关卡创建体积,并讨论虚幻引擎4中每种可用的体积类型。
在关卡设计中合理地使用体积
对于管卡设计新手来说,需要注意的非常重要的一点是要在关卡中合理地使用体积。 这主要归结为两点:
-
体积在游戏中是不可见的;玩家不能看到它们!
-
由于第一点的原因, **您将很少能单独地使用一个体积获得任何效果。
因为体积是不可见的,所以玩家一般不知道他们已经进入了一个体积,除非您作为关卡设计师,辅助他们让他们知道。 一般应该把体积当成一个更大特效效果的组件,通过其他的关卡元素作为可视化的线索来让人理解并完成该特效。
以 Pain Causing Volume(伤害施加体积) (它会对处于体积内的任何事物施加伤害)为例。 如果一个人位于关卡中央,像这样...
![]() | ![]() |
---|---|
体积放置 | 玩家将看到的内容 |
此时,玩家将不能理解为什么他们进入到那个区域会突然受到伤害。 但是,如果在该体积的中间有一个火焰粒子特效他们就知道了...
![]() | ![]() |
---|---|
体积放置 | 玩家将看到的内容 |
然后,玩家就理解为什么他站在那里会受到伤害了!
创建体积
通过从 模式 菜单的 体积 选卡中选择一个体积,并将它拖拽到关卡视口中,就可以创建一个体积。
一旦将体积放置到关卡中后,您就可以根据您的需要重新调整该体积的大小和位置。
体积类型
阻挡体积
Blocking Volume(阻挡体积) 用作为碰撞模型,对象将不能通过该模型。 您可以通过调整体积(下图所示)上的碰撞通道,来控制允许哪种类型的对象通过该体积,如果有可以通过该体积的对象,那么当这些对象通过该体积时还应该生成重叠事件。 请参照碰撞相关文档 获得更多细节。
阻挡体积可用于替换静态网格物体上的碰撞表面,尤其是建筑物中墙壁的表面。 当这样应用时,阻挡体积一般比网格物体碰撞表面有几点优势。 第一点是阻挡体积比较为复杂的碰撞模型更容易计算。 第二点是因为体积自身知道哪些对象在体积内部,所当和高速物理对象碰撞时阻挡体积可能更有用。
相机阻挡体积
Camera Blocking Volumes(相机阻挡体积) 实质上和阻挡体积类似,因为它们用于定义一个相机不能穿过的区域。 该应用的一个示例就是:在第三人称视角中,当您想把您的玩家相机限定在您的游戏空间内,不允许玩家在世界之外旋转相机的情形。
和阻挡体积一样,您可以通过调整Camera Blocking Volume(相机阻挡体积)的碰撞通道来调整它们的属性。
触发器体积
Trigger Volume(触发器体积) 是一种产生事件的方式,当玩家或其他对象进入或退出该体积时会产生事件。 它们和 关卡蓝图 结合使用可以快速地测试事件、游戏情景或功能,不需要任何其他额外的 蓝图 。
比如: 您可以在你的关卡和 关卡蓝图 中放置一个TriggerVolume ,并为该体积创建一个重叠事件,该事件可以播放音效、启动过场动画或者开门。
导航网格物体边界体积
导航网格物体边界体积(Nav Mesh Bounds Volumes) 用作为控制在关卡中计算导航网格物体的位置的方式。 导航网格物体用于计算关卡区域中的导航路径。
在该体积中,会在玩家可以走到的具有适当角度上的所有表面上构建一个网格物体。 当您需要生成期望的导航网格物体时,您可以覆盖多个这样的体积。
要想使用导航网格物体边界体积,只需简单地围绕关卡的可导航区域创建一个(或多个)体积即可。 然后将会自动地构建导航网格物体。
请参照内容示例和导航网格物体文档 获得更多详情和示例。
物理体积
在 Physics Volumes(物理体积) 中,您可以操作影响玩家及其他物理对象的物理设置。 物理体积的常见应用是创建一个玩家可以游泳的有水的环境。 但是,您也可以仅是简单地使用一个体积创建一个具有较低重力或没有重力的区域,影响通过该区域的对象的末速度。
有一些针对该体积设置的属性,您可以从 详细信息 面板中调整这些属性,如下图所示:
属性 | 描述 |
---|---|
Terminal Velocity(末速度) | 决定了应用CharacterMovement 的Pawn下落时的末速度。 |
Priority(优先级) | 决定当PhysicsVolume重叠时哪个体积占主导地位 。 |
Fluid Friction(流体摩擦) | 决定了应用CharacterMovement 的Pawn在移动通过体积时,该体积所应用的摩擦力大小。 该值越大,就感觉越难穿过体积。 |
Water Volume(水体积) | 决定体积是否包含流体,比如水。 |
Physics on Contact(接触时的物理影响) | 决定了Actor接触体积时是否会受到该体积的影响(默认情况下,Actor必须在体积内部才会受到影响。) |
施加伤害的体积
Pain Causing Volumes(施加伤害的体积) 实际上是物理体积,但具有对玩家造成伤害的附加功能。 当您有一些玩家明显不能去的区域时,这个体积是非常有用的,比如熔岩穴,毒气团等。
除了可以从Physics Volume(物理体积)分配的属性外,Pain Causing Volume(施加伤害体积)还有它自己的一组特殊属性,如下所示。
属性 | 描述 |
---|---|
Pain Causing(施加伤害) | 体积当前是否施加伤害。 |
Damage Per Sec(每秒钟伤害量) | 当启用了Pain Causing属性时,体积对进入其内部的Actor每秒钟施加的伤害量。 |
Damage Type(伤害类型) | 这决定了给该Actor施加的伤害类型。 |
Pain Interval(伤害时间间隔) | 这是当启用Pain Causing时,应用伤害的时间间隔量,以秒为单位。 |
Entry Pain(进入时伤害) | 如果启用了 Pain Causing,该项决定除了基于Pain Interval所引用的伤害外,是否在进入体积时施加伤害。 |
Kill Z Volume(销毁Z体积)
Kill Z Volume(销毁Z体积) 或 "销毁画刷" 可以从从本质上销毁进入该体积的任何Actor (这包括玩家)。 这种类型体积的一个应用是:在悬崖边或很高的台子上处创建一个这样的体积,当玩家或Actor掉落到这些东西的上面时您想销毁它们。
关卡动态载入体积
Level Streaming Volumes(关卡动态载入体积) 用于辅助 关卡动态载入 处理。 它们提供了一种简单的封装关卡的方式,可以根据玩家进出该体积的时机,控制关卡载入及载出内存的时机。
现在,您可以在 详细信息 面板中调整关卡动态载入体积如何处理关卡动态载入。
属性 | 描述 |
---|---|
Streaming Levels (动态载入关卡) | 显示受到该体积影响的关卡。 |
Editor Pre Vis Only | 决定此动态载入体积是否仅用于编辑器动态载入关卡优先。 |
Disabled(禁用) | 如果该项为 true ,那么动态载入体积代码会忽略该动态载入体积。 也用于启用该体积,而不必将该体积从关卡中分离;或者用于在蓝图和体积动态载入之间切换关卡动态载入的控制。 |
Streaming Usage(动态载入应用) | 决定此体积的用途,例如,是否控制载入,是否控制载入及可视度,或仅仅是可视度(在载入时遮挡) |
更多关于关卡流送体积的内容,请查看 关卡流送体积域 。
剔除距离体积
Cull Distance Volumes(剔除距离体积) 是优化工具,允许根据对象距离相机的距离剔除(或者不在屏幕上描画)等于或小于某一特定尺寸的对象。 这可以通过不描画某个特定尺寸Size的对象来优化您的场景, 该尺寸是通过沿着其最长维度的编辑框计算而来。
剔除距离体积设置是通过 Cull Distances(剔除距离) 属性完成的,该属性位于下面显示的 详细信息 面板中。
在上面的图片中,这些属性定义了以下行为:
-
在该体积内的对象,如果它们的尺寸小于50个单位,那么当这些对象距离相机500个单位或者更远了时,将会剔除这些对象(或这些对象将会消失)。
-
在该体积内的对象,如果它们的尺寸小于120个单位,那么当这些对象距离相机1000个单位或者更远了时,将会剔除这些对象(或这些对象将会消失)。
-
在该体积内的对象,如果其尺寸小于300个单位, 那么将 永远不会剔除 该对象,因为在这种情况下0代表无穷远,该相机永远都不会达到那么远。
设置属性时,首先要向 Cull Distances(剔除距离)数组添加一个元素项,这可以通过点击 按钮完成。 接下来,简单地填入给定对象的大小,及您想剔除等于或小于那个尺寸的对象的理想距离。 这些属性不必按特定顺序进行创建。
音量
Audio Volumes(音量) 允许您在关卡中控制机应用各种音效,同时可用于创建隔间音效区,在该音效区中您可以控制在区域内和区域外能听到的内容。 通过应用音量,您可以通过淡入淡出和控制体积本身的环境区域设置来在不同音频间产生变换。
您可以从该体积的 详细信息 面板中调整它的几个属性,来更好地控制它的效果,如下所示:
属性 | 描述 |
---|---|
Priority(优先级) | 当体积重叠时,将使用优先级最高的体积。 如果两个或多个重叠体积具有相同的优先级,那么该顺序则是不确定的。 |
Apply Reverb(应用混响) | 决定是否应该使用混响设置。 |
Reverb Effect(混响效果) | 这是该体积要使用的混响资源。 |
Volume(体积) | 这是混响效果的整体体积级别。 |
Fade Time(渐变时间) | 这是从当前混响设置渐变到体积设置所需的时间(以秒为单位)。 |
Enabled(启用) | 决定当前是否启用了该体积,且是否可以影响音效 |
环境区域 定义了位于相关音量中的声音Actor如何根据玩家位置发生改变。 环境区域的设置也可以从 详细信息 面板中进行调整。
属性 | 描述 |
---|---|
Exterior Volume(外部音量) | 当玩家在 环境区域 内部时,外部声音的最终音量。 |
Exterior Time(外部淡入淡出时间) | 淡入淡出到一个新的外部音量所需的时间,以秒为单位。 |
Exterior LPF(外部LPF) | 当玩家在 环境区域 内部时,应用到外部声效的低通滤波器乘数(使用1.0来应用最大的 LPF) 。 |
Exterior LPFTime(外部 LPFTime) | 淡入淡出到新的低通滤波器级别所需的时间,以秒为单位 。 |
Interior Volume(内部音量) | 当玩家在 环境区域 外部时,内部声音的最终音量。 |
Interior Time(内部淡入淡出时间) | 淡入淡出到一个新的内部音量所需的时间,以秒为单位。 |
Interior LPF(内部LPF) | 当玩家在 环境区域 外部时,应用到外部声效的低通滤波器乘数(使用1.0来应用最大的 LPF) 。 |
Interior LPFTime(内部 LPFTime) | 淡入淡出到新的低通滤波器级别所需的时间,以秒为单位 。 |
后期处理体积
在 Post Process Volume(后期处理体积) 空间中,相机所应用的后期处理设置可以通过调整 详细信息 面板中的属性进行覆盖。
关于后期处理的更多信息,请参照后期处理文档 。
Lightmass重要体积
Lightmass Importance Volumes(Lightmass重要体积) 主要用于lightmass计算。 Lightmass是虚幻引擎4中应用的预计算光照的全局光照系统。为了最小化生成关卡中预计算光照的工作量,所以使用Lightmass重要体积来包围关卡几何体的区域,从而达到优化。 Lightmass将仅在那个区域内进行计算,跳过该范围之外的任何资源。
关于Lightmass和Lightmass重要体积的更多信息,请参照Lightmass文档 。
Lightmass角色间接细节体积
Lightmass Character Indirect Detail Volume(Lightmass角色间接细节体积) 和Lightmass重要体积类似,可以生成间接光照样本,不仅可以在地面上玩家所处高度上生成间接光照样本,在整个体积中也可以生成间接光照样本。 这种类型的体积的一个应用示例是电梯井,用来确保沿着井筒上下的间接光照是正确的。
预计算可见性体积
Precomputed Visibility Volumes(预计算可见性体积) 主要用于性能优化。 这些体积存储了Actor在世界上所处位置处的可见性。 该体积仅应放置在玩家可以访问的区域。
预计算可见性覆盖体积
如果预计算可见性体积的自动生成效果不能满足需要,您可以使用 Precomputed Visibility Override Volumes(预计算可见性覆盖体积) 手动地覆盖世界中那个地方处Actor的可见性。 它们也用于性能优化,应该仅放置在玩家可以访问的地方。