The Acoustic Systems of Battlefield 6
Speaker: Gonzalo, Lead Technical Sound Designer, MP & Core Systems
一、开场与背景 · Introduction & Context
This is going to be a bit more of a technical talk. I'm going to nerd out about a lot of different systems and a lot of different things we did to make some of the game sound a lot cooler. BF6 was one of the projects in the franchise that has had the most improvements to our acoustic systems. So this is a bit of a speedrun and deep dive into all of those systems.
这将是一个偏技术性的演讲。我将深入讲解很多不同的系统,以及我们为让游戏部分声音听起来更酷所做的很多不同的事情。BF6是该系列中对声学系统进行最多改进的项目之一。所以这有点像是对所有这些系统的快速通关加深度解析。
My name is Gonzalo. I was the lead technical sound designer on MP and core systems for Battlefield 6. And even though I will be speaking in the first person during this talk, I did not do this alone. This is the work of an incredible team. Each one of us has made an invaluable and immeasurable contribution to the soundscape of this project. Without every single one of them, I wouldn't be here speaking on behalf of all of us.
我叫Gonzalo,是《战地6》多人模式与核心系统的首席技术音效设计师。尽管我在这次演讲中将以第一人称来叙述,但这并不是我一个人完成的。这是一个令人难以置信的团队的工作。我们每一个人都对这个项目的声景做出了不可估量的贡献。没有他们中的每一个人,我就不会站在这里代表大家发言。
And of course, this is not the first Battlefield — no matter what the title says. We've been building and building upon these projects, and every step that we've taken before, every mistake, every win — it all adds up together. So we are essentially starting from a very advantageous position. We are standing on the shoulders of giants, as the saying goes.
当然,这不是第一款《战地》——不管标题怎么说。我们一直在这些项目上不断构建,我们之前走过的每一步、每一个错误、每一次胜利——都累积在一起。所以我们本质上是从一个非常有利的位置出发的。就像那句话所说:我们站在巨人的肩膀上。
二、什么是声学,为什么重要 · What Are Acoustics and Why Do They Matter
Acoustics — the nerdy answer is it's the study of mechanical waves. But let's not care about that now. All we care about is: how does sound work? How does it travel through space? How does it interact with the world? And even more importantly than any of that — how do we perceive it? Because without our ears, there's no sound. It's just pressure.
声学——书呆子式的答案是对机械波的研究。但现在我们不关心那个。我们关心的是:声音是如何工作的?它如何在空间中传播?它如何与世界互动?比以上任何问题都更重要的是——我们如何感知它?因为没有我们的耳朵,就没有声音,那只是压力。
Acoustics is the study of a variety of real-life phenomena that we are all very familiar with, because we interact with them every day — from reflection, diffraction, scattering, to absorption. All of that is intimately familiar to us. And of course, these are essentially standard things in modern video game sound design. There are tools to achieve this in basically every middleware and every game engine.
声学是对各种现实生活现象的研究,我们都非常熟悉,因为我们每天都在与它们互动——从反射、衍射、散射到吸收,所有这些对我们来说都是非常亲密的熟悉感。当然,这些在现代视频游戏声音设计中基本上都是标准的东西,几乎每个中间件和每个游戏引擎中都有工具来实现这些。
So why do we have to find our own path? Why do we have to push for our own tools and not just use off-the-shelf ones? Well — every road leads somewhere, and this is the road we took.
那么为什么我们必须找到自己的道路?为什么我们必须推动自己的工具而不是直接使用现成的?嗯——每条路都通向某个地方,这就是我们走的路。
三、为什么要改进声学系统:三大理由 · Why Improve: Three Reasons
Before starting any journey, it's important to understand why you're on that journey in the first place.
在开始任何旅程之前,重要的是先理解你为什么要踏上这段旅程。
游戏性 / Gameplay
Top of the list is gameplay. Battlefield is a game where split-second decisions can make all the difference. If your enemy sees you before you see them, you're gone — unless their aim is as bad as mine. So we have to give the players as much information as possible. But too much information is counterproductive — too much information is just chaos. We need to be able to control the chaos. Acoustics is a way to allow us to give players all of these things. Positionality and location — how do we perceive where someone is — and getting an early reference of what that should sound like is really key.
首要的是游戏性。《战地》是一款毫秒级决策可以决定成败的游戏。如果你的敌人在你发现他们之前就发现了你,你就完了——除非他们的准度和我一样差。所以我们必须给玩家提供尽可能多的信息。但太多的信息适得其反——太多信息只是混乱。我们需要能够控制这种混乱。声学是让我们给玩家提供这一切的一种方式。方位感和位置感——我们如何感知某人在哪里——以及早期建立它应该听起来什么样子的参照,是真正关键的事。
沉浸感 / Immersion
The key difference between movies and video games is interaction. Players' actions need to have consequences in game, and every action needs to have a reaction. So if a player blows up a house, they should not sound like they're still indoors — they should sound like they're outdoors. We can use acoustics to reinforce all of this. We coined a term called "intuitive readability" — if we can make things close to reality, the player doesn't need to learn a new reality. It just is the reality.
电影和视频游戏之间的关键区别是互动性。玩家的行动需要在游戏中有后果,每个行动都需要有反应。所以如果玩家炸毁了一栋房子,他们的声音不应该还像是在室内——他们应该听起来像是在户外。我们可以用声学来强化所有这些。我们创造了一个叫做"直觉可读性"的术语——如果我们能让事物接近现实,玩家就不需要学习一个新的现实,它就是现实。
美学 / Aesthetics
Games are a form of art, not just simulators. We can use acoustics to reinforce our art style. Battlefield is all about dynamics. To make the big moments sound big, we need ways to make the small moments small. So when you're indoors with no one around, let's actually lower the mix, control it down, make sure everything is out of the way. And when you go outside into full chaos, you can actually feel the chaos — because you had a tiny moment of safety first.
游戏是一种艺术形式,而不仅仅是模拟器。我们可以用声学来强化我们的艺术风格。《战地》的一切都是关于动态的。要让大时刻听起来很大,我们需要有办法让小时刻听起来很小。所以当你在室内、周围没有人时,让我们实际上降低混音,控制它,确保一切都不碍事。而当你走到外面进入全面混战时,你才真正能感受到那种混乱——因为你之前有过一个微小的安全时刻。
四、为什么需要自研方案:三大挑战 · Why Custom Solutions: Three Challenges
规模 / Scale
We have large maps — one of the largest maps in the franchise, which is the Battle Royale map. But we also have tight, dense maps like the Siege of Cairo. We have single-player levels, levels made specifically for Battlefield Portal, close-quarters combat — all of this has very different needs in terms of how acoustics workflows should behave. On top of that, we're also looking at the future. When developing tech, we cannot just think of this project — we have to think of the next one, and the DLC, and the one after that. Because we don't want to have to iterate on these things from scratch every single project. So because of this scale, we very quickly threw away any type of manual process. I have a level audio team that has a lot of work to do to make the levels sound as incredibly detailed as they can, and part of my role with tech audio is to improve their workflows — not just add tasks to their to-do lists.
我们有大型地图——系列中最大的地图之一就是大逃杀地图。但我们也有紧凑密集的地图,比如开罗围攻。我们有单人关卡、专门为战地传送门制作的关卡、近身作战——所有这些在声学工作流程应该如何表现方面有着非常不同的需求。在此之上,我们还在展望未来。在开发技术时,我们不能只考虑这个项目——我们必须考虑下一个项目、DLC、以及再下一个项目。因为我们不想每个项目都要从头迭代这些东西。所以由于这种规模,我们很快就抛弃了任何类型的手工流程。我有一个关卡音频团队,他们有大量工作要做,让关卡听起来尽可能令人难以置信地详细,而我在技术音频方面的职责之一就是改善他们的工作流程——而不是只是往他们的待办列表上添加任务。
破坏系统 / Destruction
We have a lot of destruction in BF6, which is super cool. But through some research, we discovered that if you flatten a building, it kind of changes its acoustics. And what that means on the technical side is that the permutations of every little bit of structure you can have on a building — a door open, a window destroyed, a wall broken, no ceiling — are quite high. That's just one building. An entire map? Way too many permutations. That makes any sort of pre-baked solution that happens at build time far too memory-intensive. That means we're only left with one option: we just have to do it live.
我们在BF6中有很多破坏,这非常酷。但通过一些研究,我们发现如果你把一栋建筑夷为平地,它的声学特性会随之改变。从技术层面来说,这意味着一栋建筑上每一小块结构的排列组合——一扇开着的门、一扇被摧毁的窗户、一堵破损的墙、没有天花板——数量相当多。这只是一栋建筑。整个地图呢?排列组合太多太多了。这让任何在构建时预先烘焙的解决方案内存消耗过于巨大。这意味着我们只剩下一个选择:我们必须实时处理。
战地传送门 / Portal
Portal gives players the opportunity to shape the game and change it in ways we have no ability to foresee — and that is super exciting. But we want those experiences to still sound like Battlefield, still feel like Battlefield. So our systems need to be able to cope with whatever crazy things our users are creating.
传送门给玩家提供了塑造游戏和改变它的机会,这些改变我们无法预见——这非常令人兴奋。但我们希望那些体验仍然听起来像《战地》,感觉像《战地》。所以我们的系统需要能够应对我们用户创造的任何疯狂事物。
五、总体游戏计划 · The Game Plan
烟雾与镜子 / Smoke and Mirrors
We have a word internally which we say so much that it just has its own meaning. "Smoke and mirrors" is by far the most common one. It basically runs down to this quote: why try to simulate the sound of a chair falling in a room when you can just pick up a chair, throw it in the room, record it — done? No need to do any extra work on top of that. Except we're not a chair-throwing game. We're a Battlefield game. So we just record a lot of things. There's no way to make a 50-caliber gun sound like it's in a canyon better than just firing an actual 50-caliber gun in an actual canyon. That's just the truth.
我们内部有一个词,我们说得如此之多,以至于它有了自己的含义。"烟雾与镜子"是迄今最常用的一个。它基本上归结为这样一句话:为什么要试图模拟一把椅子在房间里落下的声音,而你可以直接拿起一把椅子,把它扔进房间,录下来——完成?不需要在此之上做任何额外的工作。除了我们不是一个扔椅子的游戏,我们是一个战地游戏。所以我们只是录制很多东西。没有什么方法能比在峡谷里实际发射一把50口径的枪,更能让那把50口径的枪听起来像是在峡谷里。这就是事实。
量身定制 / Bespoke
First we find generic solutions for generic sounds, and then we can focus all of our attention on the things that really, really matter for the Battlefield experience. We have defined our key pillars: soldier, weapon, and ambience — that's the mix trinity of Battlefield. Vehicles throw a tiny bit of diversion to the plan in that a vehicle essentially replaces a soldier, but the same balance still exists. These are the things we really want to keep in mind when doing all of our acoustic improvements.
首先我们为通用声音找到通用解决方案,然后我们可以把所有的注意力集中在真正、真正对战地体验重要的事情上。我们已经定义了我们的关键支柱:士兵、武器和环境——这是战地的混音三位一体。载具对计划投入了一点点偏差,因为载具本质上取代了士兵,但同样的平衡仍然存在。这些是我们在进行所有声学改进时真正想牢记的事情。
循环复用 / Recycle and Reuse
Most of these features start by gathering data. Once you have that data, just use it for as many things as possible. It's literally free.
大多数这些功能从收集数据开始。一旦你有了那些数据,就尽可能多地使用它。这实际上是免费的。
六、遮挡系统的演变 · The Evolution of Obstruction
遮挡V1 / Obstruction V1
We've had obstruction for the longest time. We were using a system called Obstruction V1 — very simple: just raycasts from the listener to the sound source. If they hit something along the way, the sound is obstructed. Simple. Works. So why change?
我们很长时间以来都有遮挡系统。我们使用一个叫做遮挡V1的系统——非常简单:只是从听者到声源的射线检测。如果它们在途中击中了什么东西,声音就被遮挡了。简单,有效。那为什么要改变?
Well, there are always edge cases with any system. Edge cases here could be something like a soldier next to a wall — their sound sphere would actually get clipped through the wall. Or a tank over a bridge — because a tank is such a large sound source, you'd get the tank's sphere coming through below the bridge. Or a bullet impact that's naturally inside of a wall, so it would always be slightly obstructed. Or just a grenade exploding on the floor — it would be obstructed by the floor geometry itself.
好吧,任何系统都有边界情况。这里的边界情况可能是:一个士兵站在墙边——他们的声音球体实际上会穿过墙壁。或者一辆坦克在桥上——因为坦克是如此大的声源,你会得到坦克的球体从桥下穿出来。或者一个自然在墙体内部的子弹冲击,所以它总是会稍微被遮挡。或者仅仅是一个在地板上爆炸的手雷——它会被地板几何形状本身所遮挡。
But that's not even the worst part. The worst part is that this system runs one raycast per frame per sound. That means it would take around 10 frames before we got the full obstruction information into the sounds. For transient sounds like gunfire, explosions, and bullet impacts — that would be too late. All the main important bits of the sound — all the transients — were already heard in an unobstructed way. Which means it's basically the same as having no obstruction at all.
但这甚至不是最糟糕的部分。最糟糕的是这个系统每帧每个声音只运行一次射线检测。这意味着需要大约10帧才能将完整的遮挡信息传入声音。对于像枪火、爆炸和子弹冲击这样的瞬态声音——那已经太晚了。声音最重要的部分——所有的瞬态——已经以未遮挡的方式被听到了。这意味着基本上和没有遮挡一样。
So we sat down, looked at what was good about it and what was bad. It was reliable — we knew what we were dealing with, we'd shipped 16 Battlefield games with this stack. Okay, let's literally see if we can make it better.
所以我们坐下来,看看它哪里好,哪里不好。它是可靠的——我们知道我们在处理什么,我们用这套系统发布了16款战地游戏。好,让我们看看是否能把它做得更好。
遮挡V2 / Obstruction V2
The next idea was Obstruction V2 — great name, I know. This is essentially the brute-force approach: a sphere of about 120 raycasts around the listener at a bunch of different configurable angles. If the sound came from over there, I'd already have a raycast pointing in that direction, so I'd already have the information ready. It was fast — the information was already there. But there was a cost. No matter how much we tuned the raycasts or how many we threw at the problem, it was never enough. The more distance you get from the sound source, the more structural holes would show up. There were sounds that were completely indoors that would sound outdoors, and sounds that were outdoors that would sound indoors. We put this in for a bunch of time to test it, but we were getting reports that everything was strongly occluded, like everything was underwater. So we took it out.
下一个想法是遮挡V2——我知道这是个很棒的名字。这本质上是暴力方法:在听者周围有一个大约120条射线的球体,以一堆不同的可配置角度分布。如果声音从那边过来,我已经有一条指向那个方向的射线,所以信息已经准备好了。它很快——信息已经在那里了。但有一个代价。无论我们如何调整射线数量或向问题投入多少射线,永远都不够。你距离声源越远,结构性漏洞就会越多地出现。有些完全在室内的声音听起来像在室外,有些在室外的声音听起来像在室内。我们把它放进去测试了很长时间,但我们收到报告说所有东西都被强烈遮挡,就像所有东西都在水下。所以我们把它取出来了。
实时混响矩阵 / Live Reverb Matrix (LRM)
Then sometime later, we heard that another team at EA was working on a similar system. That's the beauty of working at a big studio — you get to cherry-pick cool tech from other projects. They had a sphere of raycasts on the listener like we did, but they also had a different sphere of raycasts on other players around the map. That gives us a lot more information about the sounds. It's called LRM, or Live Reverb Matrix — you can tell it wasn't named by us because it's actually sensible.
后来某个时候,我们听说EA的另一个团队正在开发一个类似的系统。这就是在大型工作室工作的好处——你可以从其他项目中挑选酷炫的技术。他们像我们一样在听者身上有一个射线球体,但他们在地图周围的其他玩家身上也有一个不同的射线球体。这给了我们关于声音的更多信息。它叫做LRM,即实时混响矩阵——你可以看出这不是我们命名的,因为它实际上很有道理。
We brought it in, hooked it up to our occlusion system. By far the fastest. It was detailed — we could have some behaviors and different controllables. It was quite reusable. And it allowed us to do bespoke implementations for a lot of sounds, because we had information about specific zones of the map that we normally wouldn't have. But it was complex. This was a lot more things to set up. And even though it was quite good for soldiers, it was not the best for non-soldier sounds. If you threw a grenade into a room and there was no one there, it still didn't have any information about that room, and you'd get into the same problems as Obstruction V2.
我们把它引入,将其连接到我们的遮挡系统。迄今为止最快的。它很详细——我们可以有一些行为和不同的可控项。它相当可复用。它允许我们对很多声音进行量身定制的实现,因为我们有关于地图特定区域的信息,这些是我们通常不会有的。但它很复杂,需要设置的东西多得多。而且尽管它对士兵来说相当好,但对非士兵声音来说并不是最好的。如果你把一颗手雷扔进一个房间而里面没有人,它仍然没有关于那个房间的任何信息,你会遇到和遮挡V2相同的问题。
遮挡V1+升级版 / Upgraded V1+
So back to the drawing board. We went back to V1 and decided: let's just upgrade it — make V1+. Same as V1, plus some custom shapes, some offsets, some bidirectional raycasts — I'll come back to why — the possibility of adding more than one raycast per frame, and this would be customizable per sound. Sounds that needed it had it; sounds that didn't need it wouldn't hog resources from elsewhere. And bespoke behaviors per sound — how a sound feels after it's obstructed is 100% customizable with this system.
所以回到了绘图板。我们回到了V1,决定:让我们只是升级它——制作V1+。与V1相同,加上一些自定义形状、一些偏移、一些双向射线——我稍后会回来讲为什么——以及每帧添加多于一条射线检测的可能性,这可以按声音定制。需要它的声音有它;不需要它的声音不会从其他地方占用资源。以及按声音定制的行为——声音被遮挡后的感觉在这个系统中是100%可定制的。
Suddenly — far fewer edge cases. A soldier behind a wall? Custom shape fixes it. An explosion in the ground? An offset fixes it. Same with bullet impacts. Same with a tank on top of a bridge. It works, it was fast when it needed to be fast — because we could assign a bullet impact to only ever care about the first raycast and nothing else, or a vehicle to have six raycasts on the first frame but then one raycast per frame from there on. All of this customizability meant far fewer edge cases. The downside: it is more complex, it needs more understanding. So we made a conscious decision to only implement this on sounds that actually matter.
突然间——边界情况少多了。一个士兵在墙后面?自定义形状解决了它。地面上的爆炸?偏移解决了它。子弹冲击也是如此。坦克在桥上也是如此。它有效,在需要快速时它很快——因为我们可以将子弹冲击指定为只关心第一次射线检测,其他什么都不管;或者一辆载具在第一帧有六次射线检测,但从那里开始每帧只有一次。所有这些可定制性意味着边界情况少得多。缺点是:它更复杂,需要更多的理解。所以我们做了一个有意识的决定,只在真正重要的声音上实现这个系统。
七、遮蔽系统 · Occlusion
Occlusion is essentially similar to obstruction, but think of it like there's not just one thing between me and the microphone — there are one or two rooms in between. Why does it matter? If something is fully occluded, it means it's 100% not dangerous — they can't shoot you, they can't throw a grenade at you. There are plenty of other things closer to you that are more dangerous. It's immersive because that's what happens in real life. And aesthetically — if you saw the previous talk, bass is something we use very carefully at DICE. If you want something to sound big, you write low frequencies into it. But if you spend all that currency and spread it everywhere, nothing sounds big. You need to only spend it on the things that really matter. We can use acoustics and occlusion as a way to reduce these frequencies and keep the bass reserved for vehicles and explosions — the things that are really impactful to your experience.
遮蔽本质上类似于遮挡,但可以这样想:不只是我和麦克风之间有一样东西——之间有一两个房间。为什么这很重要?如果某样东西被完全遮蔽,意味着它100%不危险——他们不能射击你,不能向你扔手雷。离你更近的危险东西多的是。它很有沉浸感,因为这就是现实生活中发生的事情。在美学上——如果你看了上一个演讲,低频是我们在DICE非常谨慎使用的东西。如果你想要某样东西听起来很大,你给它加入低频。但如果你花光了所有那些"货币"并把它散布到各处,什么都不会听起来很大。你需要只把它花在真正重要的事情上。我们可以利用声学和遮蔽来减少这些频率,把低频保留给载具和爆炸——那些对你的体验真正有影响的东西。
How do we get this? Remember the bidirectional raycasts from earlier — let's reuse them. We get hits coming from both sides, so we can actually scale and find what the thickness of the obstruction is. We use that value as a simple 0-to-1 arc as a method of scaling obstruction behaviors. On top of obstruction we also use a lot more complex scenarios — vehicles get occluded differently based on whether the listener is indoors or outdoors. It allows us to do these bespoke behaviors.
我们如何实现这个?还记得之前提到的双向射线——让我们重复使用它们。我们从两侧都得到击中点,所以我们实际上可以缩放并找出遮挡的厚度。我们将该值用作一个简单的0到1的弧线,作为缩放遮挡行为的方法。在遮挡之上,我们还使用了更多复杂的场景——载具根据听者是在室内还是室外以不同方式被遮蔽,这让我们能够实现这些量身定制的行为。
八、早期反射 · Early Reflections
You clap, you hear it reflect back from the wall — very basic. We already have a sphere of raycasts. Yes, even though we're not using it for obstruction anymore, why not just keep it and get some resources out of it? We get those raycasts, reduce them quite a bit since we're not using them for obstruction, use them for reverb and reflections, and decode that data into more understandable things. There's not really a point of having 64 delay lines — let's just trim it down to 8, in the cardinal directions, to keep it simple.
你拍手,你听到它从墙上反射回来——非常基本。我们已经有了一个射线球体。是的,即使我们不再用它来做遮挡,为什么不保留它并从中获得一些资源呢?我们得到那些射线检测,把数量大幅减少,因为我们不用它们做遮挡了,用它们做混响和反射,并把这些数据解码成更容易理解的东西。有64条延迟线没有太大意义——让我们把它削减到8条,分布在基本方向上,保持简单。
But there are some problems — it sounds quite bad. That's because digital delay lines tend to highlight the unnatural nature of digital sound processing. In nature there are a lot more micro-textures that actually add to the sound and build up the early reflections. It's not just flat signals coming back — every little imperfection shapes the sound in a different way and gives you a much more interesting experience. And to be fair, we already recorded a lot of these things. We recorded the weapons in context. We know you're in an urban alley because the level team has tagged all the levels saying this is indoor, this is outdoor, this is a forest. So we don't really need to add early reflections that are that granular. We just need some pops of interest to know "oh, there's a wall there, and there's a wall there."
但有一些问题——它听起来很差。这是因为数字延迟线往往会突出数字声音处理的不自然性。在自然界中有更多的微观质感,实际上会给声音增添内容并构建早期反射。这不只是平坦的信号回来——每一个小小的不完美以不同的方式塑造声音,给你一个更有趣的体验。公平地说,我们已经录制了很多这些东西。我们在场景中录制了武器声音。我们知道你在城市小巷中,因为关卡团队已经标记了所有关卡——这是室内,这是室外,这是森林。所以我们并不真的需要添加那么细粒度的早期反射,我们只需要一些兴趣点来知道"哦,那里有一面墙,那里有一面墙。"
So let's just trim it down to just two reflections. That's simpler. And one more magic trick — there's a thing called the precedence effect: essentially, how close a sound can be to another before it starts being perceived as a separate sound rather than as a continuation. For music it's like 100 milliseconds, for speech like 50 milliseconds, for clicks like 5 milliseconds. We played around and found that for gunshots, 20 milliseconds sounded good. So we made sure that any of these delay lines, if they were very close to each other relative to your own gunfire, would need to be at least past the precedence effect threshold to be allowed to play — so that you wouldn't perceive that phasing effect but instead perceive them as individual slapbacks.
所以让我们把它削减到只有两条反射。这更简单。再一个魔法技巧——有一个叫做优先效应的东西:本质上,一个声音与另一个声音可以离得多近,在开始被感知为一个独立的声音之前。对于音乐来说大约是100毫秒,对于语音大约是50毫秒,对于咔嗒声大约是5毫秒。我们做了实验,发现对于枪声来说,20毫秒效果很好。所以我们确保任何这些延迟线,如果它们相对于你自己的枪声彼此非常接近,就需要至少超过优先效应阈值才能播放——这样你就不会感知到那种相位效果,而是将它们感知为单独的回声拍打声。
And one more: panning information is always really crucial to getting this type of distinction happening. If there's a wall right here that's quite close, let's not use that — let's use the other wall because it's way further apart and it'll be more interesting in terms of filling out our soundscape.
还有一个:平移信息对于实现这种区分总是非常关键的。如果就在这里有一面很近的墙,我们不用它——让我们用另一面墙,因为它距离更远,在填充我们的声景方面会更有趣。
九、中期与晚期反射 · Mid and Late Reflections
With the early reflection rule set established and sounding good, we could now find some more distant interesting reflection points and add them in as an extra sprinkle on top — mid reflections that complement the ones already in play.
建立了早期反射规则集并且听起来不错之后,我们现在可以找到一些更远的有趣反射点,将它们作为额外的点缀加入——与已有反射相补充的中期反射。
For late reflections: you stand on top of a mountain, you shout, the other mountain shouts back. Simple. We did record a lot of them and they sound awesome. But how do we get that feel in-level and in-game, bespoke for the specific level, so we can actually feel that building far in the distance having an impact on our soundscape? We built a solution that allows the level audio team to add a couple of points of interest in a level with custom behaviors — you can have lines of reflections if there's a big mountain ridgeline, or some different angle patterns if there's a square building. This allows for more world-building that is bespoke per level.
对于晚期反射:你站在山顶上,你大喊,另一座山回喊。简单。我们录制了很多,它们听起来很棒。但我们如何在关卡中和游戏中感受到这种感觉,针对特定关卡量身定制,这样我们实际上就能感觉到远处那栋建筑对我们声景的影响?我们建立了一个解决方案,允许关卡音频团队在关卡中添加几个兴趣点,具有自定义行为——如果有一条大山脊线,你可以有一排反射;如果有一栋方形建筑,可以有一些不同的角度模式。这允许针对每个关卡量身定制更多的世界构建。
十、室内外检测系统 · Indoorness System
什么是室内外检测 / What Is It
This is everything and nothing. It drives basically a lot of our systems — weapons, ambience, vehicles, explosions, footsteps, reverb. Just not UI. I don't think UI cares about this at all. It's essentially a method of verifying that the area types that the level audio team has added into the game are still valid. Because you put a small room in here, a tank just exploded it — now you're no longer indoors and we need to be able to detect that dynamically. We have a series of raycasts — let's use them for that as well. If they all hit the wall, you're indoors. If some of them don't hit because you blew out a window or opened a door, you're a tiny bit more outdoors.
这是一切,也是什么都不是。它驱动了我们很多系统——武器、环境、载具、爆炸、脚步声、混响,就是不包括UI。我不认为UI对此有任何关心。这本质上是一种验证方法,确认关卡音频团队在游戏中添加的区域类型仍然有效。因为你在这里放了一个小房间,一辆坦克刚刚把它炸掉——现在你不再在室内了,我们需要能够动态地检测到这一点。我们有一系列射线检测——让我们也用它们来做这件事。如果它们都击中了墙壁,你就在室内。如果有些没有击中,因为你炸开了一扇窗户或打开了一扇门,你就稍微更在室外了。
边界问题与修复 / Edge Cases and Fixes
Then we run into problems. What if the raycasts are too short, and this corridor now thinks you're actually outdoors? Or what if the raycasts are too long, and you hit the building across the street, so even though the wall is broken down you're still registered as indoors?
然后我们遇到了问题。如果射线检测太短,这条走廊现在认为你实际上在室外怎么办?或者如果射线检测太长,你击中了对面的建筑,所以即使墙壁被打穿了,你仍然被注册为在室内?
Let's step back and look at the reasons why we needed this. Gameplay: we needed to communicate whether the player's location is indoor or not — outdoor in the game essentially means you're about to die. Indoor can be a safe place; outdoor definitely not. Immersion: different spaces need to sound distinct. Aesthetics: Battlefield's sound experience is about dynamics, and the tuning of all our indoorness systems has to be defined with intention. You could make it realistic and have a slow blend from inside to outside, or you can make it really sharp and have it cut as you go from one side to the other. We had to find the line that made sense for our game — something where you feel a small crossfade in between, but as you run through the level you want to feel those transitions sharply and naturally.
让我们退一步看看我们为什么需要这个的原因。游戏性:我们需要传达玩家的位置是否在室内——在游戏中户外本质上意味着你即将死亡。室内可以是安全的地方;户外绝对不是。沉浸感:不同的空间需要听起来不同。美学:《战地》的声音体验是关于动态的,所有室内外检测系统的调整必须有意识地定义。你可以让它变得写实,从室内到室外有一个缓慢的过渡,或者你可以让它非常尖锐,当你从一侧到另一侧时就像切断一样。我们必须找到对我们游戏有意义的那条线——一种你能感受到小小交叉淡化的东西,但当你跑过关卡时,你希望感受到那些过渡是尖锐而自然的。
The fix: we added area type checks to the raycasts. When a raycast hits the wall, we check: what existed before that wall — was it an indoor area or an outdoor area? That helps us set the maximum distance between where we check these area types, allowing us to find the granularity of how the thresholds and blend zones happen. And of course, because this is a video game, our perception of where we're looking matters too. If you're looking into a room even though it's open behind you, we shape the sound slightly more toward how you're interacting with the world — if you're looking indoors, it sounds a little more indoor; if you're looking out the window, you hear a bit more of the outdoor sounds.
修复方法:我们向射线检测添加了区域类型检查。当射线击中墙壁时,我们检查:在那面墙之前存在什么——是室内区域还是室外区域?这帮助我们设置检查这些区域类型的最大距离,让我们能够找到阈值和混合区域如何发生的粒度。当然,因为这是一个视频游戏,我们的视角方向也很重要。如果你正在向一个房间看,即使你身后是开放的,我们会把声音稍微塑造得更接近你与世界互动的方式——如果你在向室内看,听起来稍微更像室内;如果你正在往窗外看,你会听到更多的室外声音。
十一、混响与脉冲响应 · Reverb and Impulse Responses
We've done a ton of IR recordings because the bigger our library gets, the more detailed we can create our experience. This is an ever-growing library — whenever we have an opportunity, we take it to sample some more rooms. These are tagged for the level audio team. As they're setting up their ambiences, they also set up which area type and which impulse response each area should have. And these are controlled by the indoorness system — if the room you're in gets blown out, you don't keep the full indoor impulse response. You get the outdoor systems to scale and play instead.
我们做了大量的脉冲响应录音,因为我们的库越大,我们就能创造出越详细的体验。这是一个不断增长的库——每当我们有机会时,我们就采集更多的房间样本。这些被关卡音频团队标记。当他们设置环境音时,他们也设置每个区域应该有哪种区域类型和哪种脉冲响应。这些由室内外检测系统控制——如果你所在的房间被炸掉,你不会保留完整的室内脉冲响应,你会得到户外系统的缩放和播放。
固定混响的挑战 / The Fixed Reverb Challenge
But this is a one-size-fits-all approach. So what do we do when sounds need a bespoke approach? If you want something to sound indoors, you just record it indoors — right? No problems? I think you'll find there's a theme in this talk: it's not as much about where we got to, it's about how we deal with the mistakes we find. There are problems.
但这是一种一刀切的方法。那么当声音需要定制化方法时,我们怎么做?如果你想要某样东西听起来在室内,你只需在室内录制它——对吗?没有问题?我想你会发现这个演讲有一个主题:与其说是关于我们到达了哪里,不如说是关于我们如何处理我们发现的错误。有问题的。
In reality, a fixed source has a fixed reverb. A moving source has a trailing reverb. And when the listener pans around, the reverb stays in the same place — because it's not happening in your head, it's happening in the world. That is not the case when you record a source indoors with an IR and have them moving — if they move outdoors, suddenly the indoor reverb has moved outdoors with them. Same thing goes with IR processing: IRs are normally processed at the master bus level after everything's been panned. If you rotate your camera around, a static source will get that trailing effect — the reverb trails with your head rotation.
在现实中,一个固定的声源有固定的混响。一个移动的声源有拖尾混响。当听者旋转时,混响保持在同一个地方——因为它不是在你的头脑中发生,而是在世界中发生。但当你在室内录制一个声源并带有脉冲响应,然后让他们移动时,情况就不是这样了——如果他们移动到室外,突然之间室内混响也随之移动到室外了。脉冲响应处理也是如此:脉冲响应通常在所有声音完成平移之后在主总线级别处理。如果你旋转摄像机,一个静态声源会得到那种拖尾效果——混响随着你的头部旋转而拖尾。
妥协与解决方案 / Compromises and Solutions
For sources recorded in their intended context — that sounds really good, so we'll continue doing that. For unpanned sources like your own movement sounds, that's kind of in your head anyway, so if it trails around a bit it doesn't matter. And for everything else, we came up with a slightly unconventional approach: before we do the reverb, we just re-pan — undo all of the panning we've done and just face the listener north as a fixed orientation. We do the reverb, and then only afterwards do we repan everything back. You lose some positionality because all of this re-panning is blurring the space, but it fixes that trailing problem when you move your head. And moving your head is constant in a game like ours. Reverb really clutters up the neck — even though it glues everything together, it has a cumulative effect. Anything you can do to tame it is a net positive in general.
对于在预期场景中录制的声源——听起来真的很好,所以我们将继续这样做。对于不平移的声源,比如你自己的运动声音,那种在你的头脑中的感觉,如果它稍微拖尾没关系。对于其他所有的,我们想出了一个稍微非常规的方法:在我们做混响之前,我们只是重新平移——撤销所有我们已经做过的平移,只是将听者朝向固定的方向。我们做混响,然后才之后重新平移所有内容。你会失去一些方位感,因为所有这些重新平移在模糊空间,但它修复了当你移动头部时的拖尾问题。在我们这样的游戏中,移动头部是持续不断的。混响确实会让一切变得杂乱——即使它把一切粘合在一起,它也有累积效应。任何你能做的来驯服它的事情总体上都是净正收益。
混响的空间化 / Spatializing the Reverb
Since reverb is the sound of the room reacting to your impulse — to the things you're putting into it — it makes sense that it comes from the room and not from within your head. We have our sphere of raycasts, so we know which side the room is centered on. This indoor raycast hits here and it's bigger than this one hitting behind me — so let's try to re-pan the reverb to face toward the center of the room.
由于混响是房间对你的冲激响应——对你输入其中的东西的反应——它来自房间而不是来自你的头脑内部是有道理的。我们有我们的射线球体,所以我们知道房间集中在哪一侧。这个室内射线击中这里,它比击中我身后的那个更大——所以让我们试着将混响重新平移到面向房间的中心。
十二、定位:声音的方向性与速度 · Positioning: Directionality and Speed of Sound
We don't really have the ability to do full portaling yet — the destruction system, the length, and the scale of the game kind of prevents us from doing portaling the conventional way at the moment. But that doesn't stop us from doing some creative solutions for the sounds that really matter.
我们目前还没有能力做完整的声音传送——破坏系统、游戏的长度和规模,让我们暂时无法用常规方式做传送。但这并不阻止我们为真正重要的声音做一些创意解决方案。
For ambiences: you're exploring near a window, you want to hear the outdoor sound — but you don't want it to be omnipresent, you want it to sound like it's coming from the window. And we know it's open because we have some raycast hits going through there, so let's just shift the panning toward there and have the sound feel like it's coming from the window.
对于环境音:你在窗边探索,你想听到室外的声音——但你不想让它无处不在,你想让它听起来像是从窗户那里传来的。我们知道它是开着的,因为我们有一些射线检测穿过那里,所以让我们把平移移向那里,让声音感觉像是从窗户那里传来的。
Same thing for weapon fire, which is a bit more clear. One of the main sounds of the weapon is this large cone of air pressure that comes out of it — it really excites the space that you're firing into. So if you're firing toward an indoor space, we do the same panning shift. Fire indoors — more indoor reverb. Fire outdoors — more outdoor. Fire in between — you get a bit from each side, nicely blended.
武器射击也是如此,这个更清晰一些。武器的主要声音之一是从它射出的那大锥形气压——它真的激发了你射击进入的空间。所以如果你向室内空间射击,我们做同样的平移移动。向室内射击——更多室内混响。向室外射击——更多室外。在中间射击——你从两边各得到一些,很好地融合。
声速 / Speed of Sound
343 meters per second — with the asterisk that this is only true at 30 degrees Celsius, sea level, controlled air pressure. Doesn't matter. We know that. That's one of the basic things we learn when we start studying sound. And it's kind of intuitive: the thunder flash happens in the distance, and a couple of seconds later you hear the sound.
343米每秒——带有星号:这只在30摄氏度、海平面、受控气压下成立。这不重要,我们都知道这个,这是我们开始研究声音时学到的基本知识之一。它相当直觉:闪电在远处发生,几秒钟后你才听到声音。
But people don't always think about what it means for moving sound sources. Sure it does Doppler, but it does something else too. When we were recording planes and having quite a hard time capturing them right in our very directional microphones, that's because we were pointing at where the plane is — but the sound was not coming from where the plane is. It's coming from where the plane was when the sound was being emitted. So we actually started having to point behind where we see the plane to actually capture it on mic. And then I thought: wouldn't it be cool if we had that in game?
但人们并不总是考虑这对移动声源意味着什么。当然它会产生多普勒效应,但它还做了其他事情。当我们录制飞机,很难用我们非常定向的麦克风正确捕捉它们时,那是因为我们在指向飞机所在的位置——但声音不是来自飞机所在的位置,而是来自飞机发出声音时所在的位置。所以我们实际上开始不得不指向我们看到飞机的后方,才能在麦克风上实际捕捉到它。然后我想:如果我们在游戏中有这个效果岂不是很酷?
十三、调试工具与测试 · Debug Tools and Testing
Things are only cool if they actually work, so testing is of the utmost importance. We built a lot of debug tools — and the best debug tools are the ones you actually use, not the ones that exist but no one knows about. So we made sure to create quick radial debug menus that let you toggle on all the important debugs whenever you need them. Hear a problem with indoorness? Turn on the indoorness debug, see the wrong number, fix it.
东西只有在实际工作时才酷,所以测试是最重要的事。我们建立了很多调试工具——而最好的调试工具是你实际使用的那些,而不是存在但没有人知道的那些。所以我们确保创建了快速的辐射状调试菜单,让你随时需要时切换所有重要的调试。听到室内外检测有问题?打开室内外检测调试,看到错误的数字,修复它。
We also built a lot of automated tests because we want to be able to measure the progress of every feature across time. If something starts behaving in a way we don't want, we want to be able to track back to when it started. We mapped out what our ideal obstruction levels were, our ideal indoorness levels were, and then used preprogrammed tests to run those levels and compare from our targets to what we were getting, seeing how much it was deviating.
我们还构建了很多自动化测试,因为我们希望能够衡量每个功能随时间的进度。如果某些东西开始以我们不想要的方式表现,我们希望能够追溯到它开始的时候。我们绘制了我们理想的遮挡水平、理想的室内外检测水平,然后使用预编程测试来运行那些关卡,并将我们的目标与我们得到的结果进行比较,看看偏差有多大。
And feedback is everything. Even though we have computers looking at things, the human perspective is more important than anything else. We play-test a lot, and every bit of feedback from a play-test is always so valuable — even positive feedback, because it shows us we're going the right way. And negative feedback can highlight issues we weren't even looking at, because we have different play patterns and experience.
反馈就是一切。即使我们有计算机在观察事情,人类的视角比任何东西都更重要。我们做了很多游戏测试,每次游戏测试的每一条反馈都是非常有价值的——即使是正面的反馈,因为它表明我们走的 正确的方向。负面的反馈可以突出我们甚至没有在看的问题,因为我们有不同的游戏模式和经验。
And finally: performance is all about multiplication. In a game like ours, we can do some super complex systems if they only happen on the listener — because it happens once. If we want to do it per sound or per soldier, they need to be really trimmed down and efficient, because multiplication adds up really quick.
最后:性能就是关于乘法的。在我们这样的游戏中,我们可以做一些超级复杂的系统,如果它们只在听者身上发生——因为它只发生一次。如果我们想按声音或按士兵来做,它们需要真正精简和高效,因为乘法累积得非常快。
十四、总结与建议 · Summary and Recommendations
My recommendation for your projects: focus on your goals. We had our goals to get good gameplay information, immersion, and keep our aesthetics. We defined the strategy: smoke and mirrors, bespoke sounds for what mattered, and recycle and reuse as much technology as possible.
我对你们项目的建议:专注于你们的目标。我们有我们的目标——获得良好的游戏信息、沉浸感并保持我们的美学风格。我们定义了策略:烟雾与镜子、对重要的东西进行量身定制、以及尽可能多地循环复用技术。
And something that I wish we had known earlier: start from things you know. Start from the tools that you have. Because we don't need to reinvent the wheel every single time — we can just sharpen it. And finally: fail, try, fail, try, listen, try again. And eventually you'll get there.
还有一件事我希望我们早点知道:从你知道的东西开始,从你拥有的工具开始。因为我们不需要每次都重新发明轮子——我们只需要把它磨得更锋利。最后:失败,尝试,失败,尝试,聆听,再尝试。最终你会到达那里的。
That's my talk on the acoustics of Battlefield 6.
这就是我关于《战地6》声学系统的演讲。