版本
menu_open
Wwise Unity Integration Documentation
Room 和 Portal 教程

本教程将展示如何结合 Spatial Audio 使用 Room 和 Portal。以下章节会详细讲解相关步骤:

备注:本教程假定您已完成 Spatial Audio 教程准备工作 。不过,并不要求完成 Surface Reflector 教程 ;两个教程并不相干。假如您已完成 Surface Reflector 教程 并希望接着学习本教程,直接使用原有工程即可,无需对场景做任何改动。如果您想重新开始且已完成 Surface Reflector 教程 ,那么仍可沿用相同的场景。

A. Wwise 工程

对于本教程,为了在发声体被障碍物阻挡时通过 Portal 传播衍射声音,我们需要添加 Reverb Effect,并修改 Obstruction 曲线。

  1. 使用 Room 预设添加两条 Auxiliary Bus。
    1. 右键单击 Master Audio Bus,然后依次转到 New Child > Presets,并选择 Room Auxiliary Bus。
    2. Effects 选项卡中,为每个 Room 选择不同的效果器。比如,为 SmallRoom 选择 Rooms/Room_Medium,为 LargeRoom 选择 Cathedrals/Medium。
      Auxiliary Bus Property Editor Effects tab for rooms
  2. 修改 Spatial Audio 教程准备工作 中添加的 Sound SFX
    1. 在 Positioning 选项卡中,确保启用 Diffraction and Transmission。
      在 Sound Property Editor 的 Positioning 选项卡中启用 Diffraction and Transmission
  3. 在默认情况下,衍射由声障实施滤波,透射损失由声笼实施滤波。依次转到 Project > Project Settings > Obstruction/Occlusion。
    1. 根据需要调节 Obstruction VolumeObstruction LPF 曲线。比如,我们在 Wwise Unity Demo Scene 工程中使用了如下曲线:
      Curve Point 1 Point 2 Curve Type
      X Y X Y
      Obstruction Volume 0 0 100 -3 Linear
      Obstruction LPF 0 0 100 60 Linear
      Occlusion Volume 0 0 100 -12 Sine (Constant Power Fade In)
      Occlusion LPF 0 0 100 75 Sine (Constant Power Fade Out)
    2. Obstruction Volume 曲线如下图所示:
      Wwise Project Settings 中的 Obstruction/Occlusion 曲线
  4. 保存工程。
  5. 在 Unity 工程中,在 Wwise Picker (Windows > Wwise Picker) 内刷新 SoundBank
    1. 生成 SoundBank
      Wwise Picker

B. Room

我们需要指定 Room 在场景中的位置。为此,我们将使用 AkRoom 组件。

  1. 在 Wwise Unity Demo Scene 的教程场景中,我们添加了 Cube Mesh 来代表建筑中每个 Room 的内侧。假如您刚完成 Surface Reflector 教程 ,可使用带有 AkSurfaceReflector 组件的 GameObject。
    1. 添加 Cube (GameObject > 3D Object > Cube)
    2. 移除 Mesh Renderer 组件。
    3. Box Collider 组件中选中 Is Trigger
    4. 添加 AkRoom 组件。
      1. Reverb Aux Bus 选取相应的 Auxiliary Bus。
      2. 警告消息会提示将 Rigidbody 组件添加到 Room。注意,执行该操作后将允许在 AkRoomAkRoomAwareObject 组件之间进行交互。我们可以按照下一步所述来添加这些组件。
        AkRoom 组件

因为要使用 Room,所以必须通过添加 AkRoomAwareObject 组件来将所有听者和发声体设为 Room Aware。

  1. 已经有 AkRoomAwareObject 组件自动添加到了 Spatial Audio 听者,请确保该组件处于启用状态。
    AkRoomAwareObject 组件
  2. 您可能会看到两条警告消息(如上图所示)。
    1. 第一条提示需要将 Rigidbody 组件添加到 Room 或当前对象。若 Room 尚未绑定该组件,请单击 Add Rigidbody
    2. 第二条是关于 Collider 的警告消息。每个 AkRoomAwareObject 都要具有 Collider 才能与 AkRoom 组件进行交互。

C. Portal

  1. 在听者和发声体不在同一 Room 时,声音会被 Room 的墙壁阻挡。您可以为其设置透射损失值(详见 /ref pg_obs_occ 章节)。否则,便需添加 Portal 以便通过所需开口传播直达声音。在 SpatialAudioTutorial 场景中,有两个可以放置 Portal 的开口:一个设在外部区域和 Small Room 之间的开口上,另一个设在两个 Room 之间。
  2. 创建两个 AkRoomPortal 组件 (GameObject > Wwise > Room Portal),并将其放在开口附近。
  3. Scene 窗口中,Portal 周围显示有黄色条带(用来指示门户大小)及其所应设置的朝向。红色线条用来划分 Portal 的前后区域。其中,局部 Z 轴所指方向为前部。
    在 Scene 窗口中创建 AkRoomPortal 组件
  4. AkRoomPortal 组件中:
    1. Open On 设为 Start。
    2. Close On 设为 Nothing。
    3. 确保 Back Room 和 Front Room 显示正确的 AkRoom 组件。
  5. Small Room 和外部区域之间的 Portal 的 AkRoomPortal 组件应如下图所示:
    AkRoomPortal 组件

