Sounds
Products
Help
About
Blog
Register now to download your created sounds!

Nemisindo Adaptive Footsteps for MetaSounds Documentation

Nemisindo’s Adaptive Footsteps 2.0 is here! You can now use our dynamic footstep generation as a node in MetaSounds. Nemisindo’s custom MetaSounds Footsteps node offers 4 different shoe types, 7 surface types, and additional controls for firmness, randomization and more! All while easily integrating into the powerful and fine-grained controls offered by MetaSounds. Not using MetaSounds yet? No problem, the standard UE5 audio plugin is still available!

Easily set up sounds such as "high heels on pavement", "boots on dirt", "running on grass", and use the provided automatic surface detection to save you plenty of time.

The MetaSounds node can be used in any Patch or Source, and the UE5 audio plugin is implemented as a blueprint-spawnable class. Both versions support spatialization, reverb, and all the other post-processing effects that a normal sound asset would support.

Supported Target Platforms: Windows (x64), Mac, Android, iOS, Linux, XBox One

Supported Unreal Engine versions: UE5.1 or later.

The Nemisindo Footsteps Plugin on the Epic Games marketfrom the marketplace, you can install they using the Epic Games launcher. To use the plugin in a project, it must be enabled first. In the Unreal Editor, go to Edit->Plugins and type "Nemisindo" in the search bar. Locate the Adaptive Footsteps and click "enable". Restart the editor for the changes to take effect. The marketplace plugin contains both the MetaSounds node and the standard UE5 audio plugin.

Add a footsteps node in MetaSounds

Right click in Content Browser and navigate to Audio category. Select MetaSound Source, then name it as “Oneshot_Footsteps” or a name you prefer.

Double click the MetaSound Source created to open the editor. Right click in the editor to see the node library. Navigate to the Functions > Generators category and you’ll find the Nemisindo Footsteps node (if you can’t find it please check whether you have enabled the plugin in the Unreal Editor, under Settings > Plugins).

You can also search for the node in the search bar. This will also bring up the additional graphs that are included with the plugin. An autotrigger patch and a default oneshot graph are included within the plugin. When the graphs have been added to the editor, you can double click on them to check the content inside or modify it.

Click on Nemisindo Footsteps to add it to the MetaSound Source. Now you can connect the pins:

And then click the play icon on the top left corner of MetaSound interface to hear a footstep sound with default parameter setting (shoe:trainer, surface: wood).

Oneshot Mode

If you have created a footstep MetaSound Source as above without AutoTrigger patch Nem_Footstep_AutoTrigger, then you are using it in oneshot mode. You can get access to the sound as an asset in other blueprints to implement single step sound. An example is to generate footsteps sound for a third-person character as shown below. Reference the footsteps MetaSound Source you’ve created (e.g. “Oneshot_Footsteps”) as the sound component of the Spawn Sound at Location node.

You could also use Spawn Sound Attached node if you want the sound to be attached to a specific component of the character.

You will also need to set up the appropriate Animation Notifies when the foot is placed on the ground. In this example above, the node "AnimNotify_Step" corresponds to the "Step" Notify in this animation sequence:

You could also add the sound source by using the Play Sound notify to directly preview the sound within the animation sequence (the purple notifies in the above screen capture).

Automatic Mode

When the Nemisindo Footsteps node is combined with the AutoTrigger patch Nem_Footstep_AutoTrigger, the model will keep generating steps at a BPM determined by the parameter Speed, initially set to 120.

Right Click in the editor and select the graph Nem_Footstep_AutoTrigger and the node Nemisindo Footsteps. Connect the nodes as follows to set up the automatic mode. Notice that there is no On Finished node connected as autotrigger asks for no destruction of the instance. Click and drag on the Speed input pin and select Promote To Graph Input to add a control knob. Enable AutoFirmness in the Nemisindo Footsteps node.
Click on the Play button of the editor. You’ll be able to hear footsteps generated at a regular base. Tweak the speed knob and you’ll hear the firmness of the footsteps adaptive to the speed in real time.

If you want to add the automatic footsteps to first-person gameplay, you may need to play the footsteps when the character starts moving, and stop playing sound when the character stops. Here is a basic solution for this in the character blueprint:

You only need to add the automatic footsteps MetaSound Source (“Adaptive Footsteps” here) to the components of the character blueprint (you can follow the documentation in ”Add a footsteps node in MetaSounds” section). Then connect the Play node and Stop node to EnhancedInputAction IA_Move, with Adaptive Footsteps referenced. As the audio component is attached to the character, the location of the character would be inherited. The configuration of the audio component can also be easily set up in its Details Panel.

Input Pins

Step: Trigger the node to play a single step.

Randomness (0.5 as default, range setting 0-1.0): The amount of random variation between each successive triggered footstep. The default value 0.5 provides the natural sounding of different footsteps. This feature would be more noticeable on crunchy type rock surfaces like Gravel, Dirt and Pavement.

Firmness (0.3 as default, range setting 0-1.0): Average firmness of the steps. It represents how quickly the toe follows the heel sound (lower value -> more delicate steps). The default is for normal walking speed.

