Navigation
API > API/Runtime > API/Runtime/Engine
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.
| Name | UAnimCompress_PerTrackCompression |
| Type | class |
| Header File | /Engine/Source/Runtime/Engine/Classes/Animation/AnimCompress_PerTrackCompression.h |
| Include Path | #include "Animation/AnimCompress_PerTrackCompression.h" |
Syntax
UCLASS (HideCategories=AnimCompress)
class UAnimCompress_PerTrackCompression : public UAnimCompress_RemoveLinearKeys
Inheritance Hierarchy
- UObjectBase → UObjectBaseUtility → UObject → UAnimBoneCompressionCodec → UAnimCompress → UAnimCompress_RemoveLinearKeys → UAnimCompress_PerTrackCompression
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
UAnimCompress_PerTrackCompression
(
const FObjectInitializer& ObjectInitializer |
Animation/AnimCompress_PerTrackCompression.h |
Variables
Public
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| AllowedRotationFormats | TArray< TEnumAsByte< enum AnimationCompressionFormat > > | Which encoding formats is the per-track compressor allowed to try on rotation keys | Animation/AnimCompress_PerTrackCompression.h |
|
| AllowedScaleFormats | TArray< TEnumAsByte< enum AnimationCompressionFormat > > | Which encoding formats is the per-track compressor allowed to try on scale keys | Animation/AnimCompress_PerTrackCompression.h |
|
| AllowedTranslationFormats | TArray< TEnumAsByte< enum AnimationCompressionFormat > > | Which encoding formats is the per-track compressor allowed to try on translation keys | Animation/AnimCompress_PerTrackCompression.h |
|
| bResampleAnimation | uint32 | If true, resample the animation to ResampleFramerate frames per second | Animation/AnimCompress_PerTrackCompression.h |
|
| bUseAdaptiveError | uint32 | If true, adjust the error thresholds based on the 'height' within the skeleton | Animation/AnimCompress_PerTrackCompression.h |
|
| bUseAdaptiveError2 | uint32 | 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. | Animation/AnimCompress_PerTrackCompression.h |
|
| bUseOverrideForEndEffectors | uint32 | If true, uses MinEffectorDiff as the threshold for end effectors | Animation/AnimCompress_PerTrackCompression.h |
|
| MaxAngleDiffBitwise | float | Maximum angle difference to use when testing if an animation key may be removed. | Animation/AnimCompress_PerTrackCompression.h |
|
| MaxErrorPerTrackRatio | float | A fraction that determines how much of the total error budget can be introduced by any particular track | Animation/AnimCompress_PerTrackCompression.h |
|
| MaxPosDiffBitwise | float | Maximum position difference to use when testing if an animation key may be removed. | Animation/AnimCompress_PerTrackCompression.h |
|
| MaxScaleDiffBitwise | float | Maximum position difference to use when testing if an animation key may be removed. | Animation/AnimCompress_PerTrackCompression.h |
|
| MaxZeroingThreshold | float | Maximum threshold to use when replacing a component with zero. | Animation/AnimCompress_PerTrackCompression.h |
|
| MinKeysForResampling | int32 | Animations with fewer keys than MinKeysForResampling will not be resampled. | Animation/AnimCompress_PerTrackCompression.h |
|
| ParentingDivisor | float | 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 | Animation/AnimCompress_PerTrackCompression.h |
|
| ParentingDivisorExponent | float | 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 | Animation/AnimCompress_PerTrackCompression.h |
|
| PerturbationProbeSize | float | How big of a perturbation should be made when probing error propagation | Animation/AnimCompress_PerTrackCompression.h | |
| ResampledFramerate | float | When bResampleAnimation is true, this defines the desired framerate | Animation/AnimCompress_PerTrackCompression.h |
|
| RotationErrorSourceRatio | float | This ratio determines how much error in end effector rotation can come from a given track's rotation error or translation error. | Animation/AnimCompress_PerTrackCompression.h |
|
| ScaleErrorSourceRatio | float | This ratio determines how much error in end effector scale can come from a given track's rotation error or scale error. | Animation/AnimCompress_PerTrackCompression.h |
|
| TrackHeightBias | int32 | A bias added to the track height before using it to calculate the adaptive error | Animation/AnimCompress_PerTrackCompression.h |
|
| TranslationErrorSourceRatio | float | This ratio determines how much error in end effector translation can come from a given track's rotation error or translation error. | Animation/AnimCompress_PerTrackCompression.h |
|
Functions
Public
Overridden from UAnimBoneCompressionCodec
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void DecompressBone
(
FAnimSequenceDecompressionContext& DecompContext, |
Decompress a single bone. | Animation/AnimCompress_PerTrackCompression.h |
Protected
Overridden from UAnimCompress_RemoveLinearKeys
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void CompressUsingUnderlyingCompressor
(
const FCompressibleAnimData& CompressibleAnimData, |
Compresses the tracks passed in using the underlying compressor for this key removal codec | Animation/AnimCompress_PerTrackCompression.h | |
virtual void * FilterBeforeMainKeyRemoval
(
const FCompressibleAnimData& CompressibleAnimData, |
Pre-filters the tracks before running the main key removal algorithm | Animation/AnimCompress_PerTrackCompression.h |
Overridden from UAnimCompress
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual 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). | Animation/AnimCompress_PerTrackCompression.h |
Overridden from UAnimBoneCompressionCodec
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual 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. | Animation/AnimCompress_PerTrackCompression.h |
Overridden from UObject
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void PostEditChangeProperty
(
FPropertyChangedEvent& PropertyChangedEvent |
Animation/AnimCompress_PerTrackCompression.h |