Wwise SDK 2024.1.1
|
有了那么多 新功能概述 2017.2 “新特性”,您在迁移到 Wwise 2017.2 时注意几件事。
在 SDK lib 文件中:
在 SDK bin 文件中:
在 SDK\include\AK\Plugin 中:
在 Authoring\x64\Release bin 中:
2017.2 中对输出(Main、BGM、Game Controller Speaker、Headphone、DVR 等)的管理进行了重大更改。现在所有音频 Sink(与音频硬件进行通信的组件)均使用插件模型,包括 Audiokinetic 通过 Wwise 提供的 Sink。因此,若工程至少使用一个支持的平台,则将为其添加各种类型的 Audio Devices ShareSet。现在每条 Master Bus(位于混音层级结构顶层的总线)都必须有一个与其关联的 Audio Device,以便定义将混音发送至哪个输出。之前,此功能在初始化期间(通过 AkInitSettings
)由代码实现或通过 AK::SoundEngine::AddSecondaryOutput
完成。在迁移至 2017.2 的过程中,将为现有工程的 Master Audio Bus 和 Master Secondary Bus 自动添加 System 设备。
注意: 请务必检查您的工程中是否使用了 Master Secondary Bus!若之前用过,则必须选择适合的 Audio Device。同时,还须拆分总线层级结构,以便为别的输出单独设置 Master Bus。现在可创建任意数量的 Master Bus,一般每个硬件输出对应一条 Master Bus。 |
注意: 若主输出使用了插件(如 PSVR 双耳插件),请确保将其链接至 Master Audio Bus 的 Audio Device 属性。若只有一个平台(如 PS4)支持此插件,请确保使用 Link/Unlink 功能来针对各个平台正确设置属性。 |
另外,还更改了与 Secondary Output 相关的 Listener 管理。总的来说,原有代码的行为会保持不变。不过,请注意,若每种设备类型下只能存在一个设备,则系统需要的 Listener 将会少一些。有关详细信息,请参阅“集成二路输出 ”。
AK::SoundEngine::AddSecondaryOutput
改成了 AK::SoundEngine::AddOutput,使用了不同的参数。与
RemoveSecondaryOutput
相同。请参阅函数相关文档。为了通过 AddOutput
实现相同的功能,必须在 Wwise 工程中找到或添加适合的 Audio Device 名称。AK::SoundEngine::Init
(AkInitSettings
) 和 AK::SoundEngine::AddSecondaryOutput
中使用的 enum 参数 AkAudioOutputType
。现在代之以 Audio Device 的插件机制实现这一功能。AK::SoundEngine::GetSpeakerConfiguration
、 AK::SoundEngine::GetPanningRule
、 AK::SoundEngine::SetPanningRule
、 AK::SoundEngine::GetSpeakerAngles
、 AK::SoundEngine::GetSpeakerAngles
、 AK::SoundEngine::SetSpeakerAngles
全部使用 AkOutputDeviceID
,而非像之前一样使用 AkAudioOutputType
。AkOutputDeviceID
将由 AK::SoundEngine::AddOutput
或新函数 AK::SoundEngine::GetOutputID
返回。重新设计了整个振动系统,现在使用通用的 Audio Device 插件机制和新的输出系统,而非像之前一样使用单独的代码路径。Motion 设备现在视为 Audio Device,而非像之前一样有着特殊身份。这样简化了 Motion 对象的代码和数据模型,便于使用音频管线的所有相同功能。因此,为了获得相同的 Motion 效果,需要对现有代码进行很多修改。不过 Wwise 工程的大部分更改都是以透明方式自动完成的。如需了解对工程所做的更改,请参阅下文的“ 基本工程迁移更改: ”部分。
移除了所有 AK::MotionEngine
名字空间。因此,为了替代 AK::MotionEngine::AddPlayerMotionDevice,现在必须使用适合的
Audio Device ShareSet 名称(通常为 Wwise_Motion)来调用 AK::SoundEngine::AddOutput。此 Audio Device 应已自动添加到工程中。
另外,还更改了与 Motion 相关的 Listener 管理。现在必须将与玩家关联的听者作为参数提供给 AK::SoundEngine::AddOutput,而非像之前一样调用
AK::MotionEngine::SetListenerPipeline。注意,在游戏中仅有一个玩家时,此听者可有可无。对于多人游戏,仍需恰当地管理听者。
有关如何在游戏中实现振动效果的详细信息,请参阅 SDK 帮助中的“集成 Wwise Motion ”;有关 Secondary Output 的概要信息,请参阅“集成二路输出 ”。
现有工程将自动迁移至新的系统。工程中的更改罗列如下:
备注: 若工程中未使用振动效果(Motion Bus 未分配任何引用),则将删除工程中的所有 Motion Bus。另外,即便对于支持振动效果的工程,也不会添加 Wwise Motion ShareSet。 |
因为现在使用基本的 User Aux Send 而非单独的 Motion Bus 路径,因此出现了以下情况:
备注: 对于下文小节:在复制 User Aux Send 的过程中,将复制总线引用、音量和 LPF。同时,还将复制音量或 LPF 所应用的 RTPC、Modulator LFO、Modulator Envelope 以及 Curve 或 Modifier。在加载迁移工程时,为了避免 ID 冲突,将重新生成 ID(唯一 ID 和 ShortID)。若仍存在冲突(大多为 ShortID 问题),则 Wwise 工程加载程序将解决冲突,并在 Project Load Log 中显示警告消息。 |
警告: 您可以将 User Aux Send 从父节点复制到子节点,也可以将子节点设为继承父节点的 User Aux Send。这两项操作的基本效果是一样的。但是,若对父节点的 User Aux Send 进行了更改,则子节点中将无法反映所述更改。 |
为了更清晰地反映预定用途,重命名了以下函数:
ak.wwise.core.plugin.getList
已重命名为 ak.wwise.core.object.getTypes
ak.wwise.core.plugin.getProperties
已重命名为 ak.wwise.core.object.getPropertyNames
ak.wwise.core.plugin.getProperty
已重命名为 ak.wwise.core.object.getPropertyInfo
之前所用名称已弃用,请不要用在新代码中。
Client
类的用途。客户端的方法调用将使用不同的超时参数,因此必须针对每个调用单独进行设置。取消了对 32 位 Wwise 设计工具的支持。现在 Windows 和 macOS 上都只支持 64 位 Wwise 设计工具。
请注意,Wwise SDK 库仍提供 32 位支持。
在改进内置 LPF/HPF 管线的过程中,我们解除了将声障/声笼强制设为 Game-defined 定位的条件限制。若不希望为采用 3D User-defined 定位的声音设置声障/声笼,则必须为这些声音使用不同的游戏对象。
在 Wwise 2017.2 中,Auxiliary Bus 将处理干声信号,而非像之前一样忽略。在迁移过程中,会将 Auxiliary Bus 上受影响的 Effect 的干声信号静音。受此更改影响的 Effect 包括:
注意: 若 Effect 同时应用于 Auxiliary Bus 和另一类型的媒介,则也会将其静音。并且,这可能会改变工程的行为。 |
为了 Spatial Audio 能够实现几何构造驱动的散布计算,用户必须删除 Auxiliary Bus(门户)所用 Attenuation ShareSet 的 Spread 曲线。
为发送至 Room 的 Aux Send 时不应再调用 AK::SpatialAudio::SetEmitterAuxSendValue
,因为现在这些是在 AkRoomParams
中指定并完全由 Spatial Audio 控制。AK::SpatialAudio::SetEmitterAuxSendValue
会将 Aux Send 添加至 Room 的 Aux Send,于是该 API 可用于在同一 Room 内自定义或实现更为复杂的混响区域。