事件技巧和经验总结
以下各段将介绍一些可帮助您更好管理工程中事件的技巧和经验总结。
重命名事件
更改 Event 名称前,请检查 Event 是如何集成到游戏中的。如果事件已使用包含事件名称的字符串或 Wwise_IDs.h 头文件中的 ID 进行了集成,则更改名称将需要额外编程方能使用相应事件。
组织事件
您可以使用工作单元和虚拟文件夹来组织工程中的事件。在工程中有多人同时工作时,将事件划分成多个工作单元可能会很有用处。例如,各个团队成员可在其自己的个人事件工作单元中创建事件。将您的事件划分到不同的工作单元不会影响您的工作效率或工作流程,而且这样做还能避免令人沮丧且费时的修复合并冲突。
将游戏事件与 Wwise 中的事件进行匹配
您可以使用 SoundBank 定义文件(SoundBank definition file)来跟踪哪些事件已经集成到游戏中、缺失哪些事件以及还需要在 Wwise 中创建哪些事件。音频程序员可生成游戏的事件列表,然后您可以将定义文件导入 Wwise。您可以使用日志文件中的信息来对游戏中的事件与 Wwise 中创建或缺失的事件进行匹配。有关 SoundBank 定义文件的详细信息,请参阅通过导入定义文件填充 SoundBank。
以编程方式停止、暂停和恢复声音
事件信息存储在声音引擎的默认内存池(Default Memory Pool )中。为了避免过度占用默认内存池的空间,您可以使用 Wwise SDK 中的 ExecuteActionOnEvent() 函数,以编程方式停止、暂停和恢复声音。除了创建成对的播放/停止事件以外,您可以创建单个 Play Event,再配套调用 ExecuteActionOnEvent 函数来停止播放这个声音。如果您需要暂停和恢复声音,则无需创建两个单独的事件,只需使用上述相同的函数来执行暂停和 Resume 动作即可。这可以显著减少工程中的事件数量并且可释放默认内存池中的宝贵空间。为了提供额外的可控性,在以编程方式停止、暂停和恢复声音时,您还可以指定淡出时间。有关 ExecuteActionOnEvent 函数的详细信息,请参阅 Wwise SDK 文档。
使用 Set Voice Pitch 事件创建音高包络
对于最自然的声音,音高实际上会在一段时间内波动或改变,直到其到达其稳定状态(steady state)或“保持”(sustain)电平。要创建此效果器,您可以使用音高包络。Wwise 不支持预编的音高包络,但您可以通过创建包含多个连续 Set Voice Pitch 动作的事件来靠近该行为。事件中各个 Set Voice Pitch 动作都可在动作属性中的其中一个预定义曲线之后调整一段时间内的音高。当然,序列中最后一个动作可能需要为 Reset Voice Pitch,以便使游戏对象回到其原始状态。