Region · Calibration Types
Baseline: OverAnim
0.1.0 Beta· Unreal Engine5.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: ChainLength → SpanLength → BoundsRadius × 2 → max(AverageBoneLength, 0). |
float FOverAnimResolvedRegionProportions::GetFocalReferenceRadius() const |
Focal reference radius | Returns the first positive value in this order: BoundsRadius → SpanLength × 0.5 → max(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. |