目录
Evil Head(大头怪)喜欢成群结队地冲过来袭扰冒险家,所以无论玩家走到哪儿,它们都会紧紧地跟在后面。因此,玩家身后很容易聚集一大批 Evil Head 准备上来轮番猛咬。接下来,我们转到 Unity,来亲身体验一下。
-
在 Unity 菜单栏中,依次转到 Audiokinetic > Certification > 251 > Lesson 3,然后选择 Mass Evil Head。
-
在 WAG Unity 工程中,单击 Play。
此时,将直接进入 Cave(山洞)场景。为了避免玩家在被大批 Evil Head 攻击时死亡,下面我们来调整一下游戏设置。
-
按下 ESC,启用 GOD MODE(上帝模式),然后退出游戏菜单。
-
尽可能多地在身后聚集 Evil Head。
-
按下 ESC 进入《WAG》游戏菜单,然后单击 Play 退出游戏模式。
您可能也注意到了,刚才的声景中充满了 Evil Head 的声音。在冒险家处于攻击范围之内时,Evil Head 会往前猛冲一下,然后张嘴就咬。接下来,我们试下将 Evil Head 进击声限制到三个最有威胁性的敌人身上(因为它们距离最近、最有可能咬到玩家)。
-
在 Wwise 的 Project Explorer(工程资源管理器)中,依次展开 Actor-Mixer Hierarchy > Default Work Unit > World > Enemies > Enemies > Enemies_EvilHead > EvilHead,然后选中 EvilHead_Attack_Charge Random Container(随机容器)。
-
在 Advanced Settings(高级设置)选项卡中,转到 Playback Limit(播放限值)分组框,然后选中 Limit sound instances to:(将声音实例数限制为:)复选框并将数值设为 3,同时选择 Globally(全局)。
为了控制 Wwise 优先处理哪些 Evil Head,我们还要更改几项优先级设置。进击声代表近距离有害攻击,所以要把优先级设得很高,以免被其他声音掩盖。另外,还要保证优先级可以随距离变化。这样 Wwise 才能知道哪个 Evil Head 离得最近,从而确定是否有必要突显与之相关的声音。
-
选中 Override parent(不沿用父级),然后将 Priority(优先级)设为 80。
假如您看下前面的优先级配置表,就会发现无害声音和有害声音的优先级是不一样的。
-
将 Offset priority by(将优先级偏置)设为 -20。如此一来,声音在处于最大衰减距离时将拥有与无害声音相同的优先级。
接下来,我们在《WAG》中试听一下,看看 Profiler 如何优先处理 Evil Head 进击声。为了方便本次演示,我们专门构建了一个 Cave 场景,特意在里面部署了大批 Evil Head。
-
在 Wwise 的 Layouts(布局)菜单中,选择 Profiler(性能分析器)。
-
在 Wwise 工具栏中,单击 Remote...(远程...)按钮,然后在 Remote Connections(远程连接)窗口中选中 Wwise Adventure Game (Editor),并单击 Connect(连接)。
-
在 Unity 中,单击 Play。
-
按下 ESC,启用 GOD MODE(上帝模式),然后退出游戏菜单。
-
尽可能多地在身后聚集 Evil Head,不要把它们杀死。
-
单击 Play 按钮退出游戏模式。
接下来,我们监控 Evil Head Charge(大头怪进击)声部实例,同时滤掉所有其他声部信息。
-
在 Profile(性能分析器)布局中,转到 Advanced Profiler(高级性能分析器)的 Voices(声部)选项卡,接着单击“浏览”按钮 [...] 打开 Project Explorer - Browser(工程资源管理器 - 浏览器)窗口,然后依次转到 Actor-Mixer Hierarchy > Default Work Unit > World > Enemies > Enemies > Enemies_EvilHead > EvilHead,最后选中 EvilHead_Attack_Charge Random Container(随机容器)。
-
单击 OK(确定)。
-
在 Profiler(性能分析器)布局的 Performance Monitor(性能监控器)视图中,拖动时间光标,直到显示至少四个同时活跃的 EvilHead_Attack_Charges 声部。
我们可以看到,最多只有三个 Evil Head 设为了实声部,其余超出限值的全都发送到了虚声部。
除上述方法外,还可使用 RTPC 或 State(状态)来偏置优先级。为此,我们可以定义非线性优先级变化,比如使用内置参数 Distance_to_Player 设计一条对数曲线。如需查看相应示例,请打开最终的 WAG Wwise 工程,然后在 Project Explorer 中依次转到 Actor-Mixer Hierarchy > Default Work Unit > World > Enemies > Enemies > Enemies_EvilCrawler > EvilCrawler Actor-Mixer。 |