版本
menu_open
警告:系统已根据您所用大版本 (2023.1.7.8574) 自动跳转至最新文档。若想访问特定版本的文档,请从 Audiokinetic Launcher 下载离线文档,并在 Wwise 设计程序中勾选 Offline Documentation 选项。

了解如何将声音引擎集成到《Cube》中

在将 Wwise 声音引擎集成到《Cube》中时涉及以下任务:

为 Wwise 准备《Cube》

《Cube》最初由 Wouter van Oortmerssen 开发,是一款开源的第一人称单人或多人射击游戏。您可以随时从 Cube 网站下载 (http://cube.sourceforge.net/)。为了满足 Wwise 集成包的相应需求,我们对从 Cube 网站下载的版本做了以下修改:

  • 为使用 Wwise 声音引擎,改写了现有声音代码。

  • 将音频内容移到了 Wwise 工程中。

  • 移除了对其他库(SDL、SDL_image、libpng)的依赖。

  • 添加了额外的音频(如脚步声)。

  • 为了顺应以上更改,对有些游戏配置和内容文件做了修改。

注册游戏对象

声音引擎中注册了两种游戏对象:

  • 指向 baseent 结构体的指针。这些游戏对象是游戏世界中的移动实体:玩家、怪兽和投掷物。

  • 虚拟游戏对象(编号为 64-127)。这些游戏对象用于不与移动实体绑定的 3D 声音(如物品生成)。

整合音频

音频整合的核心代码存放在 <WwiseRoot>\Cube\cube_source\src 文件夹中的以下文件中:

  • Sound.cpp – 包含所有访问声音引擎的代码。

  • Protos.h – 包含声明的公共函数。

整合过程涉及以下类型的声音:

  • 怪兽声音:

    • 每个角色都有关联的疼痛、死亡和脚步声 Event。详请参见 monster.cpp 中的 monstertypes[]。

    • 脚步声 Event 通过 monsterfootstep() 函数发送。另外,其还会设置与角色脚下地面材质对应的 "Material" Switch 以驱动 Switch Container。

    • 物品有关联的拾获 Event。详请参见 entities.cpp 中的 itemstats[]。

  • 魔法音效:

    • 每种魔法都有关联的 Event。详情参见 weapon.cpp 中的 guns[]。

    • 投掷物有飞溅 Event(S_FEXPLODE、S_RLHIT)。

    • 在启用四倍伤害时投掷 Ice Gem 还会发送 "S_ITEMPUP" Event。

  • 网络声音:

    • 有些 Event 还要转到服务器以便通过网络播放声音(由 snd_clientevent() 处理)。

  • 其他声音:

    • 若要查找游戏当中发生的所有其他声音 Event,请在代码库中搜索 snd_event() 调用。

添加新的脚本命令

为方便管理声音,新增了以下与声音相关的命令。这些命令可用在 .cfg 脚本文件中:

  • akevent <string>:在本地玩家游戏对象 (player1) 上按名称发送 Event。

  • soundvol <int>:设置音效音量 (0-255)。

  • musicvol <int>:设置音乐音量 (0-255)。

  • voicevol <int>:设置语音音量 (0-255)。

  • texturematerial <int> <string1> <string2>:该命令与 texture 命令基本上是一样的,不过添加了一个参数(与脚步声关联的材质)。


此页面对您是否有帮助?

需要技术支持?

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

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

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

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

开始 Wwise 之旅