UOverAnimComponent: Signals and Impact Signals
Header: OverAnimation/Runtime/OverAnimComponent.h
Generic Signal types and Response-route fields follow Signal · Impact Types and Response Types.
Details Properties
| UI name | C++ property | Default / range | Visibility condition | Effect |
|---|---|---|---|---|
| Max Pending Signals | MaxPendingSignals |
16 / 1–128 |
Always | Maximum length of the generic-Signal queue accepted while no runtime instance exists. Removes the oldest pending Signal when the limit is exceeded. |
| Listen for Gameplay Damage | bListenForGameplayDamage |
true |
Always | Subscribes to the Owner's OnTakePointDamage and OnTakeRadialDamage delegates in BeginPlay. The value is read when binding at BeginPlay; changing it at runtime does not automatically re-subscribe. |
| Point Damage Signal Name | PointDamageSignalName |
None |
Listen for Gameplay Damage enabled |
Signal-name override used by the Point Damage delegate. None resolves the assigned asset's Hit Impact protocol name. |
| Radial Damage Signal Name | RadialDamageSignalName |
None |
Listen for Gameplay Damage enabled |
Signal-name override used by the Radial Damage delegate. None resolves the assigned asset's Hit Impact protocol name. |
EOverAnimSignalDirectionSource
Direction source for Submit Named OverAnim Signal From Owner.
| Value | UI name | Resolved direction |
|---|---|---|
WorldUp |
World Up | Always world +Z. |
WorldDown |
World Down | Always world -Z. |
OwnerUp |
Owner Up | Owner up vector; world +Z when no Owner exists. |
OwnerDown |
Owner Down | Opposite the Owner up vector; world -Z when no Owner exists. |
OwnerForward |
Owner Forward | Owner forward vector; world forward when no Owner exists. |
OwnerRight |
Owner Right | Owner right vector; world right when no Owner exists. |
OwnerVelocity |
Owner Velocity | Owner velocity; ultimately replaced by world +Z when absent or zero. |
Generic Signal API
| Blueprint name | C++ declaration | Input | Return | Preconditions, rejection, and state changes |
|---|---|---|---|---|
| Submit OverAnim Signal | bool SubmitOverAnimSignal(const FOverAnimSignal& Signal) |
complete FOverAnimSignal |
bool |
Returns false when SignalName is None, or Magnitude is non-finite or negative. Returns false when runtime effects are not active. Attempts ApplyOverAnim() if not applied. Direction is normalized. If application succeeds but no manager exists, may enqueue it and return true. When a manager exists, returns its result. |
| Submit Named OverAnim Signal | bool SubmitNamedOverAnimSignal(FName SignalName, float Magnitude = 1.0f, FVector DirectionWS = FVector::ZeroVector, FVector OriginWS = FVector::ZeroVector) |
name, magnitude, world direction, world origin | bool |
Creates a generic Signal with Source set to Manual and applies the checks above. Requires a valid SignalName, valid Magnitude, and active runtime. |
| Submit Named OverAnim Signal From Owner | bool SubmitNamedOverAnimSignalFromOwner(FName SignalName, float Magnitude = 1.0f, EOverAnimSignalDirectionSource DirectionSource = EOverAnimSignalDirectionSource::OwnerUp) |
name, magnitude, direction-source enum | bool |
Chooses World Up/Down or Owner Up/Down/Forward/Right/Velocity. Replaces a missing Owner or zero Owner Velocity with a safe Up vector. Origin is the Target Mesh position, otherwise Owner position, otherwise zero. Then applies the Named Signal checks. |
| Resolve OverAnim Region For Bone | FName ResolveOverAnimRegionForBone(FName BoneName) |
Skeleton bone name | Region name or None |
Returns None when BoneName == None, automatic asset application fails, manager resolution fails, or the bone belongs to no Region. Attempts ApplyOverAnim() when not applied. |
C++-Only Protocol-Name Resolution
| C++ declaration | Input | Return | Preconditions and state |
|---|---|---|---|
FName ResolveSignalProtocolName(EOverAnimSignalProtocolChannel ProtocolChannel, FName CustomSignalName = NAME_None) const |
protocol channel, custom name | resolved Signal name or None |
A Custom channel returns CustomSignalName unchanged. Other channels resolve through the currently applied deformer's SignalProtocolSettings; returns None with no applied deformer. Does not apply an asset or change state. |
Contact-Based Impact Signal API
| Blueprint name | C++ declaration | Input | Return | Preconditions, rejection, and state changes |
|---|---|---|---|---|
| Submit OverAnim Impact Signal | bool SubmitOverAnimImpactSignal(FName SignalName = NAME_None, float Magnitude = 1.0f, FVector ImpactDirectionWS = FVector::ZeroVector, FVector ContactPointWS = FVector::ZeroVector, FVector ContactNormalWS = FVector::UpVector, FName SourceRegionName = NAME_None, FName SourceId = NAME_None, FName ContactBoneName = NAME_None) |
name, magnitude, impact direction, contact point/normal, source region/id, contact bone | bool |
Returns false if direction, point, or normal contains NaN. Applies the asset if needed and resolves the HitImpact protocol name. Replaces a zero normal with World Up and a zero direction with -normal. Creates a gameplay Signal with contact-point/normal flags, then applies generic Signal validation. |
| Submit OverAnim Hit Result Signal | bool SubmitOverAnimHitResultSignal(const FHitResult& HitResult, FVector RelativeVelocityWS, FVector NormalImpulseWS = FVector::ZeroVector, FName SignalName = NAME_None, bool bResolveSourceRegion = true, FName SourceId = NAME_None) |
hit, relative velocity, normal impulse, name, automatic source-region resolution, source id | bool |
Returns false if velocity/impulse contains NaN. Calculates magnitude from the assigned asset's impact settings and rejects a result at or below 0. Uses Normal when ImpactNormal is zero. When bResolveSourceRegion is true, resolves the Region from HitResult.BoneName. |
| Submit OverAnim Collision Signal | bool SubmitOverAnimCollisionSignal(const FHitResult& HitResult, UPrimitiveComponent* OtherComponent, FVector NormalImpulseWS = FVector::ZeroVector, FName SignalName = NAME_None, bool bResolveSourceRegion = true) |
hit, other Component, impulse, name, automatic source-region resolution | bool |
Obtains physics/Component/Owner velocity from the Other Component or Hit Component and computes velocity relative to the Target. Returns false for insufficient impact magnitude or failed asset application/protocol resolution. Duplicate impacts with the same source, route, bone, and nearby contact are suppressed according to asset deduplication settings. |
| Submit OverAnim Trace Impact Signal | bool SubmitOverAnimTraceImpactSignal(const FHitResult& HitResult, float Damage, FVector TraceDirectionWS, FName SignalName = NAME_None, bool bResolveSourceRegion = true) |
trace hit, damage, trace direction, name, automatic source-region resolution | bool |
Converts to a gameplay impact using ImpactNormal or Normal as the contact normal. Rejects non-finite Damage or NaN in direction/contact inputs. Rejects an asset damage-to-magnitude result at or below zero. |
| Submit OverAnim Point Damage Signal | bool SubmitOverAnimPointDamageSignal(float Damage, FVector HitLocationWS, FVector HitNormalWS, FName HitBoneName, FVector ShotDirectionWS, FName SignalName = NAME_None, bool bResolveSourceRegion = true) |
damage, hit location/normal/bone, shot direction, name, automatic source-region resolution | bool |
Forwards the input as a gameplay impact. Requires valid Damage/vectors, asset application and protocol resolution, and a positive damage magnitude. |
| Submit OverAnim Radial Damage Signal | bool SubmitOverAnimRadialDamageSignal(float Damage, FVector DamageOriginWS, const FHitResult& HitResult, FName SignalName = NAME_None, bool bResolveSourceRegion = true) |
damage, damage origin, hit, name, automatic source-region resolution | bool |
Uses ImpactPoint as the contact point for a blocking hit; otherwise uses the Target Mesh position. Computes impact direction from the origin toward contact. When no normal exists, uses -ImpactDirection, then applies gameplay-impact validation. |
Shared Rejection Conditions After Acceptance
- Generic Signals are not accepted when the Component or global master switch is disabled, when
Disable Effects in Slow Motioncurrently suppresses at the effective time scale, or while paused underReturn to Source Pose. - If the Signal name does not match a route, or the Response Rule's activation, region, or module conditions do not match, the manager may not develop the request into an effect.
- Modules requiring a contact frame, such as
Contact Dent + Ring BulgeandImpact Ripple, require a Signal with a point and a nonzero normal.