Hi Chris,
I hope you’re doing well. First, thank you for the help you’ve given me in the past—Adventure Creator has been a huge part of my project, and I really appreciate your support.
I’m currently using the latest version of Adventure Creator (1.82.1) with Unity 2022.3.0 in a 3D setup, and I’ve been exploring the new Footstep Sounds system. I really like this system and how flexible it is for surface-specific sounds, but I’ve hit a limitation that’s impacting my project.
In my game, I have multiple characters walking on the same surface for example, an office floor but each character needs unique footstep sounds:
robotic character that plays metallic clanking sounds when walking around .
male character with heavy boot sounds.
female character with high-heel taps.
The issue is that the Surfaces system applies footstep sounds globally to the surface itself (like the office floor). As a result, all characters end up playing the same sounds, which breaks immersion.
I have multiple 3D scenes where this setup applies.
I’m not a programmer, so I rely on Adventure Creator’s editor tools to set things up. Would it be possible to add an option in the Footstep Sounds component to assign a default set of sounds per character?
This would allow each character to have their own fallback sounds without requiring surface-specific overrides or the creation of duplicate surfaces.
The new footstep system is great, but adding this option would make it far easier to manage footstep sounds for multiple characters across shared surfaces. It would be a huge benefit for developers like me who aren’t coders and rely on Adventure Creator’s tools.
Thank you again for all your hard work and support—Adventure Creator is an amazing toolkit, and I’m excited about the improvements you’ve been adding. I’d love to hear your thoughts on this!
Best regards,
Raff
Comments
This is possible with a custom script that hooks into the OnRequestFootstepSounds custom event.
There's a few ways you can go about this. Here's an example script that lets you define a set of normal/alternative surface names for a character. For example, "OfficeFloor" and "OfficeFloor_Robot". When the former is detected, it instead switches to the latter.
Copy/paste this in a C# script named SurfaceModifier.cs, attach to a character, and fill in its Inspector:
Thank you for your help and the SurfaceModifier script!! Works well I really appreciate the time you spent doing it...
Thanks again
Best,
Raff