Welcome back to Part 2 of our deep dive into the Sound of the Outer Worlds!
In Part 1, we covered how we designed Creatures, the Music system, VO, Emitters, Ambience and Spatialization in the game. In Part 2, we’re going to look at some other areas: Weapons, Inventory and some of our Scripted Events, so strap in and enjoy!
Inventory
Design
What did we consider Inventory in The Outer Worlds? "Inventory items", were game objects that the player could pick up during gameplay, consume, or drag/drop anywhere in/out of the inventory screen. Some of the categories included:
- Weapons
- Armor
- Consumables
- Quest Items
- Weapon/Armor mods
The goal for inventory items was to immerse the player into the Halcyon colony to really feel like they are the unplanned variable, picking up and using all sorts of items in the various worlds that they travel to. These are items that become important for the player's journey, and it's important that we made each item sound as unique as they looked. The level of detail we went for allowed the world to come alive even more through the many objects that the player will come across. Our overall sound design philosophy for inventory items was to have them represent their respective objects as close as possible. If you pick up a can, we want the player to hear a can.
We recorded and designed for 9 parent categories for items, with a total of 48 sub-categories of items. We made a test level so that we could test every single unique pickup in the game.
Every prop we used for each sound had to match the texture and quality of the object. We took pictures of each individual item and printed them out to take to the studio for reference, to make sure that what we recorded would match the visual.
Here are some guidelines we followed for achieving this goal when recording and designing each sound:
1. Subtlety!
a. Transients had to be soft and subtle, not hard and sharp.
b. Picking them up as a player would naturally, with slow-ish speed and not too quickly.
2. Distinct
a. Every sound needed to give very clear feedback.
b. We also tried to incorporate some sort of memorable "rhythm" to each sound.
3. Short
a. One exception was the music box.
i. They had to be no more than a second long.
b. Succinct to prevent unnecessary feedback.
We recorded each object based on each sub-category. So for example, we'd have 2 different pieces of cloth for "Armor Medium" and record each one by making various takes of grabbing/moving/wrinkling , with the guidelines above in mind. The transient points show a good estimate of how many variations were recorded:
Here are pictures of the foley room, where various props were used and brought into the recording studio.
Here are pictures from the recording studio foley session:
Items included (but not limited to):
- Cans
- Doorknobs
- Chains
- Different types of clothing
- Plastic wraps
- A literal sword
- Wooden poles
- Floor tiles
- Water bottles
- Candy wrappers
- Boxes
- My messenger bag
- Door latches
- Metal springs
All of these items allowed for a huge variety of sounds for inventory SFX in The Outer Worlds. Here's an overall video of picking up various items in the test level.
Posters:
Tossball Cards:
Some items did require design magic, like this magic box, where we played the jingle Justin wrote for Spacer's Choice on a sampled celesta.
Overall, we succeeded in getting all objects in the game to have unique and distinct inventory sounds. Something that was great that we learned along the way was how creative you can be with simply making sounds for a very small item, like a card. A card never sounds the same when being picked up multiple times, and the kind of feedback it gives to the player can depend on how it's picked up. Picking an item up slowly and giving it a distinct "rhythm" allows the sound to be both satisfying and to-the-point.
Getting to that point took a long time, though. On a lot of sounds, we made the variation takes play out too long. Instead of just picking up a card for half a second, We'd slowly pick it up for a full second while kind of wrinkling it. It makes the sound more distinct, but also made the sound pretty annoying when a card was picked up multiple times. While distinction is great to go for, subtlety can be a great attribute that can lead to more effect feedback, when picking up gameplay objects.
Inventory Implementation
All objects have a sound for picking it up/dragging it in the inventory (3 variations) and consuming it (1 variation, if applicable). Here's a Wwise example of what one of these sounds would look like.
To keep all of the sounds organized, we made sure every sound object followed a specified naming scheme and organized all the sounds into big specific categories, as seen here with the Consumables folder opened:
Here's an example of what variations sounded like for a single item, if the player picked up different types of cans, for instance:
One of the most difficult aspects of Inventory SFX was being able to organize all of it. Every item needed an assigned gameplay tag, some of which I needed to add, and then each tag needed to be assigned to a sound. In Unreal, gameplay tags were assigned in this kind of manner, where a gameplay tag was assigned to an Audio Event:
The variety we were able to have with this audio data tool was incredible, but organizing it just right took some time since it was difficult to search for a sound or tag if we needed to go back and change a sound assignment when fixing a bug.
Making such a large variety of Inventory SFX for The Outer Worlds will be something we'll always be proud of.
Cutscenes Implementation
One of the decisions we made early on was to honor the player agency that is so core to the Outer Worlds. We wanted to this to extend to all aspects of the game, so we decided that cutscenes would playback based on the players' preferences: We would have audio follow their global sound settings for the game.
Whilst this simple to manage during gameplay, for cutscenes it presented the problem of how to manage the mix. During any cutscene, the player could for example have turned music off. This meant that we couldn't use a traditional linear production method (where everything is premixed to the video), and instead would have to use a real time solution of mixing the different submixes (Music, VO and SFX), based on player settings.
We used simply side-chaining on the music bus to account for this:
Scripted Moments
Emerald Vale Power Decision
Small Spoilers Ahead!
In our first explorable area, Emerald Vale, the player is essentially tasked with their first major decision. Their is a cannery which is the heart of industrial-worker life in the area, and there's also a small community that has broken away from the corporate life and started a greenhouse out in the wild. The player is tasked with redirecting a large amount of power from the local Geothermal Plant to either the Cannery, or the Greenhouse; which in turn sabotages the one that ends up with no power.
We wanted this choice to feel like it had some gravity to it, and actually reveal the repercussions of this choice through how the world sounds around you. We did this by turning on/off a large number of audio emitters based on the destination the player routed power to. For instance, if the player routed the power to the Greenhouse, a lot of the machinery in the cannery would now be turned off and silent, and you can hear the emergency alarms overhead as the cannery workers are panicking.
TTD Introduction Sequence
An example of this approach can be seen early on in the game's story when the Player is first introduced to their special time-manipulation ability, Tactical Time Dilation or TTD. After being cryogenically frozen for many years and abruptly revived by a mysterious scientist, the Player finds himself in an alien world with more questions than answers. Shortly after landing, the Player traverses through a cave where a strange mental episode spontaneously shocks him into awareness that his years in cryo-sleep have given him the ability to slow down time briefly.
When we set about to help create this moment we wanted to use sound to make the Player feel something akin to the confusion and disorientation of having your mind warped by time. At the same time, we wanted to allow the Player a degree of freedom to explore the space to both enhance suspense and create a sense of rising tension that peaks at the point where the Player finally loses control (mentally and in the game).
Several technical components combine to create this scripted sequence. The first is an Ak Ambient Sound emitter object that plays a unique looping drone based off of the in-game TTD sound and a looping exasperated Player breathing sound. These sounds work together to create the sensation that the Player is physically and mentally reacting to an unknown psychological stimulus nearby. Both the TTD drone and the Player breath have unique and relatively short attenuation radii such that they ramp up in volume rapidly when the Player is very close to the emitter. Implementing the sounds in this way allows the Player to back away from the experience or investigate it at their own pace.
Attenuation Shareset for scripted TTD drone sound
Attenuation Shareset for scripted Player breathing
The TTD drone retains some 3D positioning at distance by using Speaker Panning/3D Spatialization parameter whereas the Player breathing sound element uses a positioning override to play on the Player in 2D, relying only on a distance parameter to increase or decrease volume attenuation.
Speaker Panning/3D Spatialization parameter on TTD drone sound
The exasperated Player breathing loop is comprised of a Switch Container that uses a 'PlayerGender' State to set an appropriate Switch Group for male or female breathing sounds.
Scripted Player breathing Switch Container
These breathing sounds are housed in Blend Containers where we are using a Blend Track to crossfade between 'low intensity' and 'high intensity' breathing assets. Intensity ramps up based on distance such that the closer the Player gets to the emitter object, the faster and more exasperated the breathing becomes.
Player breathing intensity Blend Track
The second component of this sequence is controlled via a trigger volume placed just beneath the Ak Ambient Sound emitter object in the level. This trigger volume initiates the point of no return where the Player loses control and a scripted audio-visual sequence ramps up into the activation of the TTD mechanic for the first time. Using a combination of Delayed Callback, Remote Event and Post Sound at Location nodes, we are triggering a timed lead-in sound that ramps up into the TTD 'start' sound and deactivating the TTD drone emitter object.
Fly-through of sound emitter and trigger volume placement in UE4 level
UE4 Blueprint that conditionally deactivates scripted emitter object
UE4 Blueprint that initializes scripted lead-in sound upon entering trigger volume
Scripted TTD introduction sequence in-game
The sounds and implementation work in tandem in this sequence to produce an intense emotional response in the Player but also to provide them with just enough freedom to interact with the space on their terms. We feel that this approach reflects and supports the underlying narrative of a spontaneous psychological episode overcoming the Player while still retaining elements of the Player's agency in the world.
Tactical Time Dilation (TTD)
A mentioned in the last section, a core gameplay mechanic in The Outer Worlds is the Player's ability to slow down time for a short while. In addition to giving the Player an edge during fast-paced combat, Tactical Time Dilation or TTD, allows the Player to scan enemies for useful information about their faction, strengths and weaknesses. Successful attacks during TTD also cause extra damage to enemies by applying additional de-buff effects.
Several considerations were taken when approaching sound design and implementation for this mechanic. First and foremost, we wanted the audio for this ability to support the Player feeling special and empowered. The Player is the only character in the game that has access to this unique skill. Secondly, we wanted the mechanic to provide clear audio feedback so that the Player can focus on what he or she is doing and allow the audio to give information about the status of the ability. This involved messaging how much slow-motion time is l remaining and how much is currently being drained. Finally, in relation to providing informative game feedback, we wanted the mechanic to feel reactive to the Player's input. Depending on the interaction between the Player's skill tree attributes, active buffs and the actions a Player is currently performing, TTD can be active for a variable amount of time.
TTD active
The key visual feedback features of TTD are the purple meter in the upper left corner of the screen and the purple circle around the center reticle. The amount of TTD time remaining is represented visually by how full these two purple meters are. When draining, these meters will decay at variable rates. Sonically, we wanted to underscore this feedback.
When entering TTD an event is fired that triggers a one-shot 'start' sound as well as a looping 'bed' of spacey, stylized audio elements that persist and evolve over the course of TTD being active. When TTD is exited or depleted, an 'end' one-shot sound is triggered and all looping elements are faded and stopped.
TTD activated
The TTD 'Base'
One of our goals with the TTD soundscape was to convey a sense of rising tension in the gameplay and to underscore the lore of the ability that the Player character's mind is being progressively warped the longer that the Player is in an active TTD state. When TTD is full, the 'base' looping sound is spacey and textural but as TTD decays, this underlying 'base' becomes more chaotic, unstable and distorted. To accomplish this, we used a Blend Container with an active Blend Track to crossfade the looping 'base' element through 3 different intensity levels. We used a game-driven RTPC (TTDMeterPercent) to drive this transition inside of the Blend Track.
TTD 'base' loop Blend Container Track
We also used the TTDMeterPercent RTPC to dynamically increase the pitch and volume of the Blend Container as the TTD 'base' decays.
Using this Blend Container and RTPC implementation we were able to give TTD an affective and evolving soundscape that communicates to the Player how much TTD time remains as it decays during gameplay.
TTD 'base' intensity transitions
TTD 'Drain'
Another key aspect of the TTD mechanic is how the TTD meter drains. As mentioned above, two of our goals were to provide the Player with effective audio feedback about the state of TTD as well as to reactively represent the Player's gameplay input. Because TTD can drain at variable rates depending on a combination of factors, we needed to system that reflects, as closely as possible, that variability. If the Player activates TTD and performs no actions, the meter drains slowly and steadily, whereas if the Player is moving rapidly and performing actions such as jumping or shooting, the meter will drain faster and at higher values. To represent this sonically, we wanted to create a 'gate' style system that would effectively pass through more or less of the TTD 'drain' sound. To accomplish this, we created a looping sound object that is triggered when TTD is activated but has its Voice Volume set to -200 by default.
The TTD 'drain' sound object reacts to several RTPCs (TTDMeterDrainRate and TTDMeterPercent) to:
A) allow more volume level to pass in
B) lower the pitch slightly as larger drains are triggered
C) open up the low-pass filter as larger drains are triggered
TTD 'drain' effects and implementation
Profiling the interaction of TTD parameters using the Game Sync Monitor
We also used the TTD parameter and state (TacticalTimeDilation) quite extensively to control various parameters to further craft the mix while TTD is active. We used these parameters to remove, filter and alter the pitch of sounds while TTD is active to enhance immersion and help make TTD feel like an impactful moment every time the Player engages it.
In combination, all implementation and sound design elements work together to empower the Player, provide useful audio feedback, and feel reactive as a gameplay mechanic.
Weapon Implementation
In a game like The Outer Worlds the weapon systems can be very robust with hundreds of combinations of guns, gun modifications, environments, and perspectives. To account for all of these combinations we opted for a more modular approach with our weapons so they would sound appropriate and unique in all of these cases. This allows for us to keep the soundscape reactive to player input with the smallest set of quality sounds.
Base
This is the real meat and potatoes of the gun. It is unique for each gun, gives it flavor, and is recognizable to that weapon. For us, it was generally a pretty concise sound to still leave space for the various tail lengths while also having just enough room to get its point across. In Wwise we duplicated this layer into two separate actor mixers, one for the player character and one for non-player characters. This gave us very easy control the mix of one vs. the other. The base layer was setup as follows:
1. Firing sound of the gun
2. Firing sound is concise to leave room for the tail
3. Having an individual base sound creates uniqueness for each weapon
4. Split up by Player and Non-Player (same sound)
Exterior Tail
In The Outer Worlds, the exterior tail is a layer that will only play when the weapon is fired outdoors (controlled via state in Wwise). We created a bespoke exterior tail for each gun that represented what the reverb would sound like if that weapon was fired in an outdoor environment. For guns, this is just as important as the base layer, it’s part of what is going to make the gun sound big, feel loud, and invoke believability. Just like the base layer, these are duplicated out into separate actor mixers for player and non-player:
1. They only play when outside
2. They are unique for each weapon
3. Helps add illusion of loudness (or softness)
4. Enhances believability and grounds it in the world
5. Split up by Player and Non-Player (same sound)
Interior Tail
The interior tail layer is similar to the exterior tail, but it plays when indoors. We designed interior tails for the different sizes of room in our game, so if you’re in a small room and fire a gun, it will sound like a gun being fired in a small room. Unlike the exterior tail, these were global for all guns in the game. These tails play alongside of the gun firing and the size is controlled via state. These states were manually set on every interior room in the game (shout out to Dylan Hairston for setting all of these up):
1. Played only when inside
2. Global for all guns
3. Unique set for each room size
4. Uses a switch to change room size
Damage Type
The Outer Worlds has a robust weapon mod system that allows you to change what type of damage your weapon does. In order to accommodate this level of player choice, we designed unique sounds for each of the four damage types that get layered onto the base and tail. These sounds are switched via RTPC that is then converted to a switch in Wwise. This layer was designed to be subtle and leave room for the regular weapon sound while still giving the player a sense of reactivity to their choices.
1. Layered on top of the base and tail
2. Global for all guns
3. Unique set for each damage type
4. Switches damage types based on an RTPC converted to a Switch
5. Enhances reactivity to player choice
Distant
When NPCs are shooting at you from a distance we wanted to really create a believable environment and sell that they were far away from you while also cleaning up the mix for more immediate threats that may be closer to you. In order to achieve this we created a global distant firing sound that crossfades with the base/tail layers as the enemy becomes further away from the player. This version of the firing sound is concise and transient to leave room for those more immediate threats, while also quickly poking out in the mix to let the player know “Hey, I’m still here too!”
1. Only heard when the enemy is firing at a great distance
2. Crossfades with the base and tail layers
3. Crossfade is done directly on attenuation sharesets.
4. Short transient sound to briefly poke through the mix
Shell Casings
Last but certainly not least is shell casings! Just like it sounds, this is the sound of the shell casings hitting the floor. These sounds were not based on any sort of physics system so we used delays in Wwise to simulate the drop time from the weapon to the floor. These sounds were triggered via switch container and actually used the same switch as our footstep system, so shells hitting the ground would sound different depending on what material you were currently standing on. These sounds may seem insignificant in comparison to the others but it’s small details like this that exponentially increase believability and help your sounds feel grounded within the world.
1. Only added to weapons that expel shell casings
2. Heavily voice limited to reduce spam
3. Different sounds for each material the player can stand on
Tactical Time Dilation
Tactical Time Dilation (TTD) allows the player to slow down time to better line up those perfect shots. In this mode we completely swap out the regular weapon sound in favor of a more stylized version. The goal was to retain the original spirit of the sound while also behaving like it was slowed down to match the time warping effect of TTD. We achieved this by using a grain pitch shift (paul stretch) to get that slowed effect without the typical fidelity loss associated with standard pitch shifting methods. This sound always plays alongside the standard gun sound but will get instantly virtualized and killed by Wwise if the player isn’t currently in TTD. This happens due to it being below the volume threshold. (NOTE: In order to kill a voice that falls below the volume threshold it must be set to “Use virtual voice settings” when the voice limit is reached. Then set the virtual voice behavior to “Kill Voice”.)
1. Only heard while TTD is active (voice gets killed via virtual voice settings when not)2. A lightly paul stretched version of the base layer
TTD Sweetener
This one is fairly simple. Due to the way that grain pitch shifting works the transience of the base layer after running it through paul stretch becomes somewhat “smeared” and less impactful. It’s still a gun, even in slow motion, and we don’t want to lose punch. This is a global layer that adds back in the oomph that the gun needs, even when in TTD.
1. Only heard while TTD is active (voice gets killed via virtual voice settings when not)
2. Simple transient low end heavy layer to make up what we lost when creating the TTD layer.
Now that we have all of our layers we add them to the firing event for the weapon. This is what it looks like.
Lastly, here is a video example of each of these layers within the game.
Conclusion
We are really proud of the work that we were able to do for the Outer Worlds. We learned many lessons and did make mistakes along the way, however we were able to use Wwise in ways that we hadn't done at Obsidian before, which helped push our craft forwards. Creating multiple worlds was certainly a challenge, especially when the player can make so many different decisions in our game, however we feel that we were able to craft a coherent soundscape for our players to explore.
We hope that our blog has been informative and helpful, and can give an insight into the process that we went through. Thanks for your time and we hope you enjoy Halcyon and the Outer Worlds!
The Team
The audio team would like to thank the following people and teams for their help bringing Halcyon to life. Audio is only one piece of the puzzle and it wouldn’t be possible without your support and talent.
- Outer Worlds QA, Narrative, Programming, Production, Game Design, VFX and Animation Teams
- Noiseworks
Commentaires