用新浪微博登录

只需一步,快速搞定

 找回密码
 立即注册

用新浪微博登录

只需一步,快速搞定

查看: 1987|回复: 2
打印 上一主题 下一主题

守望先锋的音频制作解密分享

[复制链接]

签到天数: 88 天

[LV.6]常住居民II

1458

主题

1万

帖子

3万

积分

管理员

游戏青春

Rank: 9Rank: 9Rank: 9

积分
34897

社区居民工蜂业余写手偶尔光临最爱沙发社区平民兵蜂做个有钱人认证用户在线达人略有小成渐入佳境常驻会员忠实会员常坐沙发蜂王小有名气知名人物沙发如床友好人士游聚十周年

跳转到指定楼层
楼主
发表于 2021-12-18 10:26:57 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式 |          
“游戏性至上”是暴雪的核心价值之一。守望先锋的音频团队制定了颇具雄心的目标 —— Play by Sound:通过声音传递尽可能多的信息,给玩家的操作选择提供参考,而不是简单的响应角色动画或技能特效。
守望先锋是什么
  • 基于团队对战的FPS竞技游戏
  • 独特的英雄及技能
  • 6v6基于目标的Gameplay
工程整体结构
  •     1300 WWU 文件,14,300 被引用的 WAV 文件,55s 的加载时间(从 SSD 上),6 sound design, 2 music, 1 programmer, 1 production, 1QA 的人员配置。
  •     在 Master-Mixer 中,总线最高层级是按照2D_Audio和3D_Audio进行划分。划分目的应该是为了整合 Dolby 的 Binaural 解决方案。
  •     在 Actor-Mixer 中,声音是按照类别而不是英雄/地图进行组织的。在每个类别的子节点上划分英雄1P和3P,从而可以在较高层级上实现统一的参数调整,如RTPC,发送,复音数控制等,减少bug出现的几率。
  •     Interactive Music 由 2个 Music Switch Container 组织。 Overwatch_Music 负责所有主要游戏状态对应的音乐; Overwatch_Stingers 负责所有短乐句叠加层。
设计目标 —— Play by Sound实现目标的途径:
  • 清晰的混音(A Clear Mix)
  • 精确的定位(Pinpoint Accuracy)
  • 通过声音提供信息(Gameplay Information)
  • 信息翔实的英雄语音(Informative Hero VO)
  • 巴夫洛夫反射(Pavlovian Response)
① 清晰的混音团队在一开始尝试使用 HDR (High Dynamic Range),但在测试中发现这可能导致大量意料外的ducking出现。最终游戏采用了一套 重要性系统 ,让玩家能优先听到最重要的声音。
什么是重要的声音?
  • 谁是我最大的威胁
  • 我视野内的玩家是谁
  • 我在谁的视野内
  • 谁离我的距离最近
  • 谁在我的附近开火
  • 谁在使用有威胁性的技能
  • 谁在对我造成伤害
计算英雄的重要性根据下表的每一项Sound Importance Factor计算该英雄的重要性:
[td]   
类别
权重
最小持续时间 (s)
Damage
0.5
2
Distance
0.3
1
Enemy Size on My Screen
0.1
0.2
My Size on Enemy Screen
0.3
3
Scripted
0.4
1
Seen By
0.3
2
Shot At
0.6
2
英雄的重要性排序将所有英雄按照重要性排序,依排序结果划分为4个级别:
High - 1个, Normal - 2个, Low - 4-10个, Cull - 其它

Wwise中的操作不同的重要性级别对应不同的RTPC值,通过其调节Volume, Priority, Filters, Pitch等参数 。对于Low和Cull级别,声音衰减非常明显,很多时候基本上听不到;动态空间大都给到了位于前两个级别的角色上。

友方 vs 敌方友方一般拥有更低的重要性,在混音中居于更次要的位置。
② 精确的定位
  我们现在知道你最大的威胁是谁,如何定位他?
  • 声笼和声障
  • 距离和空间
  • 双耳声学
声笼和声障
  • 计算声源到Listener的直线距离;
  • 计算声源到Listener绕过障碍的最短路径距离;
  • 用二者的差值(比值?)来计算衍射值,采用wwise内建RTPC:Obstruction和Occlusion;
  • 利用RTPC分别控制Footstep,WeaponFire等bus的音量、高低通、发送量等属性。

距离和空间
  • Layered Sounds:根据声源距离、位置播放不同的gun-tail素材
  • Indoor vs. Outdoor:室内、室外的tail切换
  • Distance Filtering:根据声源距离、位置设置高低通
  • Focus & Spread:spread 使用较克制,因为精确定位的设计目标需要,立体声宽度不需要这么宽,定位优先!
  • Reverb & Quad Delay:quad delay 是自研的插件。在游戏中实时 ray-trace 玩家面向的左前、右前、左后、右后四个方向的障碍物来计算早期反射声。插件通过4个multi-tap delay,4个eq,4个panner来模拟混响的ER。游戏中部署了2条 quad delay aux bus,其中一条用来处理枪声等较响的声音,会产生明显的echo;另一条处理脚步声等较安静的声音。
