Skip to content

MotionMovementSoundComponent

MotionMovementSoundComponent plays movement sounds from Animation Notifiers with surface detection, speed-based modulation, and optional 3D audio.

Requirements

  • Character with standard UCharacterMovementComponent
  • Animation Blueprint with footstep Animation Notifiers
  • Surface sound DataTable using FMotionSurfaceSoundDataRow
  • At least one Default row for fallback sounds

For setup steps, see How to configure movement sounds.

Behavior

Animation Notifiers call trigger functions on the component. The component can trace to detect the physical material, look up sound data in the DataTable, modulate volume and pitch from movement speed, apply movement-state variation, and play either 3D or 2D audio.

API

Sound triggers

  • TriggerFootstepSound(): plays a footstep sound, usually from foot contact notifies.
  • TriggerJumpSound(): plays jump takeoff sound.
  • TriggerLandingSound(): plays landing impact sound.
  • TriggerMovementSound(SoundType): plays a named custom movement sound.

Surface and state

  • GetCurrentSurfaceType(): returns the currently detected surface type.
  • OnSurfaceTypeChanged: Blueprint event fired when surface type changes.

Configuration

Configuration lives on the assigned MotionMovementSoundProfile. The current Motion default is /MotionCore/Motion/Profiles/v2_0_0/DA_MotionMovementSoundProfile_Default_v2_0_0.

Surface data

  • SurfaceSoundDataTable: DataTable containing surface sound rows.
  • DefaultSurfaceSoundRowName: fallback row name. Default: "Default".

Sound settings

  • SoundSettings: FMotionMovementSoundSettings container.
  • BaseVolume: base volume for movement sounds. Default: 1.0.
  • SpeedVolumeMultiplier: volume multiplier from movement speed. Default: 0.5.
  • BasePitch: base pitch for movement sounds. Default: 1.0.
  • SpeedPitchMultiplier: pitch multiplier from movement speed. Default: 0.2.
  • VolumeVariation: random volume variation range. Default: 0.1.
  • PitchVariation: random pitch variation range. Default: 0.05.

Access sound settings through the assigned profile's SoundSettings fields.

Feature toggles

  • bEnableSurfaceDetection: detects surface type for sound variation. Default: true.
  • bEnableSpeedModulation: modulates audio from movement speed. Default: true.
  • bEnable3DAudio: enables 3D spatial audio for footsteps. Default: true.

The component's editable setup surface is the Profile reference. Trigger timing, cached surface state, audio component state, and diagnostics remain component-owned.

Blueprint Events

  • OnFootstepTriggered(USoundBase* Sound, UPhysicalMaterial* SurfaceType, const FString& MovementState): fires when footstep sound is triggered.
  • OnMovementSoundTriggered(const FString& SoundType, USoundBase* Sound): fires when any movement sound is triggered.
  • OnSurfaceTypeChanged(UPhysicalMaterial* NewSurfaceType, UPhysicalMaterial* OldSurfaceType): fires when surface type changes.

DataTable Row Reference

Movement sound DataTables use FMotionSurfaceSoundDataRow.

Row fields:

  • Physical Material: physical material matched for this surface.
  • Sound Variants: FMotionSoundVariants with MetaSound sources for movement actions.
  • Volume Multiplier: per-surface volume multiplier.
  • Pitch Multiplier: per-surface pitch multiplier.

Sound variant fields:

  • FootstepMetaSound: footstep sounds.
  • JumpMetaSound: jump takeoff sounds.
  • LandingMetaSound: landing impact sounds.
  • CrouchMetaSound: optional crouch movement sounds.
  • SprintMetaSound: optional sprint movement sounds.

All sounds are MetaSound sources that handle variation and movement state internally.

Animation Notifier API

Animation notifiers can call these functions:

cpp
// Foot contact
TriggerFootstepSound();

// Jump start
TriggerJumpSound();

// Ground impact
TriggerLandingSound();

// Custom movement action
TriggerMovementSound("Slide");

Motion - Advanced First Person Character Controller