Skip to content

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.

Safety · performance · validation

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