版本
在 Wwise 中定义对象的定位之前,您最好仔细阅读以下各节。这些章节提供了一系列的示例、技巧和最佳方案,可帮助您更好地管理游戏中对象的定位。
在详细描述 Wwise 中可用的不同定位选项后,现在让我们了解不同的选项可如何用来为我们的第一人称定位 —— 示例(第 1 部分)中的声音和振动效果定义定位。
Footsteps -- 脚步。这是一款第一人称游戏,因此主人公的脚步声应始终伴随着摄头。由于没有动作,也没有声音衰减,因此在这种情况下使用基本的 2D 定位比较合适。然而,对于其它的特工,您需要将声音附加到“agent”游戏对象上,使脚步声与他们的动作相匹配。 在这种情况下,使用 3D Game-defined 并使用空间化的定位较为合适;但是没有必要使用衰减。
照亮敌人丛林基地的火把的燃烧声 —— 这些声音附加到“torch”游戏对象上。虽然它们固定在一个地方,但发声体的位置及其到话筒的距离将随着玩家的移动而改变。 要模拟此类声音,可使用带空间化或同时带空间化和衰减的 3D Game-defined 定位。
一群恐怖分子在屋内交谈的声音 —— 这些声音附加到“terrorist”游戏对象上。这些对象可以在游戏环境内自由移动。 要模拟此类声音,可使用带空间化或同时带空间化和衰减的 3D Game-defined 定位。
蚊子在头顶上飞舞的嗡嗡声 —— 在此示例中,可以听到蚊子在周围飞舞所发出的嗡嗡声,但看不到蚊子。由于发声体必须在 3D 空间中移动,而实际的游戏对象根本不存在,因此在这种情况下使用 3D Game-defined 定位较为合适。同时使用空间化和衰减的一系列随机播放声音路径可以创建极其逼真的蚊虫声音。
从总部接收最新情报的声音 —— 从总部接收情报的通信不与任何特定游戏对象相关联,并且不在周围环境中移动,因此在这种情况下使用 2D 定位较为合适。由于最新情报对于完成任务非常关键,因此您还可能需要将某些或全部声音传送到中置扬声器。
执行任务的特工们之间的耳语声 —— 队友之间的耳语声附加到各自的游戏对象上,因此使用 3D Game-defined 定位对这些声音较为合适。特工们相互掩护依次行动,需要某种空间定位,但他们既然必须协同作战,因此他们之间的沟通不需要任何衰减。由于队友之间的沟通对于完成任务非常关键,因此您还可能需要将某些或全部声音连通到中置扬声器。
在成功完成任务后用于炸毁基地的炸药的爆炸声 —— 特工将听到和感受到炸药的爆炸声。这些声音和振动对象将被绑定在游戏中会爆炸的对象上。虽然它们固定在一个地方,但发声体/振动体的位置及其到听者的距离将随着玩家的移动而改变。要模拟这种效果,可以使用同时带空间定位和衰减的 3D Game-defined 定位。
岛上火山持续发出的轰鸣声 —— 火山发出的轰鸣声是该偏远岛屿上持续发出的声音和振动效果。声音和振动对象最好附加在“island”游戏对象上。添加一些衰减可在玩家靠近该岛时,让轰鸣声听起来更加响亮或密集。由于没有声音或振动移动,在这种情况下不必使用空间化。
互动音乐 —— 音乐不与任何特定游戏对象相关联,无需在环绕声环境中移动,因此 2D 定位较为合适。在我们的示例中,我们需要平移一些音乐轨,使音乐在前后扬声器中达到平衡。
请参考下表,了解在本例中可用于创造不同声音的定位选项的完整概述。
声音 |
2D |
3D |
|||||||
---|---|---|---|---|---|---|---|---|---|
不做声像摆位 |
声像摆位 |
Game-Defined |
User-Defined |
Spatialization |
Attenuation |
||||
特工的脚步 |
|
||||||||
火把 |
|
|
|
||||||
恐怖分子交谈 |
|
|
|
||||||
蚊子嗡嗡声 |
|
||||||||
总部发来的最新情报 |
|
||||||||
特工沟通 |
|
|
|||||||
爆炸 |
|
|
|
||||||
火山轰鸣 |
|
|
|||||||
互动音乐 |
|
此示例描述使用 Wwise 中可用的不同选项创建不同定位和传播类型的一种方式。您的最终选择应该取决于音效本身、游戏需求以及希望创造的特定效果。
不使用散布 Attenuation 曲线时应使用单声道声音 - 如果您不打算使用散布曲线来拓宽音频信号,则应使用单声道声音来优化性能。不使用散布时,立体声的所有输入声道将映射到同一位置,并且不得不进行动态渲染;而使用单声道时,将离线操作,游戏期间不会占用任何 CPU 资源。
复用或者减少 Attenuation Editor 中的曲线数量来提高性能 —— 记住,在 Attenuation Editor 中创建的曲线越多,占用的运算资源和内存就越多。要提高性能,既可以复用(辅助发送音量的) Output Bus Volume(输出总线音量)曲线,也可不使用任何曲线。
使用少量的点和线性曲线段来提高性能 —— 记住,沿曲线添加的点越多,曲线形状越复杂,占用的运算资源和内存就越多。在大多数情况下,对于带有两到三个点的曲线,使用线段就足以达到您所需要的衰减结果。
使用 ShareSets 共享衰减属性设置 —— 如果游戏中多个对象具有相似的衰减属性,则可使用 ShareSet 共享这些属性设置。通过共享衰减属性设置,在更改衰减属性时可以同时节省内存和时间。
使用定位类型 RTPC 可以为类似的用途复用声音。例如,可以使用相同的声音层级结构将玩家的脚步声设置为 2D,敌人的脚步声设置为 3D。在 Default Pool(默认内存池)中,这可以节省大量的内存。
让我们一起来了解某些特定情景,让您更好地理想 Wwise 中不同定位和衰减设置的工作原理。
备注 | |
---|---|
在默认情况下,2D 和 3D 声音不通过中置扬声器播放。. 要将信号的任何部分传送到中置扬声器中,使用 Center % 属性滑杆。 |
定位:3D
衰减:简单线性曲线
散布:简单线型曲线
空间化:开
声源:单声道
结果:这些设置可以有效地达到以下效果:
当听者距离声源较远时,声音来自特定位置(空间化),音量较低,主要在一个扬声器中播放(散布)。
当听者距离声源较近时,声音来自于特定位置(空间化),接近于最大音量(衰减),并几乎平均分布在两个扬声器之间(散布)。
定位:3D
衰减:简单线性曲线
散布:简单线型曲线
空间化:开
声源:立体声
结果:这些设置可以有效地达到以下效果:
听者距离声源较远时,声音来自特定位置(空间化),音量较低(衰减)。对于不带散布的、使用空间化的立体声源,两个声道合并形成一个单声道“点声源”。为此,我们建议在没有散布时使用单声道文件,因为这样做可以更加高效地利用 CPU。
使用散布时,新的“虚声源”是指偏离原始声源的声源。例如,对于小散布值,计算得到的虚声源将位于实际位置的左侧和右侧,它们的贡献将添加到扬声器中,与正常的无散布声音无异,唯一不同的是位置稍微不同。
随着散布值增加,用于覆盖听者周围大弧度的虚声源数量将更多。显然,为了保持恒定的总功率,这些声源的功率将低于实际声源。
备注 | |
---|---|
注意,这些声源仅用于音量计算;实际上并没有播放新的声音。 |
当听者距离声源较近时,声音来自于特定位置(空间化),接近于最大音量(衰减)。使用高散布值时,声音将来自于所有方向。立体声的左右声道将独立散布。
现在,需要特别注意距离 = 0 的情形。在 Wwise 中,所有空间化计算(和声锥衰减)都以角度为基础。当距离 = 0 时,Wwise 无法确定听者是朝前、朝左、朝右还是其它朝向。应避免在游戏中发生这种情景。如果在游戏中发生了这种情形,Wwise 则将创建立体声的单声道版本来避免计算越界音量。这一逻辑同样适用于声锥衰减。如果听者的朝向未知,Wwise 则将假定不存在任何衰减。这同样适用于声锥 LPF。