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_RemoveLinearKeys.h |
| Include | #include "Animation/AnimCompress_RemoveLinearKeys.h" |
Syntax
class UAnimCompress_RemoveLinearKeys : public UAnimCompress
Remarks
Keyframe reduction algorithm that simply removes keys which are linear interpolations of surrounding keys.
Variables
| Type | Name | Description | |
|---|---|---|---|
| uint32: 1 | bActuallyFilterLinearKeys | Controls whether the final filtering step will occur, or only the retargetting after bitwise compression. | |
| uint32: 1 | bRetarget | True = As the animation is compressed, adjust animated nodes to compensate for compression error. | |
| float | EffectorDiffSocket | Error threshold for End Effectors with Sockets attached to them. | |
| float | MaxAngleDiff | Maximum angle difference to use when testing if an animation key may be removed. | |
| float | MaxEffectorDiff | As keys are tested for removal, we monitor the effects all the way down to the end effectors. | |
| float | MaxPosDiff | Maximum position difference to use when testing if an animation key may be removed. | |
| float | MaxScaleDiff | Maximum Scale difference to use when testing if an animation key may be removed. | |
| float | MinEffectorDiff | As keys are tested for removal, we monitor the effects all the way down to the end effectors. | |
| float | ParentKeyScale | 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. |
Constructors
| Type | Name | Description | |
|---|---|---|---|
UAnimCompress_RemoveLinearKeys
(
const FObjectInitializer& ObjectInitializer |
Functions
| Type | Name | Description | |
|---|---|---|---|
| void | CompressUsingUnderlyingCompressor
(
const FCompressibleAnimData& CompressibleAnimData, |
Compresses the tracks passed in using the underlying compressor for this key removal codec | |
| 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) | |
| void | ConvertToRelativeSpace
(
FCompressibleAnimData& CompressibleAnimData |
Converts an absolute animation sequence to a relative (additive) one. | |
| void | ConvertToRelativeSpace
(
const FCompressibleAnimData& CompressibleAnimData, |
Converts track data to relative (additive) space. | |
| void | ConvertToRelativeSpaceBoth
(
FCompressibleAnimData& CompressibleAnimData, |
Converts an absolute animation sequence and matching track data to a relative (additive) one. | |
| void * | FilterBeforeMainKeyRemoval
(
const FCompressibleAnimData& CompressibleAnimData, |
Pre-filters the tracks before running the main key removal algorithm | |
| 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. | |
| void | UpdateBoneAtomList
(
const FCompressibleAnimData& CompressibleAnimData, |
Creates a list of the bone atom result for every frame of a given track | |
| void | UpdateWorldBoneTransformRange
(
const FCompressibleAnimData& CompressibleAnimData, |
Updates the world bone transforms for a range of bone indices | |
| 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. |
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 | 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. |