Mesh Bulge
Public type: UOverAnimMeshBulgeModule
Header: OverAnimation/Asset/OverAnimModule.h
Execution Phase: Shape
Purpose
Mesh Bulge is a Shape module that expands a Bone Group surface in response to motion or Runtime Signals. Final displacement is limited in order by Region mask, Response strength, Bulge Scale, and the asset silhouette budget.
Details properties
Module ID, Module Name, Enabled, and Order Within Module Phase are managed by the Module Stack or hidden by Details customization and are omitted below. Input Composition is an inherited property exposed in Details.
Simple
| UI name |
C++ property |
Default · unit · range |
Effect and interaction |
Strength |
SimpleStrength |
1.0, unitless, 0–5 |
Ratio applied to authored Bulge Scale. 2.0 is 200%; 0 removes bulge. |
Sensitivity |
SimpleSensitivity |
1.0, unitless, 0–5 |
Applies an inverse ratio to authored speed/acceleration thresholds and Motion Intensity Dead Zone. 2.0 halves thresholds. 0 uses a safe ratio producing 100×, effectively preventing response. |
Snap |
SimpleSnap |
1.0, unitless, 0–5 |
Applies a direct ratio to authored Intensity Attack Rate and a softened ratio to Motion Smoothing Rate. 2.0 doubles attack; 0 stops rising. |
Settle |
SimpleSettle |
1.0, unitless, 0–5 |
Applies an inverse ratio to authored Intensity Release Rate. 2.0 halves release rate, lasting twice as long. 0 makes release 100× authored value. |
Focus |
SimpleFocus |
1.0, unitless, 0–5 |
Applies a direct ratio to authored distribution exponent, inverse ratio to focal radius, and additive span to root influence. It has no spatial-concentration effect in Uniform. |
Directionality |
SimpleDirectionality |
1.0, unitless, 0–5 |
Adds a fixed span to authored Directional Bias. 1.0 gives no change, 0 gives -1, and 5 gives +1; result is limited to 0–1. |
Simple values do not modify Detailed fields. Runtime applies these knobs to authored Detailed values regardless of layout and limits results to their safety ranges.
OverAnim | Driver
| UI name |
C++ property |
Default · unit · range |
Effect and interaction |
Driver Mode |
DriverMode |
Motion and Signal (Maximum) |
Selects whether motion/Signal inputs are used and how they combine. Runtime Signal Only hides OverAnim|Motion and OverAnim|Collision Trigger. Animation / Guide Motion Only does not receive Signal Responses. |
OverAnim | Motion
| UI name |
C++ property |
Default · unit · range |
Visibility · effect |
Threshold Type |
ThresholdType |
Range Map (Recommended) |
Shown when Driver Mode != Runtime Signal Only. Range Map converts continuously between min/max; Threshold Gate creates a binary accent above minimum threshold. |
Motion Source |
MotionSource |
Source Animation Pose |
Same visibility. Source Animation Pose excludes upstream procedural dynamics; Simulated Guide Motion uses Spring/Follow Through results and requires sequential geometry input. |
Mesh Bulge Velocity Type |
MeshBulgeVelocityType |
LinearVelocity |
Same visibility. Selects linear or angular units; changes unit interpretation of Min/Max Speed and acceleration thresholds together. |
Motion Driver |
MotionDriver |
Speed |
Same visibility. Speed uses Min/Max Speed; Acceleration uses Acceleration Min/Max Threshold. |
Min Speed |
MinSpeed |
50.0 cm/s, >= 0 |
Shown with motion and Motion Driver = Speed. Motion below this creates no procedural bulge. Interpreted as deg/s for AngularVelocity. |
Max Speed |
MaxSpeed |
500.0 cm/s, >= 1 |
Same condition. Procedural bulge reaches maximum here. Runtime always applies SimpleSensitivity inverse ratio, then adjusts to at least Min Speed + 1. |
Acceleration Min Threshold |
AccelerationMinThreshold |
400.0, >= 0 |
Shown with motion and Motion Driver = Acceleration. Lower acceleration creates no procedural bulge. Units are cm/s² linear or deg/s² angular. |
Acceleration Max Threshold |
AccelerationMaxThreshold |
4000.0, >= 1 |
Same condition. Procedural bulge reaches maximum here. Runtime always applies SimpleSensitivity inverse ratio, then adjusts to at least Min + 1. |
Motion Smoothing Rate |
MotionSmoothingRate |
12.0 s⁻¹, >= 0 |
Shown with motion. Low-pass filter rate before threshold mapping; 0 applies immediately. Snap also changes this value. |
Motion Intensity Dead Zone |
MotionIntensityDeadZone |
0.01, 0–1 |
Shown with motion. Normalized intensity below this becomes 0. Sensitivity acts inversely on it. |
Measurement Basis |
MeasurementBasis |
Auto |
Shown with motion. Selects Region-motion scale basis: Auto, character/locomotion height, region span/bounds/chain, average bone length, or absolute unit. |
OverAnim | Distance
| UI name |
C++ property |
Default · unit · range |
Visibility · effect |
Root Influence |
DistanceWeight |
0.0, 0–1 |
Authored bulge influence at Region root. SimpleFocus additive span is always applied; used by Terminal Taper. |
Distribution Exponent |
DistributionExponent |
1.5, >= 0.1 |
Shown when Distribution Mode != Uniform. SimpleFocus always multiplies authored spatial falloff. Affects only spatial profile, not motion intensity. |
OverAnim | Shape
| UI name |
C++ property |
Default · unit · range |
Visibility · effect |
Bulge Scale |
BulgeScale |
1.0, >= 0 |
Geometric expansion applied after Region mask and Response intensity. SimpleStrength always multiplies the final value. |
Distribution Mode |
DistributionMode |
Terminal Taper |
Uniform applies equal strength throughout; Terminal Taper increases along skeleton chain toward focus bone; Focal peaks by component-space distance from focus bone. Non-Uniform modes deactivate if no valid focus bone resolves. |
Focus Bone |
FocusBoneName |
None |
Shown when Distribution Mode != Uniform. None uses the Region motion sample bone resolved from Bone Group. Effect does not run if specified or fallback bone cannot resolve to a control point. |
Focal Radius Calibration Mode |
FocalRadiusCalibrationMode |
Character Relative |
Shown for Focal. Selects Character Relative, Region Relative, or Absolute, determining visibility of the next two radius fields. |
Focal Radius |
FocalRadius |
30.0 cm, >= 0.1 |
Shown for Focal unless calibration is Region Relative. SimpleFocus inverse ratio is always applied. |
Focal Radius Ratio |
FocalRadiusRatio |
0.5, >= 0.01, UI maximum 2.0 |
Shown for Focal with Region Relative. SimpleFocus inverse ratio is always applied. |
Intensity Attack Rate |
IntensityAttackRate |
24.0 s⁻¹, >= 0 |
SimpleSnap always multiplies authored rise rate. Final 0 prevents rising intensity. |
Intensity Release Rate |
IntensityReleaseRate |
8.0 s⁻¹, >= 0 |
SimpleSettle inverse ratio always multiplies authored fall rate. |
Directional Bias |
DirectionalBias |
0.65, 0–1 |
0 is radial expansion; 1 is planar direction perpendicular to motion axis. SimpleDirectionality additive span is always applied. |
Response |
Response |
SmoothStep |
Spatial response curve, selectable as Linear or SmoothStep. |
OverAnim | Mask
| UI name |
C++ property |
Default · unit · range |
Effect |
Include Descendant |
bIncludeDescendant |
true |
Whether focal/terminal shape profiles include descendants of focus bone. |
OverAnim | Collision Trigger
| UI name |
C++ property |
Default · unit · range |
Visibility · effect |
Enable Collision Trigger |
bEnableCollisionTrigger |
false |
Shown with motion. Gates motion target by trigger result. If Trigger Bone is None, current implementation leaves gate open. |
Trigger Bone |
TriggerBoneName |
None |
Shown when trigger is enabled with motion. Finds a control point in this Bone Group whose motion is tested. If not found, collision gate is not applied. |
Trace Length |
TraceLength |
200.0 cm, >= 0 |
Same condition. Upper bound for Trigger Distance during initialization. Current PerformMotionTriggerTrace() uses sphere overlap at origin rather than casting a ray of this length, so overlap result ignores it. |
Trigger Distance |
TriggerDistance |
100.0 cm, >= 0 |
Same condition. Clamped to Trace Length during initialization. Current sphere-overlap implementation does not use it for hit-distance testing. |
Sphere Radius |
SphereRadius |
10.0 cm, >= 0 |
Same condition. Radius of current runtime sphere overlap using Trigger Collision Channel. |
Trigger Collision Channel |
TriggerCollisionChannel |
WorldStatic |
Same condition. Collision channel for sphere overlap. |
Draw Debug Trace |
bDrawDebugTrace |
false |
Same condition. Draws current overlap sphere in debug builds. |
OverAnim (inherited)
| UI name |
C++ property |
Default · unit · range |
Effect |
Input Composition |
CompositionMode |
Additive Offset |
Additive Offset adds displacement to previous composed result; Re-Skinning reevaluates from current control-point transforms. |
Execution · Signal · Response scope
| Item |
Behavior |
| Phase |
Shape |
| Signal |
Received only when Driver Mode is not Animation / Guide Motion Only. |
| Response Mode |
Declares Pulse and Sustained, but Sustained is allowed only with Timing Driver = Automatic Six-Stage Motion. Other Timing Drivers' Sustained requests are processed as Pulse. |
| Automatic Six-Stage Motion |
Compatible. Default timing role is Volume; default settings disable Anticipation/Recoil/Settle and enable only Overshoot. |
| Driver Mode |
Animation / Guide Motion Only uses pose/guide motion; Runtime Signal Only uses Signals; Motion and Signal (Maximum) uses the greater intensity; Signal Gated Motion multiplies motion and Signal intensities. |
Public Enums
EOverAnimMeshBulgeDriverMode
BlueprintType enum for DriverMode; determines motion calculation and acceptance of Response Rule Signals.
| C++ value |
Editor UI |
Meaning |
MotionOnly |
Animation / Guide Motion Only |
Calculates intensity only from pose/guide motion. Signals/Responses unsupported. |
SignalOnly |
Runtime Signal Only |
Uses Signal intensity without pose-derived motion. Motion and Collision Trigger Details are hidden. |
MotionAndSignal |
Motion and Signal (Maximum) |
Uses the greater of motion and Signal intensity. |
SignalGatedMotion |
Signal Gated Motion |
Multiplies motion intensity by active Signal response intensity. Motion output is 0 without active Signal. |
EOverAnimMeshBulgeMotionSource
BlueprintType enum for MotionSource, used only when DriverMode != SignalOnly.
| C++ value |
Editor UI |
Meaning |
SourcePose |
Source Animation Pose |
Measures original animation pose, excluding preceding procedural Dynamics. |
SimulatedGuide |
Simulated Guide Motion |
Measures preceding simulated guide transforms. Shape input must provide sequential geometry input. |
EOverAnimMeshBulgeThresholdType
BlueprintType enum for ThresholdType, selecting how Speed or Acceleration becomes intensity when DriverMode != SignalOnly.
| C++ value |
Editor UI |
Meaning |
Normalize |
Range Map (Recommended) |
Continuous intensity from 0 at minimum threshold to 1 at maximum. |
FilterCut |
Threshold Gate |
Binary accent based on exceeding minimum threshold. |
EOverAnimMeshBulgeVelocityType
UENUM for MeshBulgeVelocityType, selecting physical units for Speed and Acceleration thresholds when DriverMode != SignalOnly.
| C++ value |
Meaning |
LinearVelocity |
Uses linear velocity/acceleration; Speed is cm/s, Acceleration is cm/s². |
AngularVelocity |
Uses angular velocity/acceleration; Speed is deg/s, Acceleration is deg/s². |
EOverAnimMeshBulgeMotionDriver
BlueprintType enum for MotionDriver, selecting the threshold pair when DriverMode != SignalOnly.
| C++ value |
Editor UI |
Meaning |
Speed |
Speed |
Uses MinSpeed and MaxSpeed. |
Acceleration |
Acceleration |
Uses AccelerationMinThreshold and AccelerationMaxThreshold. |
EOverAnimMeshBulgeDistributionMode
BlueprintType enum for DistributionMode, selecting spatial distribution of motion intensity inside the Region.
| C++ value |
Editor UI |
Meaning |
Uniform |
Uniform |
Same shape strength throughout Region; does not use Focus Bone or Distribution Exponent. |
TerminalTaper |
Terminal Taper |
Profile increasing along skeleton chain toward focus bone. |
Focal |
Focal |
Component-space distance peak/falloff centered on focus bone; enables focal-radius properties. |
EOverAnimMeshBulgeResponse
UENUM for Response, selecting final spatial response curve.
| C++ value |
Meaning |
Linear |
Applies spatial weight linearly. |
SmoothStep |
Applies a smooth-step curve with smooth start/end slopes. |
Response Rule-only parameters
The Module Response struct for UOverAnimMeshBulgeModule is FOverAnimMeshBulgeResponseParameters.
| UI name |
C++ property |
Default · unit · range |
Effect |
Intensity Scale |
IntensityScale |
1.0, >= 0 |
Multiplies resolved response magnitude, then clamps by Max Intensity. |
Max Intensity |
MaxIntensity |
3.0, >= 0 |
Signal-intensity cap after Intensity Scale, before Bulge Scale and Region displacement budget. |
One-Shot Decay Rate |
DecayRate |
8.0 s⁻¹, >= 0 |
Exponential decay for Pulse Signal intensity. Sustained automatic response follows its envelope and does not use this decay. |
Signal requests require valid Mesh Component, positive finite resolved magnitude, nonnegative Response parameters above, and Attack/Hold/Release envelope values all >= 0. Finite DirectionWS is converted to component-space shape direction; if invalid or zero, intensity is still processed but direction is zero.
Signal Gated Motion retains signal-gate motion history based on control-point count and pre-roll length. For automatic motion-phase sustained responses, pre-roll time is calculated from motion-phase tempo.
Simulated Guide Motion requires sequential geometry input; otherwise upstream procedural Shape input cannot be used consistently.
- When
Distribution Mode != Uniform, failure to resolve Focus Bone or fallback Region motion sample bone records a warning and deactivates the effect.
- Collision trigger tests trigger-control-point motion dead zone and performs sphere overlap each fixed step.
Sphere Radius and channel directly affect collision cost.
- Runtime does not use
Bulge Scale below 0, Focal Radius below 0.1 cm, Focal Radius Ratio below 0.01, or Distribution Exponent below 0.1.