D. 验证设置

  1. 若要查看场景中绘制的声音传播路径,请将 AkSpatialAudioDebugDraw 组件添加到发声体。
    1. 勾选 Draw Diffraction Paths 选项。
      AkSpatialAudioDebugDraw 组件
  2. 启动游戏并连接到 Wwise。
    1. 按下其中一个 Room 中的按钮,来试听混响效果。
      1. Voices Graph 应如下图所示:
        Voice Graph 中显示 Room
    2. 走到 Room 外面并移动位置,使隔壁 Room 内正在播放的发声体处于视线内和视线外,从而试听声音的衍射效果。在听者相对于 Portal 的角度不同时,您会听到或多或少的衍射声音。
      1. 在 Unity 的 Scene 窗口中,应可看到代表声音穿过 Portal 的路径。衍射点处会显示应用于声音的衍射百分比。
        衍射路径穿过 Portal – 俯视图
    3. 打开设计工具的 Game Object Profiler 布局(快捷键 F12)。
      1. 确保在 Game Object 3D Viewer Settings 中启用 Diffraction Paths(如尚未启用)。
        在 Game Object 3D Viewer Settings 中为 Portal 启用 Diffraction Paths
    4. 在 Game Object 3D Viewer 中,应可看到:
      1. Room 和 Portal 的模型。
      2. 声音从发声体穿过 Portal 到达听者所在位置的衍射路径。每个边缘都会显示衍射百分比。注意图中以绿色虚像标识的虚声源,其代表声音的实际听感位置。
      3. 穿过 Room 墙壁的透射路径及透射损失百分比。
      4. 显示 Room 湿声部分的房屋图标。在图中,一个代表穿过 Portal 的声音,一个代表穿透 Room 墙壁的声音。
      5. 每个发声体/听者都会在其名称中显示与之对应的 Room。听者不在 Room 内,因此默认放在了 "Outdoors" Room 中。
        1. 将听者移动到某个 Room,并在 Game Object 3D Viewer 中的“听者”游戏对象下查看 Room 名称变化。
          Game Object 3D Viewer 中显示穿过 Portal 的衍射路径
备注:若要在 Room 外部添加混响效果器,则可围绕整个区域添加一个 Room。确保 Room 的优先级低于场景中的其他 AkRoom 组件。

E. Portal 和 Reverb

通过 Portal 传播的声音还可使用来自听者所在 Room 的混响效果器。我们称之为 Room Coupling(房间耦合)。

  1. 打开 Room 对应的 Auxiliary Bus Property Editor,并确保在 General Settings 选项卡中选中 Use game-defined auxiliary sends。这样可以将 Room 的混响效果发送到场景中的其他混响效果中。
  2. 假如在播放小房间发声体时走进大房间,将会看到小房间的混响效果被馈送到了大房间的混响效果中来。
    Voices Graph 中显示 Room Coupling
备注:

Wwise Unity Demo Scene 涵盖了 Surface Reflector 教程Room 和 Portal 教程 以及衍射。有关详细信息,请参阅 Spatial Audio 附加功能

参见

F. Room Tone

有时,Room 内会有像空调嗡嗡声这样的特定环境声。为了重现这种效果,您可以针对 Spatial Audio Room 游戏对象发送 Event。在听者和发声体处在同一 Room 时,声音会被定位在听者所在位置。在听者和发声体处在不同 Room 时,听者会通过连通两个 Room 的 Portal 听到房间底噪 (Room Tone)。

  1. 在 Wwise 工程中:
    1. 创建新的 Sound SFX 并用于房间底噪。
      1. 确保启用游戏定义的辅助发送来将房间底噪发送到 Room 混响效果中。
    2. 右键单击 Sound SFX,然后依次选择 New Event > Play,来创建带有房间底噪的 Play Event。
    3. 保存工程。
  2. 在 Unity 中:
    1. 将此 Event 添加到其中一个 Room 所绑定的 AkRoom 组件的 Room Tone Event 参数。
      1. 调节 Aux Send Level 来将部分声音馈送到该 Room 的混响效果中。
      2. 您可以选择如何触发 Event。
        在 Spatial Audio Volume 的 AkEvent 分区中启用 Room
  3. 生成 SoundBank。
  4. 启动场景并连接到 Wwise 设计工具。
  5. 确认可以听到房间底噪。
    1. 在 Advanced Profiler 视图中,应会看到当前触发的 Event。
      在听者处在带有房间底噪的 Room 中时查看 Advanced Profiler 视图
    2. 在 3D Game Object Viewer 中,可一边来回移动听者,一边察看 Room 游戏对象。
      1. 若听者和发声体处在同一 Room,则 Room 会在听者所在位置播放声音。您会看到 Room 游戏对象跟随“听者”游戏对象。
      2. 若听者和发声体处在不同 Room,则会将 Room 游戏对象定位在 Portal 位置,并在其与 “听者”游戏对象之间绘制路径。
        在 Game Object 3D Viewer 中察看 Room 游戏对象
参见

此页面对您是否有帮助?

需要技术支持?

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

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

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

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

开始 Wwise 之旅