The three virtues of a programmer: Laziness, Impatience, and Hubris. – Larry Wall

UE3:AnimSequence (UDK)

From Unreal Wiki, The Unreal Engine Documentation Site
Jump to: navigation, search
UDK Object >> AnimSequence
Package: 
Engine
This class in other games:
UT3

One animation sequence of keyframes. Contains a number of tracks of data. The Outer of AnimSequence is expected to be its AnimSet.

Properties

Property group 'AnimSequence'

bDoNotOverrideCompression

Type: bool

Modifiers: editoronly, const

Do not attempt to override compression scheme when running CompressAnimations commandlet. Some high frequency animations are too sensitive and shouldn't be changed.

bNoLoopingInterpolation

Type: bool

if TRUE, disable interpolation between last and first frame when looping.

CompressionScheme

Type: AnimationCompressionAlgorithm

Modifiers: editinline, editconst, editoronly

The compression scheme that was most recently used to compress this animation. May be NULL.

MetaData

Type: array<AnimMetaData>

Modifiers: editinline, instanced

Animation Meta Data

Notifies

Type: array<AnimNotifyEvent>

Modifiers: editinline

Animation notifies, sorted by time (earliest notification first).

RateScale

Type: float

Number for tweaking playback rate of this animation globally.

Default value: 1.0

Internal variables

AdditiveBasePose

Type: array<RawAnimSequenceTrack>

Modifiers: const

Store Reference Pose animation used to create this additive one. For playback in editor only.

AdditiveBasePoseAnimSeq

Type: array<AnimSequence>

Modifiers: editoronly

If this animation is Additive, this is the reference to the Base Pose used. For automatic rebuilding in the editor. Made into a list to handle duplicate animations.

AdditiveRefName

Type: name

Modifiers: const, editoronly

Reference animation name

AdditiveRefPose

Type: array<Object.BoneAtom>

Modifiers: const, deprecated

Reference pose for additive animation. Deprecated.

AdditiveTargetPoseAnimSeq

Type: array<AnimSequence>

Modifiers: editoronly

If this animation is Additive, this is the reference to the Target Pose used. For automatic rebuilding in the editor. Made into a list to handle duplicate animations.

AnimTags

Type: array<AnimTag>

Modifiers: config, editoronly

Animation tag for stat system: This is temporary until we can add content tag to animation Currently it auto tags based on "contains" - Check DefaultEngine.ini for modification

bAdditiveBuiltLooping

Type: bool

Modifiers: editoronly

TRUE if additive animation was built with looping interpolation.

bHasBeenUsed

Type: bool

Modifiers: const, transient

Debug flag to trace if this anim sequence was played.

bIsAdditive

Type: bool

Modifiers: const

TRUE if this is an Additive Animation

BoneControlModifiers

Type: array<SkelControlModifier>

Modifiers: deprecated, editinline

DEPRECATED VER_ADDED_ANIM_METADATA_FIXED_QUATERROR Bone Control Modifiers, sorted by time (earliest notification first).

CompressedByteStream

Type: array<byte>

Modifiers: native

ByteStream for compressed animation data. All keys are currently stored at evenly-spaced intervals (ie no explicit key times).

For a translation track of n keys, data is packed as n uncompressed float[3]:

For a rotation track of n>1 keys, the first 24 bytes are reserved for compression info (eg Fixed32 stores float Mins[3]; float Ranges[3]), followed by n elements of the compressed type. For a rotation track of n=1 keys, the single key is packed as an FQuatFloat96NoW.

CompressedTrackOffsets

Type: array<int>

An array of 4*NumTrack ints, arranged as follows:

 [0] Trans0.Offset
 [1] Trans0.NumKeys
 [2] Rot0.Offset
 [3] Rot0.NumKeys
 [4] Trans1.Offset
 . . .

CurveData

Type: array<CurveTrack>

Modifiers: const


EncodingPkgVersion

Type: int

Modifiers: const

The version of the global encoding package used at the time of import

KeyEncodingFormat

Type: AnimationKeyFormat

Modifiers: const


NumFrames

Type: int

Number of raw frames in this sequence (not used by engine - just for informational purposes).

RawAnimationData

Type: array<RawAnimSequenceTrack>

Modifiers: native, private, const


RawAnimData

Type: array<RawAnimSequenceTrack>

Modifiers: deprecated, private, const

