Wwise SDK 2024.1.1
|
在 Wwise 2022.1 中,很容易注意到对基于选项卡的用户界面的改进,其目的在于提升编辑工作流程和界面浏览的效率。这些改进彰显了我们不断完善互动音频解决方案并增强其创新性和易用性的承诺。此版本优化了用户与 Wwise 工程的交互方式,进一步拓宽了互动音频整合和动态音频设计的语言。
现在添加了 Object Tab Group 作为 Designer 布局的聚焦中心。Project Explorer 中的所有对象都可选中并显示在 Object Tab 中,方便在一个位置集中展示其属性及与之关联的编辑器。比如,在编辑 Interactive Music Hierarchy 下的对象时,无需切换布局便可访问 Music Editor;直接在 Object Tab 内就能调节对象的属性。
在 Object Tab 中,可执行以下操作:
界面中设有两种类型的 Object Tab:Recycle 和 Keep Open。每次在 Project Explorer 内选中新的对象,Recycle 选项卡都会在同一对象选项卡中换掉之前选中的对象。除了 Recycle 选项卡,还有一些选项卡可以保持打开状态。用户可重新排列、停靠或取消停靠选项卡分组中的选项卡,以此来依据项目的实际需要对工作流程进行灵活性的调整。该功能方便分组管理要执行不同操作的选项卡,以便为自身开发当中特有的设计流程提供支持。
Object Tab Group | |
三个示例 Object Tab |
每个 Object Tab 由上部窗格中的 Primary Editor(适用于大部分对象类型)和下部窗格中的 Secondary Editor 组成。Primary Editor 会依据选定对象的类型显示 Property Editor、Event Editor、Audio Device Editor 或其他关联编辑器。Secondary Editor 会为每个与当前选定对象密切相关的其他编辑器留出一个选项卡。通过在基于选项卡的工作流程中引入与对象关联的 Primary Editor 和 Secondary Editor,用户可统一查看与编辑操作相关的所有信息。
有关这一全新工作流程的更多详细信息,请参阅使用 Object Tab 和 Object Tab Group。
同时,我们依据对编辑工作流程的改进对布局和布局的管理进行了更新。现在,所有与音乐相关的编辑器都可直接在 Designer 布局下的 Object Tab 中访问。为此,我们移除了 Interactive Music 布局。Object Tab Group 和 Object Tab 均可作为浮动窗口从布局中分离出来,并且可像其他视图一样停靠到布局或 Object Tab Group 内。为了便于在调整布局前了解停靠效果,我们对停靠目标和效果预览实施了改进。除此之外,还对调节设计窗口大小时的视图缩放做了相应的改进。
Project Explorer Search 方便在 Project Explorer 视图内执行自然搜索和筛选,同时还支持 Wwise Authoring Query Language (WAQL)。该功能对包含大量对象、多人参与开发的大型工程特别有用。通过高亮显示并展开匹配条目,用户可快速锁定 Project Explorer 中的对象。
只需在 Project Explorer 顶部的“搜索”字段中键入对象名称或将对象拖到该字段中便可查看结果。有关更多详细信息,请参阅使用 Project Explorer Search。
现在可利用 Paste Properties 视图来将某个对象的属性复制到别的(一个或一系列)对象。藉此,可使工程中的各项属性保持一致,从而降低出现未知异常的可能性。在 Paste Properties 视图中,还可对比源对象和目标对象的属性。
利用这一新增视图,可复制并粘贴两种类型的信息:
比如,您可能会想为不同的车辆或物理对象使用一系列相同的 RTPC。
为此,我们对 Wwise Authoring API (WAAPI) 进行了扩展。现在可返回源对象和目标对象之间存在区别的属性和列表 (ak.wwise.core.object.diff),并将源对象的属性和列表粘贴到若干目标对象 (ak.wwise.core.object.pasteProperties)。如此一来,便可在自定义 WAAPI 工作流程当中执行 Paste Property 操作(包括 RTPC),从而提升开发管线的效率。
有关如何使用此视图的详细信息,请参阅复制和粘贴对象属性。
为了便于根据衰减情形进行自定义设置,我们添加了可选的声障、声笼、衍射和透射曲线。
这些曲线允许:
这提供了可以在每个衰减的基础上微调这些特性的曲线的灵活性,从而让空间音频的功能更加完善。
与此同时,为了与 Property Editor 中 RTPC 选项卡的布局协调一致,我们还对 Attenuation Editor 内的各项元素进行了调整。
通过在 Wwise 设计工具内引入 Event-based SoundBank 方法,Auto-defined SoundBank 为游戏引擎集成提供了新的素材管理策略。该新增功能可与游戏引擎集成结合使用,来在运行时动态加载和卸载 Wwise 资源,确保仅将游戏所需的 Event 和 Media 加载到内存中。Wwise 允许同时使用自动定义和用户定义的 SoundBank,便于开发者根据自身需要优化 SoundBank 的选择。
另外,为了配合自动化、精细化的游戏素材管理方式,我们还对其他工作流程实施了一系列改进:
该功能基于随 Wwise Unreal 集成引入的 Event-Based Packaging (EBP) 工作流程构建,便于借助对 EBP 的更新来充分发挥 Event-based SoundBank 方法的作用。通过在 Wwise 设计工具内加入 Event-based SoundBank,可使 EBP 工作流程的灵活性免受 Unreal 管线影响,便于在其他游戏引擎集成当中进一步扩展。
File Manager 现在包含 Generated Files 选项卡,其会显示有关工程内输出文件夹所含文件的信息。在这个新增的选项卡中,可单独选择工程的各个平台并查看针对其生成的文件。您可以确定所生成文件的状态和所有者以及哪些文件为只读文件。而且,直接在 File Manager 内就可移动或删除生成的文件。
若在使用版本控制插件,可通过右键单击列表中的文件来访问一组附加命令(如 Submit Changes 和 Check out)。
现在的 Transport Control 视图更加简洁:
为了反映拓展之后的用途,将 Property Help 视图重命名为了 Contextual Help。现在可选中 Capture Log 内的错误消息来在 Contextual Help 视图中查看详细说明、可能的原因以及解决步骤。
在与字段、复选框、按钮或滑杆交互时,只要是设置属性而非打开对话框、列表或视图,仍会显示帮助条目。
Contextual Help 视图中的所有内容均提供英语、日语、简体中文和韩语版本。对此,只需在 Help 菜单中选择所需 Documentation Language 即可。
现在可在 Project Settings 中定义 Voice LPF 和 Voice HPF 所用的累计方式。这样方便选择是通过将所有值叠加起来(之前只有这一种方式)还是通过取所有对象值当中的最大值来得出最终值。
在本例中,我们为每个对象指定了 LPF 属性值。最终应用于声音对象的 LPF 值取决于所选的累计方式。
Sum all values:将各个对象的 LPF 属性值加在一起。 | |
Use highest value:使用对象 LPF 属性值当中的最大值。 |
在 Property Editor 的 States 选项卡中,现在可在不同 State Group 和不同对象类型之间复制粘贴 State 值,包括在 Master-Mixer Hierarchy、Actor-Mixer Hierarchy 和 Interactive Music Hierarchy 之间进行复制粘贴。甚至,还可选择多个目标对象并将值一键粘贴到所有目标对象。
另外,还可将 State Group 及关联 State、属性和 State 值从一个对象复制到另一对象,而不受对象类型或层级结构限制。
Event Action Set State 的 Target 字段现在会同时显示 State 及其所属的 State Group。这样便于区分属于不同 State Group 但名称完全相同的 State。
为了涵盖所有最为实用的坐标图设置,我们对 Performance Monitor 默认设置进行了更新。
为了便于自由选用以下方式将视图同步,我们将 Sync Group 替换为了 Selection Channel:
同时,为了避免混淆,电平表不再设置 Sync Group,改为设定 Instance(A、B、C 和 D)。
为了获得更好的体验,我们更新了以下位置的鼠标滚轮行为:
总的来说,对于基于时间和基于范围的视图,现在默认适用以下操作规则:
我们对以下键盘快捷方式做了改进:
我们对 Contents Editor、List View、Query Editor 和 Reference View 中的快捷菜单进行了更新。现在其包含执行以下操作的选项:
提升了 WAQL 的整体性能,并做了以下改进:
为 WAAPI 添加了以下功能:
为了便于快速运用动态早期反射,我们对 Reflect 插件的工作流程进行了简化。现在可根据需要利用声音对象的衰减曲线来设定反射路径的衰减。既可沿用声音对象的衰减曲线,也可依据具体情形自定义或禁用曲线。除此之外,还可修改各个 Reflect 插件实例的 Distance 和 Diffraction 曲线,自由地选择是突显还是弱化反射效果。
新增的 3D Audio Bed Mixer 插件可插入到 Audio Objects 总线上以减少发送到该总线的 Audio Object 数量。它会对部分 Audio Object 进行混音并生成三种可能的输出:Main Mix、Passthrough Mix 和一系列未经混音的 Audio Object(符合条件的话会在管线末端升级为 System Audio Object)。而且,还可利用各种设置来自定义插件的行为。
为 Time Stretch 插件添加了新的拉伸模式,既保留了瞬态,又可掌控音质和 CPU 性能之间的平衡。Time Stretch 插件可在确保不影响音高的情况下调节音频信号的速度和时长。这样方便执行时间拉伸和时间压缩,对单声道和多声道声音都一样适用。另外,为了方便处理立体声声像定位并增加 Time Stretch 作为创作工具的灵活性,我们还添加了用于控制音高变换和随机音高变换的属性以及立体声处理模式。
Wwise Unreal 集成中的 Event-Based Packaging 现在可充分利用 Auto-Defined SoundBank 功能(Wwise 2022.1 新增功能)。为了包含运行时引擎所需的各种信息以便设计师根据需要播放声音,我们对 SoundBank 元数据文件的内容实施了改进。这样便可抛开 Unreal 集成中的所有素材同步代码,转而依靠 Wwise 生成的元数据来实现。也就是说,现在不必每次都将 Wwise 工程中的所有条目自动添加到 Unreal Content 文件夹,只需在必要时创建 Unreal 素材即可。除非选择使用 Unreal 工程中的特定 Event,否则不会在磁盘上创建素材。在对工程进行打包之前,这些素材只包含对其所用资源的引用。只有到打包工程的时候才会将 SoundBank 复制到 Unreal 暂存文件夹层级结构。藉此还可解决音频以外的项目成员遇到的问题,之前他们有时必须安装 Wwise 才能将音频整合到工程中。新的集成包只需要有 GeneratedSoundbanks 文件夹便可在工程中获得全方位的 Wwise 音频支持。
现在完全支持使用双精度(64 位)矢量来设定大世界坐标。之前只能使用 32 位精度值、重新定位世界的中心或使用自定义的 Local Grid。将来,我们会针对 Unreal Engine 5.0 版本不断进行更新。更多信息请参阅 重要迁移说明 2022.1 。
在将音频整合到第三人称视角 (TPP) 的游戏或模拟环境中时,有时并不确定要将“听者”游戏对象放在哪里;有些人希望放在摄像机位置,有些人则喜欢放在玩家角色位置。现在可选择将新的 Distance Probe 作为“听者”游戏对象的代替物来实现最佳效果。
在将 Distance Probe 指派给听者时,为输出给听者的所有声音应用的衰减距离将基于 Distance Probe 和“发声体”游戏对象之间的距离。无论是否指派了 Distance Probe,声像摆位、空间化、散布和聚焦始终基于“听者”游戏对象的位置和朝向。通过利用Distance Probe对距离进行解耦,现在您可以动态地控制玩家在不同玩法状况下听到的内容。
除此之外:
为了确保性能和可信环境呈现之间的平衡,我们一直在对 Spatial Audio 功能集进行优化。在计算衍射时需要沿着衍射边缘查找路径,这在运行时可能会消耗大量的 CPU 处理资源。为了优化 CPU 性能,我们采用了射线追踪法来采集重要的相邻衍射边缘,并据此构建了展示衍射边缘之间可见性的射线图。藉此,可提升衍射计算的效率。除此之外,我们还将 Spatial Audio 计算负荷分摊到了多个音频帧(由散布定义)以尽量避免 CPU 用量达到峰值。各项 Spatial Audio 任务(射线投射、路径验证等)会被放到优先级队列中,进而基于负荷均衡的散布设置来在每一帧执行队列中特定数量的任务。负荷均衡对同时使用大量发声体的情形特别有用。
Wwise 声音引擎现在支持在定位时使用双精度值来为 Game Object 设定大世界坐标。即便对于数十亿单位大小的世界,也可按预期设置声音的定位行为。为此,我们对处理 Game Object 位置的 API 进行了更新,以便使用两个新的类型 AkWorldTransform 和 AkVector64 来提供附加数据。更多信息请参阅 重要迁移说明 2022.1 。
对数量持续增长的用于创建实时动态音频的参数的管理变得更加便捷。Real Time Parameter Control (RTPC) 和 Switch 的性能现在不会受到内存中加载的 Wwise 对象数量及其所用的 RTPC 或 Switch 影响。我们对 RTPC 和 Switch 值的设置和更新进行了优化,现在只取决于有多少注册的游戏对象和活跃的声音对象在使用 RTPC 或 Switch。
为了提升运行时性能,我们重写并优化了音频渲染管线的多线程执行。主要是通过转向基于作业的内部调度器,并对依赖关系进行建模,而不是采用分叉和连接的并行执行方法来实现。其中的关键要点包括:
现在,Wwise 可更加高效地使用 CPU 资源实现更为丰富的音频体验,同时更好地协调游戏引擎的任务协作和调度。