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. |
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.
- 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.