AutoFirmness (unticked as default): When this feature is enabled, the firmness could be automatically changed based on the trigger rate of the node in MetaSounds(higher rate -> tighter steps). This can provide a smooth transition from walk to run for your character movement. Manual firmness setting will be disregarded when it’s ticked.

Shoe ("Trainer" by default): Type of shoes being worn (Trainers, High Heels, Oxford, Work Boots)

Surface ("Wood" by default): Type of surface material being walked on (Wood, Pavement, Gravel, Dirt, Grass, Tiled Floor, Metal).

Heel On ("On" by default): Whether to include the sound of the heel. Turning this off would correspond to e.g. walking up stairs, where only the ball of the foot impacts the surface.

Output Pins

Out: Audio output of generated audio signal.

On Step Finished: Triggers at the precise sample at which generation finishes.

NOTE: The parameters could be manipulated at runtime by setting up input variables for them in MetaSoundSource and could be accessed through blueprint communication. In MetaSounds it’s very easy to adjust the range of parameters, but for Randomness and Firmness, the actual value is clamped and won’t be able to exceed the default range.

The way of applying post- processing and spatialization to footsteps is the same as to other MetaSound Source. MetaSounds in Unreal Engine 5 offer various in-built post-processing nodes (equalisation, dynamic range control and delay) . You can conveniently connect them to the footsteps nodes and iterate ideas fast. For the footsteps added to an actor blueprint as an audio component, Source Effect Chain, Volume & Pitch Multiplier/Randomization, Concurrency configuration are all supported in the Details Panel. For spatialization, there are multiple ways to add attenuation settings. You can find it in Details Panel > Attenuation for an audio component in the actor blueprint.

Parameters like Distance, Azimuth and Elevation can also be accessed. You can add control to the footsteps nodes by enabling them in a MetaSound Source.

Add an audio component to the actor first. Navigate to the Components tab of an actor blueprint, then click Add and select Audio in the drop down menu. Navigate to the Sound category in the Details panel, and select the MetaSound Source asset created for your project (guidance on creating a footsteps sound MetaSound Source will be included in the section Generating Sound).

NOTE: If you don’t want to activate the MetaSound Source when the actor is instantiated in the level, please navigate to the Activation section in Details and untick the Auto Activate box.

Note: These instructions are based on the default First-Person Project in Unreal Engine 5.

Dynamic surface detection

Follow the guidance in this section to set up physical material for surface detection. First, navigate to Project Setting. Type “Physical” in the search bar to view the category Engine - Physics > Physical Surface where you can name surface types for your project. As the surface types in our plugin are named as Wood, Pavement, Gravel, Dirt, Grass, Tiled Floor and Metal, here you can fill in these names as shown in the image below. Please note that space is not allowed when naming a SurfaceType!

Next step you’ll need to assign them to different physical materials so they can be applied to your floor materials. Right click in your content browser and select Physics > Physical Material. Double click your NewPhysicalMaterial, and you’ll find the Surface Type item in the Physical Properties category. Here you can find the surface types you just set up in the drop down menu. Select one surface type to assign it to the physical material. Create seven physical materials in this way and rename them as corresponding surfaces assigned (e.g. Wood_PhysicalMaterial).

Last step is to add each physical material to floor materials. In the editor, click on the floor mesh you would like to apply the material to. Navigate to its Details Panel and click on the Physics tab. You can find Phys Material in the Collision sector. Select the physical material you would like to assign to this mesh in the drop down menu.

You could also apply the physical material to a Material instead of the mesh, so it would bind with the corresponding material. Double click the materials you’ve created for each type of floor. For example, in this tutorial a material “M_Wood_Walnut” from StarterContent has been used for wood surface. Navigate to Phys Material in Physical Material Category in the Details Panel, and select the physical material you’ve created in the second step, which is “Wood_PhysicalMaterial” in this case.

Trigger Automatic Footsteps During Movement

Move, Stop and Jump:

First add the MetaSounds Source (the automatic mode footsteps) to the Character Blueprint. All the interactions with the MetaSounds Source (playback/parameter settings) will happen here.

Jump

Set a boolean variable (Here we use "isJumping") to store the state of the character in the air. When Jump Input is triggered, set the audio component attached (Footsteps) here as stop. When Jump action starts, also set "isJumping" as true. When the character lands (stops jumping), set "isJumping" as false.

Movement on the ground

1. Check if the character is in the air

We only want to trigger the sound when the character is on the ground. So we need to check the value of the boolean variable "isJumping" we set up before. So only when "isJumping" is false, we can go on to the next step.

2. Check if the sound is playing

Get the footsteps audio component and use the "IsPlaying" function to check its playback state. Only play the component when the return value of "isPlaying" is false.

3. Stop the sound

When movement is completed stop the playback.

Detect Surface Material

  1. Go to FirstPerson Character BluePrint
  2. Get actor location and use Line Trace to detect surface material
  3. Use the output of the line trace to select surface type and set the surface parameter of the adaptive footsteps.

Or, in a more concise way:

Can't find what you're looking for? Let us know.