Navigation
Unreal Engine C++ API Reference > Runtime > Engine > Animation
Inheritance Hierarchy
- UObjectBase
- UObjectBaseUtility
- UObject
- UAnimBoneCompressionCodec
- UAnimCompress
- UAnimCompress_RemoveLinearKeys
- UAnimCompress_PerTrackCompression
References
Module | Engine |
Header | /Engine/Source/Runtime/Engine/Classes/Animation/AnimCompress_PerTrackCompression.h |
Include | #include "Animation/AnimCompress_PerTrackCompression.h" |
Syntax
class UAnimCompress_PerTrackCompression : public UAnimCompress_RemoveLinearKeys
Remarks
Keyframe reduction algorithm that removes keys which are linear interpolations of surrounding keys, as well as choosing the best bitwise compression for each track independently.
Variables
Type | Name | Description | |
---|---|---|---|
![]() |
TArray< TEnumAsByte< enum AnimationCompressionFormat > > | AllowedRotationFormats | Which encoding formats is the per-track compressor allowed to try on rotation keys |
![]() |
TArray< TEnumAsByte< enum AnimationCompressionFormat > > | AllowedScaleFormats | Which encoding formats is the per-track compressor allowed to try on scale keys |
![]() |
TArray< TEnumAsByte< enum AnimationCompressionFormat > > | AllowedTranslationFormats | Which encoding formats is the per-track compressor allowed to try on translation keys |
![]() |
uint32: 1 | bResampleAnimation | If true, resample the animation to ResampleFramerate frames per second |
![]() |
uint32: 1 | bUseAdaptiveError | If true, adjust the error thresholds based on the 'height' within the skeleton |
![]() |
uint32: 1 | bUseAdaptiveError2 | If true, the adaptive error system will determine how much error to allow for each track, based on the error introduced in end effectors due to errors in the track. |
![]() |
uint32: 1 | bUseOverrideForEndEffectors | If true, uses MinEffectorDiff as the threhsold for end effectors |
![]() |
float | MaxAngleDiffBitwise | Maximum angle difference to use when testing if an animation key may be removed. |
![]() |
float | MaxErrorPerTrackRatio | A fraction that determines how much of the total error budget can be introduced by any particular track |
![]() |
float | MaxPosDiffBitwise | Maximum position difference to use when testing if an animation key may be removed. |
![]() |
float | MaxScaleDiffBitwise | Maximum position difference to use when testing if an animation key may be removed. |
![]() |
float | MaxZeroingThreshold | Maximum threshold to use when replacing a component with zero. |
![]() |
int32 | MinKeysForResampling | Animations with fewer keys than MinKeysForResampling will not be resampled. |
![]() |
float | ParentingDivisor | Reduces the error tolerance the further up the tree that a key occurs EffectiveErrorTolerance = Max(BaseErrorTolerance / Power(ParentingDivisor, Max(Height+Bias,0) * ParentingDivisorExponent), ZeroingThreshold) Only has an effect bUseAdaptiveError is true |
![]() |
float | ParentingDivisorExponent | Reduces the error tolerance the further up the tree that a key occurs EffectiveErrorTolerance = Max(BaseErrorTolerance / Power(ParentingDivisor, Max(Height+Bias,0) * ParentingDivisorExponent), ZeroingThreshold) Only has an effect bUseAdaptiveError is true |
![]() |
float | PerturbationProbeSize | How big of a perturbation should be made when probing error propagation |
![]() |
float | ResampledFramerate | When bResampleAnimation is true, this defines the desired framerate |
![]() |
float | RotationErrorSourceRatio | This ratio determines how much error in end effector rotation can come from a given track's rotation error or translation error. |
![]() |
float | ScaleErrorSourceRatio | This ratio determines how much error in end effector scale can come from a given track's rotation error or scale error. |
![]() |
int32 | TrackHeightBias | A bias added to the track height before using it to calculate the adaptive error |
![]() |
float | TranslationErrorSourceRatio | This ratio determines how much error in end effector translation can come from a given track's rotation error or translation error. |
Constructors
Type | Name | Description | |
---|---|---|---|
![]() |
UAnimCompress_PerTrackCompression
(
const FObjectInitializer& ObjectInitializer |
Overridden from UAnimCompress_RemoveLinearKeys
Type | Name | Description | |
---|---|---|---|
![]() ![]() |
void | CompressUsingUnderlyingCompressor
(
const FCompressibleAnimData& CompressibleAnimData, |
Compresses the tracks passed in using the underlying compressor for this key removal codec |
![]() ![]() |
void * | FilterBeforeMainKeyRemoval
(
const FCompressibleAnimData& CompressibleAnimData, |
Pre-filters the tracks before running the main key removal algorithm |
Overridden from UAnimCompress
Type | Name | Description | |
---|---|---|---|
![]() ![]() |
bool | DoReduction
(
const FCompressibleAnimData& CompressibleAnimData, |
Implemented by child classes, this function reduces the number of keyframes in the specified sequence, given the specified skeleton (if needed). |
Overridden from UAnimBoneCompressionCodec
Type | Name | Description | |
---|---|---|---|
![]() ![]() ![]() |
void | DecompressBone
(
FAnimSequenceDecompressionContext& DecompContext, |
Decompress a single bone. |
![]() ![]() |
void | PopulateDDCKey
(
const UE::Anim::Compression::FAnimDDCKeyArgs& KeyArgs, |
Called to generate a unique DDC key for this codec instance and input anim sequence and TargetPlatform A suitable key should be generated from: the InstanceGuid, a codec version, and all relevant properties that drive the behavior. |
Overridden from UObject
Type | Name | Description | |
---|---|---|---|
![]() ![]() |
void | PostEditChangeProperty
(
FPropertyChangedEvent& PropertyChangedEvent |
Called when a property on this object has been modified externally |