Overview Package Class Source Class tree Glossary
previous class      next class frames      no frames

Engine.AnimationCompressionAlgorithm_PerTrackCompression

Extends
AnimationCompressionAlgorithm_RemoveLinearKeys
Modifiers
hidecategories ( AnimationCompressionAlgorithm ) native ( Anim )

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. Copyright 1998-2011 Epic Games, Inc. All Rights Reserved.

Core.Object
|   
+-- Engine.AnimationCompressionAlgorithm
   |   
   +-- Engine.AnimationCompressionAlgorithm_RemoveLinearKeys
      |   
      +-- Engine.AnimationCompressionAlgorithm_PerTrackCompression

Variables Summary
pointerPerReductionCachedData
floatPerturbationProbeSize
AdaptiveError
boolbUseAdaptiveError
boolbUseOverrideForEndEffectors
floatParentingDivisor
floatParentingDivisorExponent
intTrackHeightBias
AdaptiveError2
boolbUseAdaptiveError2
floatMaxErrorPerTrackRatio
floatRotationErrorSourceRatio
floatTranslationErrorSourceRatio
PerTrack
array<AnimationCompressionFormat>AllowedRotationFormats
array<AnimationCompressionFormat>AllowedTranslationFormats
floatMaxAngleDiffBitwise
floatMaxPosDiffBitwise
floatMaxZeroingThreshold
Resampling
boolbResampleAnimation
intMinKeysForResampling
floatResampledFramerate
Inherited Variables from Engine.AnimationCompressionAlgorithm_RemoveLinearKeys
bActuallyFilterLinearKeys, bRetarget, EffectorDiffSocket, MaxAngleDiff, MaxEffectorDiff, MaxPosDiff, MinEffectorDiff, ParentKeyScale
Inherited Variables from Engine.AnimationCompressionAlgorithm
bNeedsSkeleton, Description, RotationCompressionFormat, TranslationCompressionFormat


Variables Detail

PerReductionCachedData Source code

var const native transient pointer PerReductionCachedData;
Cached metastructures used within DoReduction, tied to a particular sequence and mesh

PerturbationProbeSize Source code

var float PerturbationProbeSize;
How big of a perturbation should be made when probing error propagation

AdaptiveError

bUseAdaptiveError Source code

var(AdaptiveError) bool bUseAdaptiveError;
If TRUE, adjust the error thresholds based on the 'height' within the skeleton

bUseOverrideForEndEffectors Source code

var(AdaptiveError) bool bUseOverrideForEndEffectors;
If TRUE, uses MinEffectorDiff as the threhsold for end effectors

ParentingDivisor Source code

var(AdaptiveError) float ParentingDivisor<ClampMin=1.0>;
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

ParentingDivisorExponent Source code

var(AdaptiveError) float ParentingDivisorExponent<ClampMin=0.1>;
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

TrackHeightBias Source code

var(AdaptiveError) int TrackHeightBias;
A bias added to the track height before using it to calculate the adaptive error

AdaptiveError2

bUseAdaptiveError2 Source code

var(AdaptiveError2) bool 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.

MaxErrorPerTrackRatio Source code

var(AdaptiveError2) float MaxErrorPerTrackRatio<ClampMin=0.0|ClampMax=1.0>;
A fraction that determines how much of the total error budget can be introduced by any particular track

RotationErrorSourceRatio Source code

var(AdaptiveError2) float RotationErrorSourceRatio<ClampMin=0.0|ClampMax=1.0>;
This ratio determines how much error in end effector rotation can come from a given track's rotation error or translation error. If 1, all of it must come from rotation error, if 0.5, half can come from each, and if 0.0, all must come from translation error.

TranslationErrorSourceRatio Source code

var(AdaptiveError2) float TranslationErrorSourceRatio<ClampMin=0.0|ClampMax=1.0>;
This ratio determines how much error in end effector translation can come from a given track's rotation error or translation error. If 1, all of it must come from rotation error, if 0.5, half can come from each, and if 0.0, all must come from translation error.

PerTrack

AllowedRotationFormats Source code

var(PerTrack) array<AnimationCompressionFormat> AllowedRotationFormats;
Which encoding formats is the per-track compressor allowed to try on rotation keys

AllowedTranslationFormats Source code

var(PerTrack) array<AnimationCompressionFormat> AllowedTranslationFormats;
Which encoding formats is the per-track compressor allowed to try on translation keys

MaxAngleDiffBitwise Source code

var(PerTrack) float MaxAngleDiffBitwise;
Maximum angle difference to use when testing if an animation key may be removed. Lower values retain more keys, but yield less compression.

MaxPosDiffBitwise Source code

var(PerTrack) float MaxPosDiffBitwise;
Maximum position difference to use when testing if an animation key may be removed. Lower values retain more keys, but yield less compression.

MaxZeroingThreshold Source code

var(PerTrack) float MaxZeroingThreshold;
Maximum threshold to use when replacing a component with zero. Lower values retain more keys, but yield less compression.

Resampling

bResampleAnimation Source code

var(Resampling) bool bResampleAnimation;
If TRUE, resample the animation to ResampleFramerate frames per second

MinKeysForResampling Source code

var(Resampling) int MinKeysForResampling;
Animations with fewer keys than MinKeysForResampling will not be resampled.

ResampledFramerate Source code

var(Resampling) float ResampledFramerate<ClampMin=1.0|ClampMax=30.0|EditCondition=bResampleAnimation>;
When bResampleAnimation is true, this defines the desired framerate


Defaultproperties

defaultproperties
{
	Description="Compress each track independently"
	
	
	MaxPosDiffBitwise = 0.007
	MaxAngleDiffBitwise = 0.002
	MaxZeroingThreshold = 0.0002

	
	ResampledFramerate = 15.0
	bResampleAnimation = FALSE
	MinKeysForResampling = 10;

	
	bRetarget = FALSE
	bActuallyFilterLinearKeys = FALSE

	
	bUseAdaptiveError = FALSE
	ParentingDivisor = 1.0
	ParentingDivisorExponent = 1.0
	TrackHeightBias = 1
	bUseOverrideForEndEffectors = FALSE


	
	bUseAdaptiveError2 = FALSE
	RotationErrorSourceRatio = 0.8
	TranslationErrorSourceRatio = 0.8
	MaxErrorPerTrackRatio = 0.3
	PerturbationProbeSize = 0.001


	
	AllowedRotationFormats[0] = ACF_Identity
	AllowedRotationFormats[1] = ACF_Fixed48NoW

	




	
	AllowedTranslationFormats[0] = ACF_Identity
	AllowedTranslationFormats[1] = ACF_IntervalFixed32NoW
	AllowedTranslationFormats[2] = ACF_Fixed48NoW
}

Overview Package Class Source Class tree Glossary
previous class      next class frames      no frames
Creation time: ti 22-3-2011 19:56:47.204 - Created with UnCodeX