The Sound Design of Ghost of Yōtei: Character Foley

When given a chance to talk about our Foley system in Ghost of Yōtei, you will undoubtedly hear me gush and rave incessantly and claim it’s the first time I’ve ever really enjoyed tagging animations. All these things are absolutely true. Josh Lord, who architected the new system, talked about it at our talk at GameSoundCon 2025, but I wanted to go into a bit of detail about the system and a few cool features that we added to really make things sound great.

For a deeper dive into the nuts and bolts of the in-game system, I’ll hopefully be able to post a version of that talk up here after we present it to the Seattle Game Audio Group in April.

You Scream? I Scream!

One of the earliest, and arguably biggest, changes for audio on Ghost of Yōtei, was switching our audio middleware from Wwise to Scream. Scream is an internal Playstation audio tool used by several studios including Naughty Dog, San Diego Studio, and Bend, (Guerilla also uses the low-level synth to power their engine in Decima). I absolutely love Wwise, and our reasons for switching were numerous, but one thing I’ve always appreciated about Scream since using it for the first time in 2005, is the ability to write scripts directly in your sounds (an “event” in Wwise is called a “sound” in Scream, with the contents of those sounds being waveforms and/or streams and optional logic).

Scream lets you write fairly complex scripts with a simple drag and drop interface. They provide around 40 or 50 grains: single line commands that let you do most sound manipulation from playing a sound or a random set of sounds, to executing branching based or conditional logic driven by variables (floating point values like RTPCs) or registers (integer values like Wwise Switches (local registers) or States (global registers)). Variables and Registers can be set from your game engine or directly from Scream. This opens up an insane amount of power and flexibility to sound designers, with little to no actual scripting needed.

Our entire cloth and gear system for characters involves just 10 sounds each: cloth soft, med, and hard, gear soft, med, and hard, body soft, med, and hard and a surface layer. We use these 10 sounds coupled with a powerful variable-driven system in Scream to effectively spot foley in our engine in real-time. So we place these individual sounds and then affect each instance by tweaking its variables such as volume, pitch, seek, envelopes, randomization, filter sweeps, distortion, etc.

The beauty of Scream is that Josh wrote a single utility script that handles all of this variable logic and in each of our characters’ cloth and gear sounds. We just branch to that script and the sound sucks in all of the logic for controlling these parameters based on the variables we have set up in our engine.

Here’s what some of that looks like in Scream:

a script setting various variables for a parent sound in Scream

Authoring itself isn’t necessarily just dropping a bunch of these 10 sounds and adjusting parameters every time. Instead, we’ve built up a library of presets for common actions, so we can drop a preset on the animation timeline and it will add all of the sounds and their respective variable settings across the timeline.

an example of an animation event preset from our engine

Once you drop a preset, then it’s just a matter of some light massaging to make sure the sounds match the animation perfectly. It really is a fun iteration loop! Let’s take a look as some of the other cool features this system has afforded us.

Footstep Blending

Once we built the utility script for our cloth and gear, we started realizing we could use it across other sounds or even write variations on it for specific sounds. Footsteps and hands were a logical extension of where to use these and we quickly adopted the same set up for our footsteps. But then we had a crazy idea: when walking or running across surfaces, the change between surfaces is always so rigid. One footstep is snow, the next is stone. What if, when the surface changed, we could crossfade the two surfaces over the next several footsteps, effectively blending the surfaces?

Josh quickly wrote another script in Scream to do just that. It gets the current surface material, stores it out as the previous and when it changes, crossfade between the previous and current over a few steps. It’s such a subtle add, but we were blown away at how good, and natural, and detailed it helped the world sound instantly.

There were a few surfaces, where it just didn’t make sense or sound good to blend, like going from wood to any surface or ice to water, and it was VERY easy to add those exceptions into our scripted sound in Scream.

Gear on Back

This is actually something we had on Ghost of Tsushima, but on Tsushima the only thing that was ever on Jin’s back was his bow and quiver. We built a dynamic arrow system so that the amount of arrows the player would hear in the foley changed based on the amount he had in the quiver, but that was the whole system.

For Ghost of Yōtei, Atsu could have A LOT of different things on her back: her shamisen, bow and quiver, kusarigama, odachi, or tanegashima (rifle). We thought it’d be cool to give her a little flavor by adding these subtle sounds to the gear based on what was visible at any given time, and again Scream’s scripting and variables allowed us to do this relatively quickly and easily.

We carried over the dynamic quiver from Tsushima, and then we started with the shamisen. I’d bought a shamisen at a Japanese arts market and we recorded the hell out of it. Josh then built some movement sounds to match our soft, med, and hard paradigm with regards to file lengths and transients. We put it in, and Atsu instantly had a very special, unique character that only the resonance of her shamisen could provide. After that, Chris Walasek designed assets for the remaining weapons and we rigged them up, tweaking the probability so it plays often, but not always in a cadence that matches the animation.

I love it especially because it’s super subtle so you usually don’t notice it, unless you mute it or turn the gear off on the back. But occasionally the resonance of the shamisen, or the rattle of the kusarigama, or the weight of the odachi pops through the mix just a bit and makes Atsu feel more grounded in the world

Mixing over time

Another feature we kept from Tsushima and improved upon was our time-based mixing of foley. Effectively we kept track of how long a player was walking, jogging, or running and would mix down cloth and gear layers over time based on the elapsed time of the action. Once the player stopped moving, or changed speeds, say, from a run to a jog, we reset the clock. The end result was a very subtle means to mix down layers of foley that could grow fatiguing if they continued to play at full volume.

We also extended this to the hero horse, and would turn down the footsteps, saddle, and bridle sounds over time to provide a transparent means to reduce ear fatigue, especially when galloping across long swaths of the map. This is what that looked like in Scream for a hero gear layer. In this instance the player doesn’t walk very often or for very long, so we opted to only tweak for jog and run.

A view of a sound in Scream with volume curves that attenuate slightly over time based on jog or run time.

A Very Special Guest

We were also lucky enough to work with Tenshin-ryu, a school for Japanese swordsmanship in Tokyo. They flew out to Sucker Punch in 2023 and, while most of their time was spent in the mo-cap volume capturing moves for Atsu, I was lucky enough to get some time with Rensei, one of their amazing martial artists. She came into the foley room and we recorded a ton of various swings, sheathing, unsheathing and chiburi (cleaning the blood off the blade) moves. The swings didn’t really work for our needs, but much of the sheathing and unsheathing sounds ended up as elements in Atsu’s sheathing and unsheathing in game. The best part was that Rensei’s swords had a very unique sound to them in that they rattled slightly as she used them, and this helped give Atsu’s katana a very unique sound, while still staying true to real sound of a katana.

The Glue that Binds

That covers most of the mechanical features and improvements for Foley in Ghost of Yōtei. The other improvement came in the form of Joanna Fang and Blake Collins, PlayStation’s indomitable Foley team. We worked very closely with Joanna and Blake to capture most of the character foley in game including footsteps, all character gear and foley, combat swings and impacts, and even our horse footsteps, which we concocted from toilet plungers stuffed with cloth and a wood shim taped to the end to give a little clop. Here’s a video that may seem rudimentary, but was used to educate the team in a company meeting about what a Foley team does fairly early in the production of Yōtei (which as you may notice was codenamed “Wanderer” at the time).

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.