Skip to content

Documentation

Getting started

IntroductionPublished

Getting started

Install the plugin, create project-owned data, and validate the first surface-aware contact.

Product
Footstep Studio
Version
Documentation 2.11.2
Content
7 chapters
On this page

01

Install or replace the plugin cleanly

Keep one FootstepSystem root, rebuild source consumers, and preserve project-owned authoring outside the plugin mount.

  1. 1

    Close Unreal Editor

    Do not replace a source plugin while its modules or assets are loaded.

  2. 2

    Install one plugin root

    Place the descriptor at Project/Plugins/FootstepSystem/FootstepSystem.uplugin, or use the equivalent engine-plugin installation managed by Fab. Avoid a nested FootstepSystem/FootstepSystem directory.

  3. 3

    Replace the complete previous plugin

    Do not merge new and old plugin folders. When replacing a project source copy, remove only that copied plugin's stale Binaries and Intermediate directories.

  4. 4

    Regenerate and rebuild

    Regenerate project files for a C++ project, build its Editor target, open the project, enable Footstep Studio, and restart when prompted.

  5. 5

    Validate before migration

    Verify the fourteen plugin assets, compile the material templates on the target RHI, and validate project-owned Data Assets before changing production content.

02

Know what the package contains

Footstep Studio is a production plugin, not a template project or a presentation-asset library.

Version 2.11.2 contains one production Runtime module, configuration, customer documentation, three neutral Starter Data Assets, three Material Functions, three master material templates, and five ready-to-duplicate Material Instances. Host projects, caches, tests, internal tooling, presentation media, and project artwork are outside the customer payload.

  • Included Data Assets: DA_FSP_SurfaceData_Starter, DA_FSP_Profile_Starter, and the valid no-op DA_FSP_Footwear_Starter.
  • Included material library: MF_FSP_SourceExclusion, MF_FSP_DecalReceiverNormalFilter, MF_FSP_SurfaceImpressionCoverage, three canonical masters, and five neutral starting instances.
  • All bundled code, documentation, and product assets are original product work. The package includes no third-party code or presentation asset; Unreal Engine, Niagara, and Data Validation remain Epic technology supplied under the customer's Unreal Engine installation and agreements.
  • Not included: demo map, character, animation, sound, Niagara System, customer texture, Physical Material, Blueprint, or authored footwear presentation.
  • Project teams supply every presentation asset and retain responsibility for its licensing and redistribution rights.
ClassPlugin content path
Surface Data/FootstepSystem/Data/DA_FSP_SurfaceData_Starter
Footstep Profile/FootstepSystem/Data/DA_FSP_Profile_Starter
Footwear Profile/FootstepSystem/Data/DA_FSP_Footwear_Starter
Material Function/FootstepSystem/Materials/MF_FSP_SourceExclusion
Material Function/FootstepSystem/Materials/Functions/MF_FSP_DecalReceiverNormalFilter
Material Function/FootstepSystem/Materials/Functions/MF_FSP_SurfaceImpressionCoverage
Material/FootstepSystem/Materials/Templates/M_FSP_Decal_ColorRSM_Template
Material/FootstepSystem/Materials/Templates/M_FSP_Decal_ColorNormalRSM_Template
Material/FootstepSystem/Materials/Templates/M_FSP_SurfaceImpression_Template
Material Instance/FootstepSystem/Materials/Instances/MI_FSP_Decal_ColorRSM_Immediate_Template
Material Instance/FootstepSystem/Materials/Instances/MI_FSP_Decal_ColorRSM_SurfaceTransfer_Template
Material Instance/FootstepSystem/Materials/Instances/MI_FSP_Decal_ColorNormalRSM_Immediate_Template
Material Instance/FootstepSystem/Materials/Instances/MI_FSP_Decal_ColorNormalRSM_SurfaceTransfer_Template
Material Instance/FootstepSystem/Materials/Instances/MI_FSP_SurfaceImpression_Template

03

Enable the plugin and create project-owned copies

Start from the neutral scaffolds, then keep all production tuning inside the consuming project.

  1. 1

    Enable Footstep Studio

    Open Edit > Plugins, search for Footstep Studio, enable it, and restart the editor when requested. Niagara and Data Validation are declared plugin dependencies.

  2. 2

    Show plugin content

    Enable Show Plugin Content in the Content Browser and open FootstepSystem/Content/Data.

  3. 3

    Duplicate all three Starter assets

    Copy DA_FSP_SurfaceData_Starter, DA_FSP_Profile_Starter, and DA_FSP_Footwear_Starter into a project-owned /Game folder and rename them for the production set.

  4. 4

    Repair project-owned references

    Assign the copied Surface Data to the copied Footstep Profile. Assign the copied Footwear Profile as Default Footwear Profile only when an explicit neutral fallback is wanted; null preserves surface-only behavior.

  5. 5

    Duplicate the required material instances

    For each immediate or transferred decal, choose MI_FSP_Decal_ColorRSM_* when it must not write DBuffer Normal or MI_FSP_Decal_ColorNormalRSM_* when it must. Copy the matching Immediate or SurfaceTransfer instance and MI_FSP_SurfaceImpression_Template as needed, then replace neutral textures and tune project-owned values.

  6. 6

    Copy a master only for a custom graph

    The bundled masters already wire receiver-normal filtering, source exclusion, and Surface Impression coverage. Preserve the documented runtime parameter names if a project-owned master replaces them.

