Skip to content

Smear

Purpose

UOverAnimSmearModule is an Offset / Smear module that uses Pose History and surface velocity to stretch the mesh surface with a time delay along the direction of motion.

  • Header: OverAnimation/Asset/OverAnimModule.h
  • Class: UOverAnimSmearModule
  • Execution Phase: Offset / Smear (EOverAnimModulePhase::Smear)
  • Default Input Composition: Re-Skinning

Shared by Simple and Details

Module Id, Module Name, enabled state, and Order Within Module Phase are managed by the Module Stack and are therefore omitted from this Details reference. Input Composition is a shared module property exposed in Details.

UI name Owning C++ property Default / range Effect
Master Effect Intensity UOverAnimMeshDeformer::MasterEffectIntensity 1.0 / minimum 0.0, UI maximum 3.0 Asset-wide value also shown in the selected module's Details. It scales authored strength for all modules in the asset, while each module's safety limits remain independent.
UI name C++ property Default / range Effect
Input Composition CompositionMode Re-Skinning Re-skins from the current control-point transform. The Smear constructor sets this value to Re-Skinning.
Length SimpleLength 1.0 / 0–5 Ratio applied to authored Buffer Size. 2.0 doubles the pose-history frame count. It is shown only in Simple, but is always applied at runtime.
Density SimpleDensity 1.0 / 0–5 Ratio applied to authored Noise Density. It changes only the break-up frequency, not depth or displacement amount. It has no effect when Use Noise is off.

Runtime interpretation of Simple knobs

Simple knobs do not modify Detailed values. Runtime resolves the following values from authored Detailed values regardless of the current layout.

Simple knob Resolved property Processing
SimpleLength NumFrames Applies a ratio to the authored frame count, rounds it, then limits it to 2–64. There is no separate property for pose spacing.
SimpleDensity NoiseDensity Applies a ratio to authored density and limits it to a minimum of 0. It is used in the result only when bUseNoise == true.

Details: Buffer

UI name C++ property Default / range Effect and relationship
Buffer Size NumFrames 2 / 2–64 Authored pose-sample count. Runtime limits the final frame count after multiplying by SimpleLength to 2–64. Larger values retain longer pose history and consume memory proportional to control-point count.
Transform Buffer Space TransformBufferSpace Component Space (Local) Component Space replays delayed animation poses relative to their parents. World Space realigns past world motion to the current component frame to preserve inertial trailing.
History Source HistorySource Source Animation Pose Source Animation Pose reads history and velocity from the original animation pose and velocity. Simulated Guide reads the preceding procedural guide result. This choice determines both position and angular-velocity sources even when Angular Velocity is enabled.

EOverAnimTransformBufferSpace

The BlueprintType enum used by TransformBufferSpace.

C++ value Editor UI Meaning
Local Component Space Stores parent-relative animation poses in history and replays them with delay.
World World Space Rebases past world motion to the current Skeletal Mesh Component frame to preserve trailing inertia.

EOverAnimTransformHistorySource

The BlueprintType enum used by HistorySource.

C++ value Editor UI Meaning
SourceAnimationPose Source Animation Pose Uses the original animation pose and velocity derived from it as history input.
SimulatedGuide Simulated Guide Uses the preceding procedural guide result and its velocity as history input.

Details: Activation, Smear, Threshold, Noise

UI name C++ property Default / range Visibility Effect
Driver Mode DriverMode Automatic + Signal Boost Always Automatic Motion keeps only pose-driven behavior and rejects Signals. Signal Gated Motion applies Smear only while a response envelope is active. Automatic + Signal Boost retains pose-driven behavior and weights history usage during a response.
Include Angular Velocity bUseAngularVelocity true Always Adds tangential surface velocity caused by bone angular velocity. When enabled, the runtime proxy also creates angular-velocity and control-point-position arrays.
Use Velocity Threshold bUseVelocityThreshold false Always Suppresses Smear until the final surface velocity exceeds the threshold.
Velocity Threshold VelocityThreshold 0.0 cm/s / minimum 0.0 When Use Velocity Threshold is enabled Minimum final surface velocity after combining linear and rotational components. It is not an angular-velocity-only threshold.
Use Noise bUseNoise true Always Determines whether to use Perlin-field-based break-up.
Noise Density NoiseDensity 50.0 / minimum 0.0 When Use Noise is enabled Authored frequency of the UV-space Perlin field. SimpleDensity is always applied to the final value. Higher values produce denser break-up.

EOverAnimSmearDriverMode

Value UI name Signal/Response effect
MotionOnly Automatic Motion Retains pose-history-driven behavior only. SupportsSignals() is false and Response Rule requests are rejected.
SignalGatedMotion Signal Gated Motion Applies Smear only when an active response envelope exists. Supports Pulse and Sustained Responses.
MotionWithSignalBoost Automatic + Signal Boost Retains procedural Smear while active responses weight history usage. Supports Pulse and Sustained Responses.

Execution · Signal · Response scope

Item Support
Signal Supported only when Driver Mode is not Automatic Motion.
Response Mode Pulse, Sustained
Response Parameters FOverAnimSmearResponseParameters
Automatic Six-Stage Motion Conditionally supported. The module must be enabled and named, use a Signal-receiving Driver Mode, and have Buffer Size >= 2. Default automatic stage settings disable Anticipation, Recoil, and Settle, and set Overshoot Strength to 0.45.
Pulse / Sustained timing Both are allowed when Driver Mode permits Signals.

Automatic Motion does not receive Signal requests. In this mode, a Response Rule is rejected even if it reaches the module instance.

Response Rule parameters and Signal conditions

The Module Parameters of a Response Rule use FOverAnimSmearResponseParameters.

UI name C++ property Default / range Effect
History Strength at Full Response HistoryStrengthAtMax 1.0 / 0.0–1.0 Fraction of configured pose history used at maximum response. Trail direction and the affected silhouette continue to be determined by motion.

Runtime checks that this parameter is finite and within 0.0–1.0. Request weight is ResolvedMagnitude × Master Effect Intensity × HistoryStrengthAtMax, limited to 0.0–1.0.

Limitations and performance

  • When Driver Mode == Automatic Motion, SupportsSignals() is false, so Signal/Response requests are rejected.
  • Automatic Six-Stage Responses require the module to be enabled, a Module Name, a Signal-receiving Driver Mode, and Buffer Size >= 2.
  • Pose-history memory grows with the final frame count from authored Buffer Size × SimpleLength and the control-point count. Final frame count is limited to 2–64.
  • Angular-velocity and position data are passed to the runtime proxy only when Use Angular Velocity is enabled. The noise field is not used when Use Noise is disabled.