Doby Atmos在3D_Audio总线上挂载了 Dolby Headphone Virtualizer 插件,其子总线的通道设置为7.1.4( 参考Dolby Atmos 7.1.4  ),子总线中的信号通过插件下混为 Binaural 的立体声信号。 Scott Lawlor 使劲吹捧了一下插件的效果,能够准确的分辨后方和垂直方向上的声源😄
③ 通过声音提供信息
  我们现在知道你最大的威胁是谁,也知道他在什么位置,但你能听出他是谁并且他在做什么呢?
  • 为每一个英雄创建独特的声音 - 以脚步为例:样本差异、步频差异、Foley材质区别
  • 清晰的游戏性提示 - 普通技能、大招的差异;友方、敌方差异等
  • 根据游戏上下文改变声音
  • 通过 Dataflow 改变声音 - 游戏引擎中获取角色生命值、进度、剩余时间、角色在地图中的高度等调整 RTPC、State、样本选择和音乐变化等
  • 音乐和游戏状态之间通信
④ 信息翔实的英雄语音关键词
  • Stimulus driven - 玩家按键、敌人出现、倒计时等,所有这些事件都是瞬时激发的
  • Criteria selection - 根据gameplay的上下文作为评判依据,选择播放不同英雄的语音
  • Server authentication - 由Server决定推送哪些语音给玩家,可以实现更丰富的互动形式,比如能听到友方英雄之间唠嗑
  • Powerful Post Processing - 快速的原型验证,强大的后期处理自动化工作流
  • Wwise external voices - 让英雄语音可以pipe through,按类型依次播放
基于 External Source 的VO层级结构switch结构实际上是回答一系列问题:这个语音是系统语音么?是大招么 ?是无线电信号么?
不同的VO Sound SFX 对应了不同的优先级、混音总线、RTPC设置等。

Voice 数据
  • 3个平台,13种本地化语言
  • 每个平台 9,400 Voice WEMs(21个英雄), 160MB
  • 总共 6.2GB,370k文件
  • 平均文件大小 52k
Voice over IP场景:Reinhardt和Widowmaker在一队,Pharah在另一队。Pharah释放大招被Reinhardt开盾吸收伤害;Widowmaker躲在Reinhardt后面狙杀掉Rharah;Reinhardt冲刺撞在墙上。每一个英雄都根据不同的播报类型听到不同的语音事件。

Pharah 的视角看,备选语音列表:
[td]   
HeroStimulusBroadcastCategory
Heard?
ReinhardtShield activateFriendly + PlayerChatter
×
PharahJumpPlayerExerts
PharahRocket barrageEnemy + PlayerCritical
PharahDamage takenInvolved HeroesPain
×
PharahDeathAllDeath
WidowmakerEnemy killed - CritPlayerChatter
×
ReinhardtShield low healthPlayerChatter
×
ReinhardtCharge activateAllCritical
ReinhardtCharge unsuccessfulPlayerChatter
×
Widowmaker 的视角看,备选语音列表:
[td]   
HeroStimulusBroadcastCategory
Heard?
ReinhardtShield activateFriendly + PlayerChatter
PharahJumpPlayerExerts
×
PharahRocket barrageEnemy + PlayerCritical
PharahDamage takenInvolved HeroesPain
×
PharahDeathAllDeath
WidowmakerEnemy killed - CritPlayerChatter
ReinhardtShield low healthPlayerChatter
×
ReinhardtCharge activateAllCritical
ReinhardtCharge unsuccessfulPlayerChatter
×
Reinhardt 的视角看,备选语音列表:
[td]   
HeroStimulusBroadcastCategory
Heard?
ReinhardtShield activateFriendly + PlayerChatter
PharahJumpPlayerExerts
×
PharahRocket barrageEnemy + PlayerCritical
PharahDamage takenInvolved HeroesPain
×
PharahDeathAllDeath
WidowmakerEnemy killed - CritPlayerChatter
×
ReinhardtShield low healthPlayerChatter
ReinhardtCharge activateAllCritical
ReinhardtCharge unsuccessfulPlayerChatter
⑤ 巴夫洛夫反射
  • 最小的音效及语音变化(提高可记忆性)
  • 通过直觉判断
  • 朝标志性的声音迈进
  • 快速反应时间
  • 积极的情绪反应
ReferencesOverwatch - Game Audio Using Wwise (part 1/2)
Overwatch - Game Audio Using Wwise (part 2/2)
Overwatch - The Elusive Goal: Play by Sound on GDC pdf


绿肥红瘦www.gotvg.com 街机对战平台 拳皇97  ARC   FC MD SFC GBA PSP PS
既然来到人世间,注定会留下什么。
回复

使用道具 举报

签到天数: 1325 天

[LV.10]以坛为家III

1448

主题

9388

帖子

3万

积分

LV 15.会员

积分
30979

社区居民偶尔光临常驻会员忠实会员工蜂

沙发
发表于 2021-12-18 11:16:27 | 只看该作者
看来买个有dsp芯片之类的电竞耳机很有必要,稍微解放cpu
回复 支持 反对

使用道具 举报

签到天数: 1935 天

[LV.Master]伴坛终老

309

主题

3280

帖子

1万

积分

LV 13.会员

嗟乎斑鸠,日夜以行。宿命轮回,终归其位。

积分
12083

游聚十周年论坛为家在线达人社区居民社区平民略有小成

板凳
发表于 2021-12-18 15:26:56 | 只看该作者
牙哥是你负责审核帖子吧?给看下为啥我的帖子都需要审核才能看到,多谢。
000214A0-0000-0000-C000-000000000046
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

     
    Archiver|手机版|小黑屋|( 沪ICP备12034951号 )

GMT+8, 2024-4-27 03:44 , Processed in 0.133384 second(s), 31 queries .

© 2001-2011 Powered by Discuz! X3.1

快速回复 返回顶部 返回列表