版本
menu_open

Defining how objects within a container are played

容器可能会包含多个对象。在播放容器时,会根据 Play Mode 设置播放它的一个或所有子对象:

Step play mode

您可能希望每次调用时播放容器内的一个对象。比如,在每次开枪时仅播放一个声音。或者,在每次角色说话时仅播放一句对白台词。要想实现这一点,可将容器的 Play Mode(播放模式)模式设为 Step(步进)。

下图显示了在将手枪的声音放到 Random Container 中并设为 Step 模式时开枪会发生什么。

播放容器中的一个对象:

  1. 打开与 Random Container(随机容器)或 Sequence Container(序列容器)对应的 Property Editor(属性编辑器)。

  2. In the Play Mode group, select the Step option.

    每次播放容器时,将仅播放一个对象。

Continuous play mode

在别的一些情况下,您可能希望每次播放容器时播放容器中的所有对象。比如,在使用游戏中的某些枪支开火时必须逐次播放一系列声音。要想实现这一点,可将容器的 Play Mode(播放模式)模式设为 Continuous(连续)。

[备注]备注

Continuous 播放模式始终应用于游戏对象作用域。有关更多详细信息,请参阅 “Defining the scope of containers”一节 章节。

下图显示了当特定枪支开火时,Wwise 如何使用 Continuous 模式的序列容器来播放声音序列。

在 Continuous 模式下将播放容器内的所有对象,这意味着您可以添加循环,并在对象间应用各种过渡。

[备注]备注

在将 Random Container 设为 Continuous 模式时,某些对象可能会在整个列表播完之前重复数次。这是由于对容器内的各个对象都应用了权重。

播放容器内的所有对象的方法如下:

  1. 打开与 Random Container(随机容器)或 Sequence Container(序列容器)对应的 Property Editor(属性编辑器)。

  2. In the Play Mode group, select the Continuous option.

  3. 对于序列容器,如果要在每次播放容器时将返回至播放列表开头,则可以选择 Always reset playlist 选项。如果您未勾选该选项,则容器将从上次停止处继续播放,更确切地说是从播放列表中下一个对象的起始处播放。

  4. 选择 Loop 选项可以循环容器的全部内容。

  5. 选择以下选项之一:

    • Infinite ,指定容器将无限重复。

    • No. of Loops,指定容器将播放特定次数。

  6. 如果您选择 No. of Loops 选项,请输入容器将被播放的次数。

  7. 选择 Transitions 选项,可以在播放列表中的对象间应用过渡。

    Transition 参数变为可用。

  8. 从 Type 列表中,选择以下任一选项:

    • Xfade (amp) 淡变(恒定振幅),在两个对象之间保持恒定振幅进行交叉淡变。

    • Xfade (power) 淡变(恒定功率),在两个对象之间保持恒定功率进行交叉淡变。

    • Delay 延迟,在两个对象之间添加无声段落。

    • Sample Accurate 精确到采样点,对象之间进行零延迟的无缝过渡。Note that the Opus (if streamed from disk) and XMA audio formats are not reliable codecs for sample accurate transitions.

    • Trigger rate 触发速率,使用特定速率来触发容器内的对象。该选项对于模拟快速枪声十分实用。除此之外,也可使用 MIDI 来以更高的精度发送每个子弹声音。有关详细信息,请参阅 SDK 文档中的模拟快速射击章节。

    [备注]备注

    在使用 Xfade、Sample accurate 和 Trigge rate 时有一些局限性。以下几点值得注意:

    • Blend Container 和 Switch Container 不支持交叉淡变(Xfade)。当子级 Blend/Switch Container 播放时,其父级 Random/Sequence Container的 Xfade 设置也无法正常工作。

    • 假如为 Random/Sequence Container 应用了精确到采样点的过渡,若在当前声音末尾使用中断动作退出循环播放,而没有足够时间预取接下来要播放的声音,则可能会导致无法精确地过渡到指定的声音。为了避免这一问题,可针对这些声音使用内存内容(不进行流播放,也不使用硬件编解码器)。

    • 对于使用了 Xfade 或 Trigger rate 过渡方式的容器,带有 Fade out 的 Stop Action 将不起作用。为容器调用 StopEvent 时,如果 Fade out 时间比当前播放的声音更长,则播放结束时声音会突然切断。要避免这种情况,可以使用 Set Voice Volume Action 进行淡出,并延迟 Stop Action。

  9. Duration 文本框中,输入所需的交叉淡变、延迟或触发速率的时长。

    [备注]备注

    Duration 选项不适用于精确到采样点的过渡。


此页面对您是否有帮助?

需要技术支持?

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

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

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

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

开始 Wwise 之旅