Skip to content

Region · Calibration Types

Baseline: OverAnim 0.1.0 Beta · Unreal Engine 5.8
Headers: OverAnimation/Runtime/OverAnimProportionCalibration.h, OverAnimation/Types/OverAnimRegionTypes.h

This page documents public types that interpret Region distances and motion features relative to character size. For Region masks themselves, see Bone Group · Region.

Region Mask · LOD C++ Contracts

The Region mask, LOD, and composition types in OverAnimRegionTypes.h are used by a Bone Group's Region settings. See Bone Group · Region for the complete Details field table.

Enum or C++ Declaration Value · Return Contract
EOverAnimRegionFalloffMode Linear, SmoothStep, Power FOverAnimRegionMaskPolicy::FalloffMode selects the curve between 0 and full in the vertex mask. Only Power reads FalloffExponent.
EOverAnimRegionLodPolicy AllowInactive, WarnIfInactive, RequireCoverage Respectively allows, warns about, or requires Region coverage at the LOD.
EOverAnimRegionCompositionPolicy AdditiveClamped (Additive Delta), StrongestDelta (Strongest Delta) Composes overlapping Region deltas either as a clamped sum or as the single strongest delta.
bool OverAnimRegionLod::RequiresCoverage(EOverAnimRegionLodPolicy Policy, bool bIsAttachmentDependency) true when coverage is required Always true when bIsAttachmentDependency is true, regardless of policy. Otherwise true only for RequireCoverage. Not a Blueprint node.
FOverAnimRegionMaskPolicy Field Default · Range Effect · Condition
FalloffMode SmoothStep Selects the falloff curve above.
ZeroWeight 0, 0..1 The Region mask is 0 at or below this skin weight.
FullWeight 1, 0..1 The Region mask is 1 at or above this skin weight. Must be greater than ZeroWeight to create a valid transition range.
FalloffExponent 1, 0.01+ Curvature of Power mode. Other modes retain the value but do not use it in the result.

Calibration Enums

Enum Value Meaning
EOverAnimSpatialCalibrationMode CharacterRelative Multiplies authored linear distance by character scale.
RegionRelative Uses Region reference size and ratio when valid; otherwise falls back to character-relative.
Absolute Uses authored distance unchanged.
EOverAnimMotionMeasurementBasis Auto Selects locomotion height for actor motion; for Region motion, selects chain/span/bounds/average bone in that order.
CharacterHeight, LocomotionHeight Uses a whole-character scale.
RegionSpan, RegionBoundsRadius, RegionChainLength, AverageBoneLength Uses that scale only when a Region measurement exists; otherwise resolution fails.
Absolute Uses scale 1.

FOverAnimProportionCalibrationSettings

The OverAnimProportion namespace provides the following aliases for C++ integrations that otherwise require long structure names.

Alias Original Type
OverAnimProportion::FCalibration FOverAnimProportionCalibrationSettings
OverAnimProportion::FCharacter FOverAnimResolvedCharacterProportions
OverAnimProportion::FRegion FOverAnimResolvedRegionProportions
OverAnimProportion::FMotionScales FOverAnimMotionMeasurementScales
Details UI Name C++ Property Default · Range Effect
Enable Automatic Calibration bEnableAutomaticCalibration true Calibrates linear distance, speed, and acceleration using measured proportions. Does not change angular or time values.
Reference Character Height ReferenceCharacterHeight 180 cm, 1+ Reference height at which character scale equals 1.
Locomotion Root Bone LocomotionRootBone None Reference-pose bone from which locomotion height is measured to the ground. None automatically selects the body root.
Reference Locomotion Height ReferenceLocomotionHeight 90 cm, 1+ Authored reference height for actor speed/acceleration.
Reference Ground Probe Radius ReferenceGroundProbeRadius 42 cm, 1+ Scale reference for ground-probe distance.
Reference Region Span Length ReferenceRegionSpanLength 60 cm, 1+ Scale reference for Region endpoint span.
Reference Region Bounds Radius ReferenceRegionBoundsRadius 20 cm, 1+ Scale reference for Region bounds radius.
Reference Region Chain Length ReferenceRegionChainLength 60 cm, 1+ Scale reference for Region chain length.
Reference Average Bone Length ReferenceAverageBoneLength 15 cm, 1+ Scale reference for Region average bone length.
Minimum Character Scale MinimumCharacterScale 0.25, 0.01..1 Lower bound for automatically calculated scale.
Maximum Character Scale MaximumCharacterScale 4, 1..10 Upper bound for automatically calculated scale. Internal resolution sanitizes it to no less than the minimum.

ResolveMeasurementScale returns 1 when automatic calibration is disabled or the measurement/reference is invalid. With valid measurement and reference values, it clamps Measured / Reference to the minimum/maximum scale range.

Calibration C++ Resolver Contracts

