← Back to list

Book of Shadows: Sound Design Devlog — Footsteps

I’ve been working on a little project with a friend for a little bit and I just wanted to record the development process, specifically the…

Gerald Clark · 2024-05-16 03:46 · 0 claps · 3.0 min read
#game-audio #wwise #unity #game-development #sound-design
Open on Medium ↗
Wiki topics: 🎮 · Gaming 🎵 · Music & Audio 🎙️ · Creator Economy

Book of Shadows: Sound Design Devlog — Footsteps

I’ve been working on a little project with a friend for a little bit and I just wanted to record the development process, specifically the audio development. So! Welcome to the Book of Shadows Sound Design Devlog! Lets go!

For this game, I am using Wwise. Wwise is an audio middleware with vast capabilities for game audio amongst other things. This article is going to go into my audio implementation for the footsteps in the game so far. The implementation is definitely subject to change since the game is still in super early development.

First of all, the Wwise side of things.

Here is my current Player work unit. All I have so far is the footsteps themselves. No cloth or anything yet. I have Random Containers set up for each surface type. Right now, I only have 3. Eventually there will be more, but all these concepts still apply.

Here is my event list. I have an event for each surface type and the events play their respective random container.

Each of my random containers have randomization applied to their volume and pitch. This is just so the footsteps don’t get redundant and sound slightly different every time. This is basically all there is to my set up in Wwise so far.

In Unity, I’ve got a little bit more going on.

Meet our nameless main character :)

As you can see, I have a game object called “SurfaceDetector” attached as a child to this game object. It is just an invisible object slightly out in front of the player. I have a surface detection script attached to this object.

Disregard unused libraries…IM WORKIN ON IT

Disregard unused libraries…IM WORKIN ON IT

This is just casting a ray downward and then calling the HitObject return type method. This returns a string. The string it returns is the game object it hit’s tag.

For example, the dirt path here is tagged “Dirt”. The grass is tagged “Grass” and the wood surfaces are tagged “Wood.”

Now I have a script called Player_Audio_Events. This handles player specific audio events.

Here you can see I have an array of AK.Wwise.Events called footsteps. The PlayFootstepSound() has a switch statement in it that checks for what surface the SurfaceDetection script’s HitObject method is returning and then posting the appropriate event.

Where is this method being called?

I’m making use of Animation Events! The player’s run animation is triggering the PlayFootstepSound(). This is happening right when the player’s foot touches the ground.

That is really all there is to it.

Quick note: You may ave noticed that I’m posting the Wwise event at the game object’s position. The reason you can still hear them is because I have no position attenuations set for these footsteps.

Wanna hear the end result?

Check it out here!

https://youtu.be/enb3P07rPgI


메타데이터
post_id
cafcefaecda0
slug
book-of-shadows-sound-design-devlog-footsteps-cafcefaecda0
url
https://medium.com/@geraldclarkaudio/book-of-shadows-sound-design-devlog-footsteps-cafcefaecda0
canonical_url
https://medium.com/@geraldclarkaudio/book-of-shadows-sound-design-devlog-footsteps-cafcefaecda0
author_url
https://medium.com/@geraldclarkaudio
status
ok
fetched_at
2026-07-23 20:25:48