Navigation
API > API/Runtime > API/Runtime/Engine > API/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
UCLASS (HideCategories=AnimCompress)
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 threshold 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 |