C++ Declaration Return Input · Boundary Contract
float ResolveMeasurementScale(float MeasuredValue, float ReferenceValue) const Scale in the character-scale range Returns 1 if automatic calibration is disabled or the measurement/reference is non-finite or not positive. Otherwise clamps MeasuredValue / ReferenceValue from max(MinimumCharacterScale, 0.01) through max(MaximumCharacterScale, minimum).
float ResolveCharacterScale(float CharacterHeight) const Character-height scale Result of ResolveMeasurementScale(CharacterHeight, ReferenceCharacterHeight).
float ResolveOptionalMeasurementScale(float MeasuredValue, float ReferenceValue) const Optional Region measurement scale Returns 0 if the measurement is non-finite or not positive. Otherwise returns ResolveMeasurementScale. 0 denotes absence of a Region measurement, not character-scale fallback.

FOverAnimMotionMeasurementScales

This structure is a runtime read-only snapshot. Read it from FOverAnimSignal::MotionFeatures.MeasurementScales.

C++ Property Default Meaning
CharacterHeightScale 1 Calibrated character-height scale
LocomotionHeightScale 1 Calibrated locomotion-height scale
GroundProbeRadiusScale 1 Calibrated ground-probe-radius scale
RegionSpanScale, RegionBoundsRadiusScale, RegionChainLengthScale, AverageBoneLengthScale 0 0 when Region measurements are absent.
bIsRegionMotion false Whether the current Signal is Region motion.
bHasRegionMeasurements false Whether at least one Region scale is valid.

TryResolveScale(Basis, OutScale) returns false when a Region* basis is selected but its Region measurement is absent or 0. For Region motion, Auto falls back through chain → span → bounds → average bone; for actor motion, it uses locomotion height.

C++ Declaration Return · Out Contract
bool IsValid() const Whether the scale snapshot is valid CharacterHeightScale, LocomotionHeightScale, and GroundProbeRadiusScale must all be finite and positive. Region-scale presence is not included in this check.
bool TryResolveScale(EOverAnimMotionMeasurementBasis Basis, float& OutScale) const true and OutScale when a scale is found Sets OutScale to 0 at call start. Absolute uses 1; character/locomotion use their respective scales. Region* uses its scale only when bHasRegionMeasurements is true. Auto Region fallback order is chain → span → bounds → average bone. Returns true only when the final scale is finite and positive.

Resolved Measurement Structures

FOverAnimResolvedCharacterProportions and FOverAnimResolvedRegionProportions are public C++ values calculated at runtime, not external settings input.

Structure Read Values Meaning
FOverAnimResolvedCharacterProportions CharacterHeightCS/WS, CharacterScaleCS/WS Character height and scale in component/world space
LocomotionHeightCS/WS, LocomotionScaleCS/WS Locomotion reference height and scale
GroundProbeRadiusCS/WS, GroundProbeScaleCS/WS Ground-probe reference and scale
FOverAnimResolvedRegionProportions SpanLength, BoundsRadius, ChainLength, AverageBoneLength Measured Region lengths
GetOffsetReferenceLength() Returns an offset reference in chain → span → bounds diameter → average bone order.
GetFocalReferenceRadius() Returns a focal reference in bounds radius → half span → average bone order.

Only linear units are calibrated

Proportion Calibration applies to linear values such as cm, cm/s, and cm/s². Degree, radian, and seconds values do not change with character size.

Resolved Proportion · Namespace Helper Contracts

C++ Declaration Return Contract
float FOverAnimResolvedRegionProportions::GetOffsetReferenceLength() const Offset reference length Returns the first positive value in this order: ChainLengthSpanLengthBoundsRadius × 2max(AverageBoneLength, 0).
float FOverAnimResolvedRegionProportions::GetFocalReferenceRadius() const Focal reference radius Returns the first positive value in this order: BoundsRadiusSpanLength × 0.5max(AverageBoneLength, 0).
FOverAnimMotionMeasurementScales OverAnimProportion::BuildMeasurementScales(const FOverAnimProportionCalibrationSettings& Calibration, const FOverAnimResolvedCharacterProportions& Character, const FOverAnimResolvedRegionProportions* Region, bool bWorldSpace) Measurement-scale snapshot Copies Character CS or WS scales according to bWorldSpace. If Region exists, marks Region motion, calculates the four optional Region scales, and sets bHasRegionMeasurements true when at least one is positive. With Region == nullptr, Region values remain at their default 0/false.
float OverAnimProportion::ResolveSpatialDistance(EOverAnimSpatialCalibrationMode Mode, float AuthoredDistance, float RegionRatio, float CharacterScale, float RegionReferenceSize) Resolved distance Authored distance has a minimum of 0; character scale uses a finite minimum of 0.01 or fallback 1. Absolute uses the distance unchanged. RegionRelative uses the product of positive region size and ratio when both exist. Otherwise, including CharacterRelative, returns distance × character scale.