版本

menu_open
Wwise SDK 2022.1.18
重要的迁移说明2018.1

有了那么多 新功能概述 2018.1 “新特性”,您在迁移到 Wwise 2018.1 时注意几件事。

请仔细阅读以下重要迁移说明:

Event Action 属性 Fade Curve 已拆分为 Fade-in Curve 和 Fade-out Curve

根据 Action 类型对 Event Action 的 Fade Curve 属性进行了拆分:与激活相关的 Action(如 Play、Resume 和 Set LPF)现在有了 Fade-in Curve 属性,与停用相关的 Action(如 Stop、Pause 和 Reset LPF)现在有了 Fade-out Curve 属性。

Contents Editor

Contents Editor 已重新编写为树视图,方便展开对象节点并显示下级对象。现在可以像在 Multi Editor 中一样调整和自定义列标题尺寸,同时还为 Inclusion 设置了专用列。为了便于在单击列标题时对对象排序,将无法再在 Contents Editor 中重新排列对象。

Positioning 选项卡

彻底重新调整了 Property Editor 的 Positioning 选项卡。对于习惯使用原有控件的用户,请参阅以下概要说明。

Enable Positioning

Enable Positioning 复选框已重命名为 Listener Relative Routing。该复选框的功能与之前完全相同,但其名称可以更清晰地说明它不仅会进行定位,还会影响通路。事实上,它会强制引擎评估相应节点处发声体与听者的关联。发声体和听者是通过 SDK 指派的游戏对象;可在设置辅助发送时或利用 AK::SoundEngine::SetListeners 将听者指派给发声体,并在发送 Event 时设置发声体。在评估发声体与听者的关联时,信号将从当前游戏对象跳转至对应听者。您可以在 Voices Graph 中查看详情。只有评估了发声体与听者的关联,才能针对发声体和听者应用定位功能(距离衰减和空间化)。

在 2D 模式下关闭 Enable Panner

此项仍为默认设置。Speaker Panning 列表必须设为 Direct Assignment。Listener Relative Routing 选项不会对声像摆位产生影响。

在 2D 模式下打开 Enable Panner

Speaker Panning 列表必须设为 Balance - Fade。然后,可像之前一样通过单击同一对话框右侧的 Edit… 来编辑声像摆位。Listener Relative Routing 选项不会对声像摆位产生影响。

3D Game-Defined

启用 Listener Relative Routing,将 Position 列表设为 Emitter,并将 3D Spatialization 设为 PositionPosition + Orientation(原来的默认值)。确保将 Speaker Panning / 3D Spatialization Mix 设为 100。若要达到之前禁用 Update At Each Frame 选项时一样的效果,请启用 Hold Emitter Position and Orientation。此外,还可像之前一样设置衰减。

3D User-Defined

启用 Listener Relative Routing,将 Position 列表设为 Listener + Automation,并将 3D Spatialization 设为 PositionPosition + Orientation(原来的默认值)。确保将 Speaker Panning / 3D Spatialization Mix 设为 100。然后,可像之前一样通过单击同一对话框中的 Automation… 来编辑路径。若要达到之前禁用 Follow Listener Orientation 选项时一样的效果,请启用 Hold Listener Orientation。此外,还可像之前一样设置衰减。

将 Spatialization 设为 None

之前,在将定位设为 3D 并将 Spatialization 设为 None 时,定位结果与启用 2D 声像器时相同(控制点位于中间)。现在,在将 Spatialization 设为 None 时,将根据所需定位直接采用所选 Speaker Panning 选项(Direct Assignment 或 Balance - Fade)。此外,经过本次调整后将允许把衰减应用于 2D 声像摆位后的声音。

新增功能

Listener + Automation 模式相当于原来的 3D User-Defined 模式,因为两者都是相对于听者设置声音位置。现在还可将声音位置设在“发声体”游戏对象周围:将 Position 模式设为 Emitter + Automation。此时,将在“发声体”游戏对象周围应用路径衰减。其中,前部由游戏中游戏对象的朝向定义。同时,将自动化定位应用于距离衰减(若设置)和空间化(若设置)。

此外,还可使用 Speaker Panning / 3D Spatialization Mix 滑杆调配 Panning 和 Spatialization(之前称为 2D 和 3D)。其中,100 表示完全空间化。

备注: 在设为 100 以下的值时,必须同时计算两种类型的定位,因此消耗的运行时内存也稍微多一些。

Mixer 插件 API

移除了函数 IAkMixerInputContext::IsSpatializationEnabledIAkMixerInputContext::IsPannerEnabled。现在应使用以下函数,它们与上述设置更为匹配:

  • GetSpeakerPanningType
  • HasListenerRelativeRouting
  • Get3DSpatializationMode

GetNum3DPositions() 和其他 3D 相关函数仅在 HasListenerRelativeRouting() 返回 true 时适用。程序员可根据其他设置将这些定位应用于衰减和空间化(具体可进行查询)。

迁移详情

