版本

menu_open
Wwise Unreal Integration Documentation
拆分 Switch Container Media
注記: 只有在启用 Event-Based Packaging 时才能使用此功能。
警告: 只有将 Switch Value 或 State Value 素材加载到内存中,才能使用此功能加载相应媒体。以下用法容易出现问题:
  • 使用字符串设置 State 或 Switch。若想拆分 Switch Container 媒体,则需采用恰当方式(比如使用 Load Asset Blueprint Node),来确保加载对应的 State Value 或 Switch Value 素材。
  • 通过 C++ 设置 State 或 Switch。若想拆分 Switch Container 媒体,则需采用恰当方式(比如使用 UE4 Asynchronous Asset Loading),来确保加载对应的 State Value 或 Switch Value 素材。 若不想在运行时动态加载素材,建议停用 Split Switch Container Media 功能。

为了优化内存用量,Event 和媒体之间的依赖关系会将 Switch Container 值考虑在内。比如,考虑以下 “Footstep” Event 依赖关系树:

若当前活跃关卡仅引用 “Material_Dirt” Switch Value(比如通过 Level Blueprint 中的 SetSwitch 节点),则只将 Foot_Dirt1 和 Foot_Dirt2 媒体文件加载到内存中。若稍后加载引用 Material_Grass 的关卡,则同时自动加载 Foot_Grass1 和 Foot_Grass2。

注意,可在 Integration Settings 中禁用此功能:

如何加载和卸载与 Switch/State 值关联的媒体

为了针对用来实现 Switch Container 的 Event 优化内存用量,默认情况下会激活 Split Switch Container Media Integration Setting。

在激活此选项时,将在 Event 素材数据中复制 Switch Container 树。各个 Switch 或 State 与子级 SwitchContainerData 或媒体列表关联。

在关卡中引用 State 或 Switch 值素材时,每个加载的 Event 都会接收回调来加载或卸载与该 Switch 或 State 值关联的媒体素材,并遍历整个依赖关系树下加载的所有被引用媒体。在卸载时,将释放流播放管理器的句柄,并在下次运行垃圾收集程序时从内存中移除媒体。

此依赖关系树使用 AkAssetDataSwitchContainerData 实现:

AkAssetDataSwitchContainerData 包含对媒体文件的引用:

AkAssetDataSwitchContainerData 还可包含对其他 AkAssetDataSwitchContainerData 的引用。在使用 Wwise 中嵌套的 Switch Container 时便是这种情况。


此页面对您是否有帮助?

需要技术支持?

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

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

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

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

开始 Wwise 之旅