Wwise Tour 2016 - Blizzard Overwatch (4 of 7) - Pinpoint Accuracy
发布时间 2016-08-25 20:10:15 来源
中英文字稿 
So then we come to the next pillar, which is the accuracy. So we kind of hear what is important now, right? Now we want to ask the question, like how can we help the player to guide them? Like where to look, where to go, how to anticipate stuff. And pretty much we use these three tools, obstruction of occlusion, distance and space, and 3D audio. I want to talk about that for a little bit. So our occlusion system, we struggled for a long time because we had a rather simple obstruction occlusion computational system, which was a raycast to do obstruction. But you can get unlucky, right? You can just hit that guy. And if there was an enemy behind it, it would be occluded. So we cannot drive too much through that, or you do randomized, or you do certain other things. Our implementation was always very simple and we ran into problems.
那么接下来我们谈谈另一个重要的支柱——精准度。现在我们已经了解了最重要的部分,对吧?接下来我们要问的是如何帮助玩家,引导他们在哪看、去哪以及如何预测情况。我们主要使用三个工具:遮挡阻隔、距离与空间、以及3D音频。我要稍微谈一下这些。关于我们的遮挡系统,我们曾经遇到很大的困难,因为我们有一个相对简单的遮挡计算系统,它是用光线投射(raycast)来进行遮挡判断的。但有时运气不好,你可能会直接碰到前面的物体,而如果物体后面有敌人,它就会被遮挡住。因此,我们不能过于依赖这种方法,也会使用随机化或者其他方法。我们的实现一直很简单,这也导致我们遇到了很多问题。
And then the occlusion, which means that a sound is completely encapsulated in a different area, we also never really had time to implement the fault system. So it was more an on off switch that we said than having any dynamic range on that sound. So we had some dynamic range here, but we couldn't drive it too much because it was sometimes random and we didn't have too much there. And that's pretty much what I just said. So it was pretty black and white. It was really hard to anticipate danger and to help the player to understand what is behind a wall and I don't have to care, and what is behind a palm tree and I have to care. And then we had this special scenario where a pawl, our sound supervisor, was constantly saying, I swear there was someone around me and I couldn't find them. And then we figured out again through Shadow Play that the person was just upstairs running around upstairs. And there was an obstruction obviously, but he was so close and we couldn't touch it too much for other scenarios that we were really not happy with that system.
然后是遮挡,也就是说,一个声音被完全包裹在另一个区域内,我们也没有时间去实现故障系统。所以实际上更像是一个开关,而不是给声音动态范围。因此,这里有一些动态范围,但我们无法过多调整,因为有时候会出现随机变化,而且我们在那里没有太多的控制。我刚刚说的也基本是这样。所以这就变得很黑白分明了。很难预测危险和帮助玩家理解哪些墙后面的声音可以不用在意,哪些在棕榈树后面的声音需要注意。然后我们遇到了一个特殊情况,我们的声音主管保罗一直说,“我发誓附近有人,但我找不到他们。” 后来我们通过Shadow Play发现,那个人其实就在楼上跑来跑去。虽然显然有阻碍,但他离得太近,我们在其他情况下又不能过多调整,所以对这个系统我们确实不满意。
At some point our lead engine programmers were showing technology that we were using for Overwatch for flight path data. And somehow all in the sound department said, that would be so cool if instead of shooting rays we know about the path that we would take to a sound. So that's kind of what we did. In this top down example, right, we hear the listener there as a sound, we do a raycast and then we ask this AI data for how long is the path? And there might be a past diversion of a few percentage. So if this is like a 20 meter raycast and it's like a few meters longer, then we get a value out of that. If it's six meters longer, we get a past diversion of 30% and we can take it to an extreme where we still do the simple raycast and then we do a path calculation. And if that suddenly is, let's say, 40 meters long, then we have a fully occluded sound. And Weise provides an obstruction and occlusion system. It lives on the project settings.
在某个时刻,我们的主要引擎开发人员展示了我们在《守望先锋》中使用的飞行路径数据技术。不知怎的,声音部门的人认为,如果能知道声音传播的路径而不是光线追踪,那就太酷了。所以我们就这么做了。在这个自上而下的示例中,我们把听者那里当作一个声音,进行光线投射,然后利用AI数据来询问路径有多长。而且路径可能会偏离几个百分比。如果这个光线投射是20米长,而路径则长了几米,我们就会得到一个数值。如果路径多出6米,我们将得到30%的路径偏离值。我们可以把它推向极端,仍然进行简单的光线投射然后计算路径。如果路径突然变成40米长,那我们就有一个完全闭塞的声音。而WISE提供了一个阻碍和闭塞系统,它是在项目设置中管理的。
And Scott will talk in a second about the pros and cons of that. What I'm getting at is we now have a really fluent value in a certain dynamic range where it helps us to anticipate threat coming towards you. Yeah, so utilizing this value, we started with the WISe project settings and we found that it worked really well, but it was hard to tune across different types of sounds. Again, since we sort of had that categorized organizational structure within WISe, we wanted to be able to tune things on a general level, like footsteps have a certain tuning or weapons have a certain tuning. But this being in the project settings didn't allow us that. We were able to maybe do some of that through a ratio. We were tuning in our tools, but it was very unwieldy and hard to manage and very bug-prone.
斯科特会在稍后讨论这个问题的利弊。我想表达的是,我们现在在一个特定的动态范围内有了一个非常流畅的数值,它帮助我们预判潜在的威胁。在使用这个数值时,我们从WISe项目设置开始,发现效果很好,但在调整不同类型声音时非常困难。由于在WISe中我们有一个分类的组织结构,我们希望能够在一个普遍的层面上进行调整,比如脚步声有特定的调节,武器声也有特定的调节。但是由于这些设置是在项目参数中,我们无法实现这一点。我们可能通过某种比例做了一些调整,虽然这样调整工具的确可行,但操作起来很麻烦、难以管理,而且容易出错。
Instead, we went back to RTPCs, which are our friend for this project, and we used probably way too many. So the occlusion is the same thing. It goes from zero, like zero occlusion here, to full occlusion. And we could drive all those same parameters. We could drive low pass filter, high pass filter, and volume, just like you can in the project settings version of occlusion. But then we could also drive other things, like we were driving aux sends. More or less sends to reverbs or more or less sends to our quad delay. That's also driven by that same thing. And again, now it's nice and easy to say, okay, footsteps have this type of curve, and it's driving all these different parameters here. But 3P Weapon Fire has a very different side of curves. So I'll show a couple of these things in the tool.
相反,我们回到了RTPCs,它们在这个项目中是我们的好帮手,而且使用的可能太多了。对于遮挡效果来说也是一样的。从零开始,也就是这里的零遮挡,到完全遮挡。我们可以控制所有相同的参数。就像在项目设置版本的遮挡中一样,我们可以控制低通滤波器、高通滤波器和音量。而且我们还可以控制其他的东西,比如我们在控制辅助发送量,发送到混响的量或发送到我们的四延迟的量也是由同样的东西控制的。同样,现在很容易设定,比如说,脚步声有这样的曲线,它能驱动这里的所有不同参数。但第三人称武器射击则有非常不同的曲线。我将在工具中展示其中的一些内容。
Which was that? Thanks. So under 3P Weapon Fire, you'll see that we're driving the high pass and low pass on this as well. So the more occluded it gets, you don't necessarily want it to just muffle it. You also want to lose some low frequencies. So that's these two curves. You're then driving the aux sends. So in this case, we're actually turning up the aux sends, because we like the way that sounded. And in this case, we kind of did this on different sounds in different ways. So we use it in various creative ways to drive different things. It did have one major drawback though. So especially in regards to the low pass filter.
那是什么?谢谢。在3P武器开火的情况下,你会看到我们也在调整高通和低通滤波器。随着被遮挡的程度增加,你不一定只是想让它变得模糊,还希望消除一些低频。这就是这两条曲线的作用。然后你可以调整辅助发送量。在这个例子中,我们实际上是提高了辅助发送量,因为我们喜欢这种声音效果。在不同的情况下,我们以不同的方式应用在不同的声音上,利用它进行各种创新性的调整。不过,它确实有一个主要缺点,特别是在低通滤波器方面。
So the other system was an independent low pass that didn't conflict with other low passes in the project. Where this one is part of an additive chain of low passes. So what I mean there is that certain sounds like carpet footsteps. We would take a concrete footstep and then just go duplicate that down to save on wave data. We would duplicate that and add 20 or 40 low pass to the sound. So you get a muffled version of the same footstep sound. When we would do that, and then this curve would come along. Those numbers are very sensitive. It's very, the really active values are between 20 and maybe 50, 60.
另一个系统是一个独立的低通滤波器,与项目中的其他低通滤波器没有冲突。而这个系统则是一个低通滤波器的叠加链的一部分。我的意思是,对于某些声音,比如地毯上的脚步声,我们会先录制一个混凝土地面的脚步声,然后复制它,以节省波形数据。我们会对复制的声音添加一个20或40的低通滤波,这样你就能得到一个模糊的脚步声版本。当我们这样操作时,这些曲线就会出现。需要注意的是,这些数值非常敏感,真正有效的数值范围大约在20到50或60之间。
Where like your listening curve is. And this would come along and all of a sudden you'd have a carpet footstep and you'd go barely behind a wall and it would disappear entirely. Because these numbers would add together and you wouldn't be able to hear the sound in that case. So what we had to do actually is we had to go through all these carpet footstep sounds and put in real time EQ effect plug-ins to break this relationship between these two different types of low passes that we wanted to drive.
这段话的大致意思是:当你在某个特定位置时,你的听觉曲线就像这样。当一个脚步声从地毯上传来时,你走到一个墙后的某个地方,这个声音会完全消失。因为这些声音的频率会叠加在一起,而你就听不到声音了。为了解决这个问题,我们实际上需要对所有这些地毯脚步声进行处理,实时加入EQ效果插件,以打破这两种低频之间的关系,使我们能够呈现我们想要的声音效果。
Alright, let's go on back. So overall I think this is maybe one of the most powerful features we added to the game. As soon as we put it in there was this really amazing feeling of safety. You would go into a cubby hall and everything would just get quiet and muffled. And you would hear clearly one person walk in the room or when you would go back out the whole mix would sort of unfold. And it did it in a smooth transitional way that felt very natural. So you could almost play by listening to the walls a little bit.
好的,让我们回去谈谈。总体来说,我认为这是我们给游戏添加的最强大的功能之一。我们一加入这个功能,就能够感受到一种非常惊人的安全感。你走进一个小隔间时,周围的一切都会变得安静和模糊。你清楚地听到一个人走进房间的声音,或者当你走出去时,所有的声音都会逐渐展开。而且这种过渡是非常流畅自然的。你几乎可以通过倾听墙壁来玩游戏。
You would kind of go around and as you would come to this curve you would hear this blossoming. And it would help you ignore enemies that can't hurt you. So they may be physically close but this guy who's right under the stage for example has to walk over there and around and up to come get me. Well even though they're physically close we don't really want to hear the sound that loud because of the path. So we have some examples here. So here's footsteps and weapons. You'll hear a widow maker here just walk around the corner and back. And just notice how the footsteps have very different curve from the weapon.
你会绕着走,当走到这个弯道时,你会听到一种逐渐增强的声音。这能帮助你忽略那些无法伤害你的敌人。比如说,有个敌人虽然物理上离你很近,但是由于他必须绕过舞台走一圈才能到达你这里,所以实际上并不会马上对你构成威胁。这种情况下,我们并不希望听到很大的声音,因为敌人的实际路径很远。这里有一些例子,比如脚步声和武器声。你会听到一个猎空者(Widowmaker)走过转角又折返回来的声音,注意一下,脚步声和武器声的音量变化曲线是很不同的。
And you'll be able to anticipate when she's going to be visible and not. So you can still hear that weapon but you can't hear footsteps at all. So you can basically hear how far away she is from that location. And you can use that information to anticipate her coming and to react to her. So the next video example is of a full battle. So this will show when I go back into the cubby hole how everything kind of dims down and gets a lot quieter and you feel a sense of safety. And you can see the wind and the wind and the wind and the wind and the wind and the wind and the wind and the wind and the wind.
你将能够预知她何时可见,何时不可见。你可以听到她的武器声,但完全听不到脚步声。因此,你基本上能判断她离那个位置有多远。你可以利用这些信息预判她的到来并作出反应。接下来的示例视频是一场完整的战斗场景。这将展示当我回到小藏身处时,一切如何变得暗淡和安静,让人感到一种安全感。你可以看到风的变化。
You'll even notice if you listen closely that it's high noon that line had a very distinct curve that more or less ignored the walls because those are so key to the gameplay. Hearing him say that that's his ultimate ability. When when the McCree cowboy says that he had basically one shot kill anyone in sight. So as soon as you hear that line you had to react and hide and react accordingly. We purposely avoided some of the occlusion values on things like ultimate ability lines and sounds so you could react to them regardless.
如果你仔细听,会注意到 "正午到来" 这句话有一个非常明显的弯曲音调,基本上忽略了墙壁的阻隔,因为这些声音对游戏玩法非常重要。当牛仔McCree说出这句话时,那是他的终极技能,基本上可以一击必杀视线内的任何人。所以,一旦听到这句台词,你就必须马上反应,躲藏并做出相应的反应。我们故意避开了某些声音阻隔设置,像是终极技能的台词和声音,这样你无论如何都能听到并反应。
Yeah, I think there is some stuff you want to talk about about just in general. Yeah, so in general sounds in the game we did we took a approach that is becoming obviously very common, especially with the proliferation of wise. We layered our sounds based on distance. So you hear like the distance layers when you're far away and then the close layers would come in and the mech layer would come when you're right on top of it. We do indoor outdoor tail switching. We're doing filtering of low pass and high pass filters over distance. We're even utilizing this feature called focus and spread which we co-developed with wise which actually they developed and we just asked for it. But the spread was essentially a way to try and make things very stereo but still pan around the field.
是的,我觉得你有一些想要谈论的话题。在游戏中,我们采用了一种现在非常普遍的声音处理方法,特别是在wise(Wwise)这种工具日益普及的背景下。我们根据距离对声音进行了分层:当你远离声音源时,会听到远距离的声音层,而当你靠近时,会听到近距离的声音层和机器人的声音层。我们还进行室内外尾音切换,并根据距离应用低通和高通滤波器过滤声音。我们甚至使用了一个名为“焦点和扩展”(Focus and Spread)的功能,这是我们与wise共同开发的,实际上主要是他们开发的,而我们只是提出了这个需求。这个扩展功能的主要目的是使声音在立体声的情况下仍能在声场中自由移动。
We ended up asking for this feature but didn't end up using it as much as we thought because the pinpoint accuracy of sounds was kind of took precedence over what we would have aesthetically liked. And that's kind of a thing that I want to bring across. You know, through most of the other games in my career it was always aesthetics above all and you wanted to have a cinematic huge feel. But in this game it was very much like, okay, it may not sound cinematic to have this wide stereo spread but it's better for the game to say this person's right there. And so we'd narrow things in despite our instincts I suppose. And then finally the last thing I want to talk about in this slide is the reverb and quad delay. We use that to place things in the world and we have some good examples of that.
我们最后还是请求了这个功能,但并没有像我们预期的那样频繁使用,因为声音的精准度反而优先于我们在美学上的偏好。这是一件我想要强调的事情。在我职业生涯的绝大多数游戏中,美学总是被放在首位,你总是希望有一种电影般的大气感。但在这个游戏中,我们更多地考虑到游戏的需求,可能听起来不太像电影感的宽广立体声,但能更准确地指示某个人就在那儿。因此,尽管我们的本能可能会反对,我们还是选择了通过缩小声音范围来提高游戏体验。最后,我想在这个幻灯片中讨论的是混响和四重延迟效果,我们使用它们来将声音放置在游戏世界中,并且有一些不错的实例可以说明。
So this is a screenshot top down of our character Zarya. She's shooting a beam out in front of her so you have some reference point. What we do is we actually ray trace out to each of the walls that are surrounding her and get an idea of how far away these walls are and what type of space, you know, distance wise she is in. So then we use these values and we made a custom plugin with the help of a contractor. And we took four delay lines into a plugin and allowed it to pan to each of the surround speakers front left, front right, rear left, rear right. And when we drove all these parameters via RTPC based on how close a wall was to you.
这是一张从上往下的截图,展示了我们的角色Zarya。她正在向前方发射光束,这样你就有一个参考点。我们的做法是对围绕她的各个墙壁进行光线追踪,以了解这些墙壁有多远,以及身处的空间距离。这些数值被用于一个与承包商合作开发的定制插件。我们在插件中加入了四个延迟线,使其能够向四周的音箱进行声音移动,包括前左、前右、后左和后右。当墙壁距离你越近时,我们通过RTPC来调整所有这些参数。
So this kind of gave an automatic early reflection type of simulation not exactly 100% real world but close enough that it felt like you were able to do it. It felt like you were in the space and we could run many sounds through this plugin through the aux bus structure. So I'll show you some examples of the RTPCs that we set up on this because it drives a ton of different data through to get the sound. So if I go look up here and I find our aux buses under 2D audio and I expand and find our quad delay. We have two different versions. We have one for loud sounds that would echo in the environment or quiet sounds like footsteps that wouldn't echo as far.
这个方法提供了一种自动的早期反射模拟,这种模拟虽然不是百分之百的真实世界,但已经足够逼真,让人感觉自己仿佛置身其中。我们可以通过辅助总线结构在这个插件中运行许多声音。我会展示一些我们为此设置的RTPC(实时参数控制)示例,因为它可以通过大量不同的数据来驱动声音效果。如果我在这里查看并找到2D音频下的辅助总线,并展开找到我们的四声道延迟。我们有两个不同的版本:一个是用于环境中会产生回声的大声响,另一个是用于如脚步声这样不会产生较大回声的小声音。
And then the effect is driven by all of those parameters. So if I go over to the RTPC on this and I normally sort these by some notes we put in here so we could see. So like there's like the three delay taps and notch frequencies. And if I select all these, that's all the parameters that are being driven based on just those four distances. Some of these are delay times, some of these are volumes, some of these are low pass or high pass of that individual delay line. There's a notch frequency that we're driving. And all of these things basically make it so there's a bright reflection. If it's close, if this wall is close here, I'll get bright reflections from the side.
然后,这个效果是由所有这些参数驱动的。所以,我如果查看这个RTPC(实时参数控制),通常会按照我们在这里添加的备注进行排序,这样我们可以看到。比如说,有三个延迟分路和多个凹槽频率。如果我选择所有这些,那就是基于这四个距离所驱动的所有参数。其中一些是延迟时间,有些是音量,还有一些是单个延迟线的低通或高通滤波。我们还在驱动一个凹槽频率。所有这些基本上都是为了营造出一种明亮的反射效果。如果这面墙离得近,我就会从侧面得到明亮的反射。
If that wall over there is far away, I get a more muted dull echo type of reflection from that distance. So there's some video examples of this that I'd love to show you. Where'd it go? Yeah. Okay, so this starts with only the effect. So you won't hear any dry signal. So it's going to sound a little strange. And then you bring, we'll see the same thing again with the dry signal brought in. And you'll see how it puts a center space into the sound. So the only thing you're hearing there is this stereo version of that quad delay plug in. So you can hear those distinct, distant slapback delays.
如果那边的墙很远,我会从那个距离听到更柔和、沉闷的回声。所以这里有一些视频例子,我很想给你展示。它去哪了?好的,这从只有效果开始,所以你不会听到任何干声。因此,声音会有点奇怪。然后我们会再看一次相同的内容,但加上干声,你会发现声音中加入了一个中心空间。所以你听到的唯一东西是这个四重延迟插件的立体声版本。这样你就能听到那些清晰的、遥远的回声效果。
And we don't have to modulate there, do any authoring in that. It's kind of set up once we worked with the curves and the RTPCs a lot. But once it was set up, we don't have to change this from a level to level basis. And then I also want to talk a bit about Dolby Atmos. We were fortunate enough to work with Dolby and Audio Kinetic to bring this for the, to be the first game to use Dolby Atmos for headphones. It was something that came about at GDC of 2015 where we heard a demo of their HRTF technology where they took an atmos mix of our cinematic and rendered it into a headphone mix.
我们不需要在那方面做任何调节或创作。一旦我们与曲线和RTPCs(实时参数控制)一起进行了大量工作并设置好之后,就不需要在每个关卡之间做修改。此外,我还想谈谈Dolby Atmos。我们有幸与Dolby和Audio Kinetic合作,首次在游戏中使用Dolby Atmos进行耳机输出。这始于2015年的游戏开发者大会(GDC),我们在那里听到了他们HRTF(头相关传输函数)技术的演示,他们把一段大气声效混音转成耳机的音频效果。
And I heard it, and in the video, there was a widow maker that grapples up to the edge and shoots down at the scene. And you could hear in this headphone mix clear behind and up to the right. And I was like, okay, I could hear her there. That'd be great to work with in the game. So we started talking to him around that time and it was a lot of back and forth. We tried different means of implementing Listen to Wise. And I think we came up with something that's really great. And I could show you a bit of how that's actually set in the engine because we talked about the bus structure earlier.
我听到了,在视频中,有一个“寡妇制造者”角色抓住边缘,然后向下方射击。在耳机中听得很清楚,声音来自后方偏右的位置。我心想,好,我能听到她的声音,这对于游戏合作来说是个不错的体验。于是我们开始在那段时间与他沟通,来回讨论了很多。我们尝试了不同的方法来实现 Listen to Wise。我认为我们想出了一个很出色的解决方案。我可以向你展示一下这个是如何在引擎中设置的,因为我们之前讨论过总线结构。
So this division between 2D and 3D audio was done right before we shipped for that very reason. Right here is the Dolby headphone virtualizer. And this bus is set to, in real time when the game flips its mode on, this bus becomes a 12, or sorry, or 7.1.4 bus configuration. That then that gets fed to the virtualizer and the headphone mix, you know, you can hear things pan around, above, around, and behind you. For me it's been a huge bonus in playing the game. Once, especially, like it's cool right off the bat, but as you get used to it, you can just pick up all these little details and you're like, oh he's right above me. You just know that he's there or this guy's behind me.
所以,我们就在游戏发布前,将2D和3D音频做了区分,目的正是如此。这里的设备是Dolby耳机虚拟化器。当游戏切换模式时,这个总线会在实时处理中配置成12声道或者7.1.4声道。然后,这些音频会被发送到虚拟化器,并通过耳机混音,你就能听到声音在你周围、头顶和身后移动。对我来说,这在游戏中是一个巨大的优点。一开始就觉得很酷,但一旦适应,你就能捕捉到所有这些细节,比如感觉他就在我头顶上,我就知道他在那里,或是某个人在我身后。
And to get that through headphones that anyone owns, by the way, this is regular stereo headphones. You don't need to buy anything for this to run. It's best if it's an analog jack, because that way you don't have any virtualization going on. If you have a 7.1 or 5.1 pair of headphones, you should turn off that virtualization to use this feature. But it's been a really great thing for us. It's helped with that goal of trying to play by sound a lot. Yeah, and then it was a whole pillar of pinpoint accuracy, right? So these were the three things we talked about, occlusion obstruction, with a middle one, quad delay, and then the atmosphere.
翻译成中文,尽量易读:
顺便说一下,通过每个人都有的耳机来实现这个功能,这些是普通的立体声耳机。你不需要购买任何额外的设备来运行这个功能。最好使用模拟插孔耳机,因为这样就不会有虚拟化的影响。如果你有7.1或5.1的耳机,需要关闭那个虚拟化功能来使用这个特性。但这对我们来说实在太好了。这帮助我们实现了通过声音进行游戏的目标。嗯,然后它成为了精准定位的一个重要支柱,对吧?我们谈论的三件事是遮挡障碍,中间的四重延迟,然后是环境氛围。