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