04

Connect Unreal collision data to surface definitions

The plugin reads project-owned Physical Materials and Physical Surfaces; it never invents or overwrites the project taxonomy.

Name the required Physical Surface slots under Edit > Project Settings > Physics > Physical Surface. Create one Physical Material per floor family, set its Surface Type, and assign it through the floor material or material instance.

  1. 1

    Name the slots

    Assign project terms such as Stone, Dirt, Wood, or Water to the required Surface Type slots.

  2. 2

    Author Physical Materials

    Set the correct Surface Type on each project Physical Material and connect it to collision-relevant floor materials.

  3. 3

    Add exact overrides when needed

    When two Physical Materials share a Surface Type but require different feedback, add an Exact Physical Material Override to Surface Data.

05

Author a valid surface payload

Configure the payload that the test contact actually resolves; explicit surface definitions and event overrides take precedence over broader defaults, even when their channels are disabled.

  1. 1

    Choose the test floor's definition

    Read the Physical Material assigned to the test floor and its Physical Surface Type, then edit the matching exact-material or Physical Surface definition. After configuring the component and triggering the first contact below, confirm that Out Context reports this same identity; do not assume the global default was selected.

  2. 2

    Make the resolved Step usable

    For the resolved Default or Surface Type definition, enable Default Payload > Audio and add at least one non-null sound with a finite positive weight. The Starter's default payload is the Step payload.

  3. 3

    Keep unfinished channels disabled

    Leave Niagara and Decal disabled until each channel has a valid project-owned asset.

  4. 4

    Remove unused neutral definitions

    Delete Starter Surface Type entries the project does not use. A matching explicit surface owns resolution ahead of the global Default Definition.

  5. 5

    Author deliberate event overrides

    The Starter includes a disabled Land override on every definition. Enable and populate that exact Land override, or remove it when Land should inherit the definition's Default Payload. The same matching-key rule applies to authored Step, Pivot, Slide, Jump, and named Custom overrides.

  • An intentionally disabled channel is valid and emits nothing.
  • An enabled channel without a usable positive-weight asset is invalid.
  • An explicit disabled event payload is not skipped in favor of a louder default; it is an intentional no-op for that event.
  • The Starter Surface Type 1 through 9 definitions can shadow the global Default Definition when the ground resolves one of those types; their disabled Default Payload is used for Step and their disabled Land override is used for Land.
  • Duplicate Surface Type, exact Physical Material, or event keys fail Data Validation instead of resolving ambiguously.

06

Configure the profile and component

The Footstep Profile owns designer tuning; the Footstep Component owns event-driven runtime admission and presentation.

  1. 1

    Review the copied profile

    Verify Surface Data, left and right sockets, Trace Channel, Trace Up Offset, Trace Down Distance, Min Speed For Step, Max Effect Distance, channel budgets, retained-state capacities, and optional Default Footwear Profile.

  2. 2

    Review world budgets

    Under Project Settings > Studio > Footstep Studio, set aggregate audio, Niagara, decal, and Surface Impression ceilings for the target scene and platform.

  3. 3

    Add FootstepComponent

    Add the component to the character, pawn, or actor Blueprint and assign the project-owned Footstep Profile.

  4. 4

    Keep diagnostics off by default

    Collect Runtime Stats, Broadcast Rejected Events, and Log Rejected Requests are scoped diagnostic controls, not normal production settings.

  • The component has no permanent Tick.
  • Designer-owned values stay in Data Assets rather than an Animation Blueprint or character Tick.
  • A moving non-Character actor is supported because Step movement policy reads horizontal owner velocity.

07

Trigger and validate the first contact

Use the entry point that matches the source data, then prove both success and intentional rejection paths.

Entry pointUse it whenGround query
Trigger Footstep From SocketA skeletal mesh owns the left, right, or custom socketAt most one plugin line trace
Trigger Footstep at LocationThe project already owns a world-space contact positionAt most one plugin line trace
Trigger Footstep From HitCollision code already owns a valid blocking hitNo plugin ground trace; accepted decals can still perform separate bounded receiver-placement queries
Trigger FootstepAdvanced code builds the complete requestDepends on request data
  1. 1

    Place skeletal contacts correctly

    Put the Footstep AnimNotify at the first weight-bearing frame, select Left Foot or Right Foot, use Step, and author a normalized Strength 01.

  2. 2

    Reuse the landing hit

    From On Landed, derive project-owned normalized impact strength and call Trigger Footstep From Hit. Do not add a duplicate Land notify.

  3. 3

    Validate assets

    Run Validate Assets on the copied Surface Data, Footstep Profile, and any Footwear Profile. Resolve every error before saving the production set.

  4. 4

    Check observable results

    Confirm left and right contacts resolve the intended surface, an absent socket returns MissingSocket without a trace, and the Output Log remains quiet with diagnostics disabled.