Appearance
How to customize component profiles
Motion component defaults live in DataAsset profiles. The walk, sprint, crouch, jump, breathing, movement sound, and camera components read their behavior-defining values from the Profile asset assigned on the component.
Use profiles when you want to change Motion's shipped feel. Duplicate a Motion-owned profile into your project content, edit the duplicate, then assign that duplicate back to the component.
WARNING
Avoid editing the profiles that ship inside the Motion plugin. Treat them as released defaults that can be replaced or versioned by plugin updates.
Choose the profile to duplicate
The current Motion defaults are in:
text
/MotionCore/Motion/Profiles/v2_0_0/| Component | Default profile |
|---|---|
MotionWalkComponent | DA_MotionWalkProfile_Default_v2_0_0 |
MotionSprintingComponent | DA_MotionSprintProfile_Default_v2_0_0 |
MotionCrouchingComponent | DA_MotionCrouchProfile_Default_v2_0_0 |
MotionJumpComponent | DA_MotionJumpProfile_Default_v2_0_0 |
MotionBreathingComponent | DA_MotionBreathingProfile_Default_v2_0_0 |
MotionMovementSoundComponent | DA_MotionMovementSoundProfile_Default_v2_0_0 |
MotionCameraComponent | DA_MotionCameraProfile_Default_v2_0_0 |
When a component has no assigned Profile, it falls back to the current Motion default for its type. Existing components keep the profile reference already saved on them.
In the editor, the assigned profile appears on each Motion component's Details panel.
Duplicate and assign a profile
- Enable Show Plugin Content in the Content Browser.
- Find the Motion profile you want to change under
MotionCore > Motion > Profiles > v2_0_0. - Duplicate it into your project's
Contentfolder. - Rename the duplicate for your project, for example
DA_PlayerSprintProfile. - Edit the duplicate's values.
- Assign the duplicate to the component's
Profileproperty.
The profile reference is the authored setup point. Once you duplicate a profile into project content, point the matching component at that duplicate instead of editing the plugin default.
Profiles own complete authored settings, including whole FMotionCurve values, movement sound settings, GameplayEffect references, shared Stable camera-presentation settings, and surface sound table references.
Components copy profile-authored data into transient runtime fields during setup. Playback counters, Gameplay Ability System (GAS) effect handles, prediction state, and other mutable state remain on the component rather than mutating the profile asset.
Assign profiles during setup before play begins. The main setting you edit is the Profile reference; behavior-defining defaults should not be tuned again on component-local fields.
WARNING
SetProfile is setup-only, not a runtime loadout swap.
After saving and reloading, each Motion component should still point at the project-owned profile asset you assigned. Check both starter-character duplicates and retrofitted ACharacter Blueprints before tuning further.
Validate a custom profile
All Motion component profiles inherit from UMotionComponentProfile. The shared profile details are:
| Field | Purpose |
|---|---|
ProfileIdentifier | Required authored identifier. Duplicating an asset copies this value until you change it; the Primary Asset ID still uses the asset class and asset name. |
DisplayName | Required localized label available to editor and project tooling. |
Description | Optional localized summary; an empty value produces a validation warning. |
Profiles validate through ValidateProfile.
Validation returns FMotionProfileValidationMessage entries with EMotionProfileValidationSeverity::Error or EMotionProfileValidationSeverity::Warning. Errors make ValidateProfile return false and block a valid setup. Warnings are surfaced to tooling or logs without making the profile invalid.
Read profile detail fields directly when tooling needs names or descriptions. For exact fields and validation rules, see Component profile API reference.
Movement sound profiles are configured the same way: duplicate the profile, assign project data, then point the component at the duplicate.
Keep profile scope clear
Component profiles are for shared component defaults. They do not replace native first-person item configs, inventory data, weapons, loadouts, or per-item presentation.
Use UMotionNativeFirstPersonItemConfig assets for local first-person item visuals: held item meshes, automatic held pose animations or custom overlay graphs, upper-body solve tuning, item transforms, optional linked animation layers, and per-item render tuning.
Use the camera profile for shared camera defaults such as native first-person body presentation, StableCameraClearanceCurve, StableCameraClearancePadding, MaxStableCameraClearanceCorrection, StablePresentationAnchorOffset, StablePresentationOffsetCurve, MaxStablePresentationCorrection, base eye offset, interpolation, pivot socket, view pitch limits, and camera collision channel/radius. Camera height remains runtime-driven. The Stable camera consumes the actual composed point, and Stable presentation follows that height through the evaluated MotionCamera reference, so crouch, slide, vault, or other project-defined height changes do not need separate profile curves.
An empty CameraPivotSocketName selects Stable camera placement. Native Stable presentation still requires the full-body MotionCamera socket as an evaluated body reference. A valid non-empty name selects Socket camera placement and bypasses Stable clearance/presentation correction; an invalid requested socket is an error and does not fall back to Stable. The camera profile does not expose authored defaults for runtime static-offset maps, world-obstruction padding, or ceiling-check distance. Those remain runtime API state or implementation constants.