Raw uncompressed keyframe data. RawAnimData is deprecated and moved to RawAnimationData to switch to native serialization. Down the road it should be switched to use lazy loading as the data is only used in the editor. It is used pervasively enough to be a separate change.

RelatedAdditiveAnimSeqs

Type: array<AnimSequence>

Modifiers: editoronly

If this animation was used, either as a Base or Target Pose, to build additive animations, they are referenced there. For automatic rebuilding in the editor.

RotationCodec

Type: pointer

Modifiers: private, transient, native


RotationCompressionFormat

Type: AnimationCompressionFormat

Modifiers: const

The compression format that was used to compress rotation tracks.

RotationData

Type: array<RotationTrack>

Modifiers: transient, const

Rotation data post keyframe reduction. RotationData.Num() is zero if keyframe reduction has not yet been applied.

SequenceLength

Type: float

Length (in seconds) of this AnimSequence if played back with a speed of 1.0.

SequenceName

Type: name

Name of the animation sequence. Used in AnimNodeSequence.

TranslationCodec

Type: pointer

Modifiers: private, transient, native

The runtime interface to decode and byte swap the compressed animation May be NULL. Set at runtime - does not exist in editor

TranslationCompressionFormat

Type: AnimationCompressionFormat

Modifiers: const

The compression format that was used to compress translation tracks.

TranslationData

Type: array<TranslationTrack>

Modifiers: transient, const

Translation data post keyframe reduction. TranslationData.Num() is zero if keyframe reduction has not yet been applied.

UseScore

Type: float

Modifiers: const, transient

Debug score to find out animation usage

Enums

AnimationCompressionFormat

Indicates animation data compression format.

ACF_None 
ACF_Float96NoW 
ACF_Fixed48NoW 
ACF_IntervalFixed32NoW 
ACF_Fixed32NoW 
ACF_Float32NoW 

AnimationKeyFormat

Indicates animation data compression format.

AKF_ConstantKeyLerp 
AKF_VariableKeyLerp 

Structs

AnimNotifyEvent

Modifiers: native

float Time 
AnimNotify Notify 
name Comment 
float Duration 

AnimTag

Modifiers: native

Temporary Animation Tagging Information: until we integrate Content Tagging This is configurable information in Engine Tag: Name of Tag Contains: Contains text Priority is index of array

string Tag 
This is Tag name
array<string> Contains 
This is contains strings, i.e. _cvr_ or _cover_ for Tag name Cover

CompressedTrack

Modifiers: native

array<byte> ByteStream 
array<float> Times 
float Mins[3]  
float Ranges[3]  

CurveTrack

Modifiers: native

Key frame curve data for one track CurveName: Morph Target Name CurveWeights: List of weights for each frame

name CurveName 
array<float> CurveWeights 

RawAnimSequenceTrack

Raw keyframe data for one track. Each array will contain either NumFrames elements or 1 element. One element is used as a simple compression scheme where if all keys are the same, they'll be reduced to 1 key that is constant over the entire sequence.

Warning: manually mirrored in UnMiscDeclerations.h due to mixed native/ script serialization

array<Object.Vector> PosKeys 
Position keys.
array<Object.Quat> RotKeys 
Rotation keys.

RotationTrack

Modifiers: native

Keyframe rotation data for one track. Rot(i) occurs at Time(i). Rot.Num() always equals Time.Num().

array<Object.Quat> RotKeys 
array<float> Times 

SkelControlModifier

Modifiers: native

name SkelControlName 
SkelControl Node Name in the Anim Tree that would apply *
array<TimeModifier> Modifiers 
Modifiers for what time and what strength for this skelcontrol name*

TimeModifier

Modifiers: native

float Time 
Time to apply *
float TargetStrength 
This will linearly interpolate between multiple strength within one anim data*

TranslationTrack

Modifiers: native

Keyframe position data for one track. Pos(i) occurs at Time(i). Pos.Num() always equals Time.Num().

array<Object.Vector> PosKeys 
array<float> Times 

Native functions

GetNotifyTimeByClass

native function float GetNotifyTimeByClass (class<AnimNotifyNotifyClass, optional float PlayRate, optional float StartPosition)

Get the time (in seconds) from the start of the animation that the first notify of the given class would fire

Parameters:

  • NotifyClass - Class of AnimNotify we are looking for (ie AnimNotify_Sound)
  • PlayRate - Rate that animation would be played at
  • StartPosition - Initial position in the animation to start checking from

Returns:

Time in seconds that notify would fire if anim was played at given rate Returns -1.f if no notify is found