Navigation
API > API/Runtime > API/Runtime/Engine
Keyframe reduction algorithm that simply removes keys which are linear interpolations of surrounding keys.
| Name | UAnimCompress_RemoveLinearKeys |
| Type | class |
| Header File | /Engine/Source/Runtime/Engine/Classes/Animation/AnimCompress_RemoveLinearKeys.h |
| Include Path | #include "Animation/AnimCompress_RemoveLinearKeys.h" |
Syntax
UCLASS (MinimalAPI)
class UAnimCompress_RemoveLinearKeys : public UAnimCompress
Inheritance Hierarchy
- UObjectBase → UObjectBaseUtility → UObject → UAnimBoneCompressionCodec → UAnimCompress → UAnimCompress_RemoveLinearKeys
Derived Classes
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
UAnimCompress_RemoveLinearKeys
(
const FObjectInitializer& ObjectInitializer |
Animation/AnimCompress_RemoveLinearKeys.h |
Variables
Public
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| bActuallyFilterLinearKeys | uint32 | Controls whether the final filtering step will occur, or only the retargetting after bitwise compression. | Animation/AnimCompress_RemoveLinearKeys.h |
|
| bRetarget | uint32 | True = As the animation is compressed, adjust animated nodes to compensate for compression error. | Animation/AnimCompress_RemoveLinearKeys.h |
|
| EffectorDiffSocket | float | Error threshold for End Effectors with Sockets attached to them. | Animation/AnimCompress_RemoveLinearKeys.h |
|
| MaxAngleDiff | float | Maximum angle difference to use when testing if an animation key may be removed. | Animation/AnimCompress_RemoveLinearKeys.h |
|
| MaxEffectorDiff | float | As keys are tested for removal, we monitor the effects all the way down to the end effectors. | Animation/AnimCompress_RemoveLinearKeys.h |
|
| MaxPosDiff | float | Maximum position difference to use when testing if an animation key may be removed. | Animation/AnimCompress_RemoveLinearKeys.h |
|
| MaxScaleDiff | float | Maximum Scale difference to use when testing if an animation key may be removed. | Animation/AnimCompress_RemoveLinearKeys.h |
|
| MinEffectorDiff | float | As keys are tested for removal, we monitor the effects all the way down to the end effectors. | Animation/AnimCompress_RemoveLinearKeys.h |
|
| ParentKeyScale | float | A scale value which increases the likelihood that a bone will retain a key if it's parent also had a key at the same time position. | Animation/AnimCompress_RemoveLinearKeys.h |
|
Functions
Public
Overridden from UAnimBoneCompressionCodec
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual int64 EstimateCompressionMemoryUsage
(
const UAnimSequence& AnimSequence |
Estimates the peak memory usage in bytes needed to compress the given data with this codec. | Animation/AnimCompress_RemoveLinearKeys.h |
Protected
| 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_RemoveLinearKeys.h | |
void ConvertFromRelativeSpace
(
FCompressibleAnimData& CompressibleAnimData |
If the passed in animation sequence is additive, converts it to absolute (using the frame 0 pose) and returns true (indicating it should be converted back to relative later with ConvertToRelativeSpace) | Animation/AnimCompress_RemoveLinearKeys.h | |
void ConvertToRelativeSpace
(
FCompressibleAnimData& CompressibleAnimData |
Converts an absolute animation sequence to a relative (additive) one. | Animation/AnimCompress_RemoveLinearKeys.h | |
void ConvertToRelativeSpace
(
const FCompressibleAnimData& CompressibleAnimData, |
Converts track data to relative (additive) space. | Animation/AnimCompress_RemoveLinearKeys.h | |
void ConvertToRelativeSpaceBoth
(
FCompressibleAnimData& CompressibleAnimData, |
Converts an absolute animation sequence and matching track data to a relative (additive) one. | Animation/AnimCompress_RemoveLinearKeys.h | |
virtual void * FilterBeforeMainKeyRemoval
(
const FCompressibleAnimData& CompressibleAnimData, |
Pre-filters the tracks before running the main key removal algorithm | Animation/AnimCompress_RemoveLinearKeys.h | |
void ProcessAnimationTracks
(
const FCompressibleAnimData& CompressibleAnimData, |
Locates spans of keys within the position and rotation tracks provided which can be estimated through linear interpolation of the surrounding keys. | Animation/AnimCompress_RemoveLinearKeys.h | |
void UpdateWorldBoneTransformRange
(
const FCompressibleAnimData& CompressibleAnimData, |
Updates the world bone transforms for a range of bone indices | Animation/AnimCompress_RemoveLinearKeys.h | |
void UpdateWorldBoneTransformTable
(
const FCompressibleAnimData& CompressibleAnimData, |
To guide the key removal process, we need to maintain a table of world transforms for the bones we are investigating. | Animation/AnimCompress_RemoveLinearKeys.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_RemoveLinearKeys.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_RemoveLinearKeys.h |
Static
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
static void UpdateBoneAtomList
(
const FCompressibleAnimData& CompressibleAnimData, |
Creates a list of the bone atom result for every frame of a given track | Animation/AnimCompress_RemoveLinearKeys.h |