以下是需要注意的一些详细信息:

  • 现在可以独立于空间化来设置衰减,不会受 Speaker Panning / 3D spatialization Mix 影响。在运行时无法直接禁用衰减。不过,您可以:
    • 针对处于听者位置的游戏对象播放声音,或者直接针对“听者”游戏对象播放声音。
    • 通过 AK::SoundEngine::SetScalingFactor 调整衰减。
  • 游戏对象定义的声障和声笼将应用于所有启用了 Listener Relative Routing 的声音和总线(通常,Actor-Mixer Hierarchy 下的所有对象都启用了 Listener Relative Routing)。若不想应用声障/声笼,请针对其他未设置声障和声笼的游戏对象发布事件。
  • API / 插件 API 变化:移除了函数 AK::IAkMixerInputContext::IsSpatializationEnabledAK::IAkMixerInputContext::IsPannerEnabled,添加了函数 AK::IAkMixerInputContext::GetSpeakerPanningType、 AK::IAkMixerInputContext::HasListenerRelativeRoutingAK::IAkMixerInputContext::Get3DSpatializationMode
  • 对于应用于 Positioning Type 的 RTPC,在工程迁移中将把曲线位置移至 Speaker Panning / 3D Spatialization Mix,采用常数线段。稍后可在 RTPC 视图中右键单击曲线,并将这些常数线段改为任意所需线型。
  • 在工程迁移过程中将清除应用于 2D 声音的 Attenuation,除非 Positioning Type 应用了 RTPC。
  • 优先级随距离变化的特性将影响启用了听者自动化的对象,而不会影响利用原来的 3D User-Defined Positioning 模式创建的声音。
  • 对于 Position 设为 Listener + Automation 而 Spatialization 设为 None 的声音,将根据自动化定位应用距离衰减,而之前并非如此。
  • 利用 Spatialization 设为 None 的 3D 空间化声音,可模拟之前启用声像器 (Balance-Fade) 时所创建 2D 声音的行为(光标位于中间)。新行为将直接采用所选 Speaker Panning 选项(Direct Assignment 或 Balance-Fade)。不过,在自动迁移工程时,并不会主动把"3D"声的 Speaker Panning 选项的 Spatialization Mode 设为 None,因此很可能会改用 Direct Assignment。

WAAPI ak.wwise.core.audio.importTabDelimited 错误,格式已更改

ak.wwise.core.audio.importTabDelimited 返回的错误对象中的 details 字段现在遵从 WAMP 规范。该字段由数组改成了对象。数组移到了对象中的 results 字段。

Nintendo Switch 专用 Opus 已重命名为 OpusNX

在添加标准软件 Opus 编解码器后,便将 Switch 专用 Opus 编解码器重命名为 OpusNX。相关文件也相应地有所改动:

  • 包含文件 AkOpusFactory.h 改为 AkOpusNXFactory.h
  • 库文件 libAkOpusDecoder.a 改为 libAkOpusNXDecoder.a

在 Nintendo Switch 上应使用这些文件,以便运用该平台的硬件解码器。注意,Switch 上仍提供标准 Opus 编解码器,但需要在软件中进行解码。标准 Opus 编解码器文件命名为 AkOpusDecoderFactory.h 和 AkOpusDecoder[.lib, .a]。

在 2018.1 版本中使用几何构造 API

对于 2018.1 版本,为了简化数据并使表示形式更加便捷和紧凑,相应地更改了几何构造 API。注意以下变化:

  • 现在要在三角形的单独数组中定义顶点,并且三角形数组中的每个三角形都会引用顶点数组中的索引。
  • 每个三角形还会包含 AkAcousticSurface 结构索引,便于定义声学材质、描述字符串和反射器声道掩码。
  • 声学材质与三角形的对应关系由用户决定。比如,用户可选择为每个三角形指定一个表面,也可将一个表面应用于所有三角形。
  • 定义声学表面为可选项。若无需自定义表面的声学属性,则可将三角形设为 AK_INVALID_SURFACE,将 NULL 传给 AkGeometryParams::Surfaces,并将 AkGeometryParams::NumSurfaces 设为零。

内置游戏参数 Diffraction 已改为百分比形式

在 Wwise 2017.2 中,内置游戏参数 Diffraction 的单位为度,取值范围为 0 ~ 180。在 2018.1 中,Diffraction 将表示为百分比形式。其中,100% 对应 180 度。同样,3D Game Object Profiler 中的 Diffraction 值也将显示为百分比形式。这样方便设置由衍射控制的 Obstruction(取值范围刚好也是 0 ~ 100)。在迁移至 2018.1 时,现有工程将相应地自动调整曲线。


此页面对您是否有帮助?

需要技术支持?

仍有疑问?或者问题?需要更多信息?欢迎联系我们,我们可以提供帮助!

查看我们的“技术支持”页面

介绍一下自己的项目。我们会竭力为您提供帮助。

来注册自己的项目,我们帮您快速入门,不带任何附加条件!

开始 Wwise 之旅