Skip to content

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 Motion currently suppresses at the effective time scale, or while paused under Return 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 Bulge and Impact Ripple, require a Signal with a point and a nonzero normal.