UE3:UIAnimation (UDK)

From Unreal Wiki, The Unreal Engine Documentation Site
Revision as of 11:47, 6 November 2009 by Unknown user (talk)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
UDK Object >> UIRoot >> UIAnimation
Package:
Engine
Direct subclass:
UIAnimationSeq
This class in other games:

Abstract base class for all classes related to UI animation. This class simply defines the data structures used the UI animation system.

Enums

EUIAnimationInterpMode

Defines the types of interpolation that can be used for animation. (based on EViewTargetBlendFunction)

Todo: hook up...

UIANIMMODE_Linear
simple linear interpolation
UIANIMMODE_EaseIn
start of animation takes longer
UIANIMMODE_EaseOut
end of animation takes longer
UIANIMMODE_EaseInOut
beginning and end of animation take longer

EUIAnimationLoopMode

Different types of looping behaviors for UI animations.

UIANIMLOOP_None
no looping
UIANIMLOOP_Continuous
loops sequentially through keyframes, then starts over at beginning

i.e. 0, 1, 2, 3, 0, 1, 2, 3

UIANIMLOOP_Bounce
when the final keyframe is reached, reverses the order of the frames

i.e. 0, 1, 2, 3, 2, 1, 0, 1, 2, 3....

EUIAnimNotifyType

The different type of notification events

EANT_WidgetFunction
EANT_SceneFunction
EANT_KismetEvent
EANT_Sound

EUIAnimType

EAT_None
no animation
EAT_Position
position animation
EAT_PositionOffset
Position animation; not implemented by all widget types.

Values for this animation type are treated as a percentage of the current left or top position. The widget's position is never actually changed - rendering simply applies a tranform to render the widget at a different location.

EAT_RelPosition
relative position animation; values are specified as a percentage of the widget's size. i.e. 1.0 for the X component means

move the widget such that it's left face is moved to the current location of its right face, while maintaining the same width.

Todo: not yet implemented

EAT_Rotation
rotation
EAT_RelRotation
animation of rotation, relative to original rotation

Todo: not yet implemented

EAT_Color
widget color animation
EAT_Opacity
widget opacity animation
EAT_Visibility
widget visibility animation
EAT_Scale
widget scale animation
EAT_Left
left face animation
EAT_Top
top face animation
EAT_Right
right face animation
EAT_Bottom
bottom face animation
EAT_PPBloom
post-process bloom amount
EAT_PPBlurSampleSize
post-process blur sample size (kernel)
EAT_PPBlurAmount
post-process blur amount (0 - 1)

Structs

UIAnimationKeyFrame

Modifiers: native

Contains information about a single frame or destination in an animation sequence.

float RemainingTime
The amount of time (in seconds) that it should take for the data in this keyframe
EUIAnimationInterpMode InterpMode
Specifies which interpolation algorithm should be used for this keyframe.
float InterpExponent
For interpolation modes which require it (ease-in, ease-out), affects the degree of the curve.
UIAnimationRawData Data
This holds the array of AnimationOps that will be applied to this Widget

Default values:

Property Value
InterpExponent 1.5
InterpMode UIANIMMODE_Linear

UIAnimationNotify

Modifiers: native

Holds information about a given notify

Fixme: not yet implemented

EUIAnimNotifyType NotifyType
name NotifyName
Holds the name of the function to call or UI sound to play

UIAnimationRawData

Modifiers: native

We don't have unions in script so we burn a little more space than I would like. Which value will be used depends on the OpType.

float DestAsFloat
Object.LinearColor DestAsColor
Object.Rotator DestAsRotator
Object.Vector DestAsVector
UIAnimationNotify DestAsNotify

UIAnimSequence

Modifiers: native, transient

This structure holds information about a single animation sequence. Each animation sequence contains a single "track", which holds the individual keyframe data for each data-type supported by UI animation. When all keyframes for a single track have completed executing, the track is removed from the widget's copy of the UIAnimSequence.

All members of this struct are initialized at runtime based on a UIAnimationSeq subobject template defined in the game's subclass of Engine.GameUISceneClient.

UIAnimationSeq SequenceRef
The Template to use
array<UIAnimTrack> AnimationTracks
Array of animation tracks which are currently active
EUIAnimationLoopMode LoopMode
controls how this animation sequence loops
float PlaybackRate
How fast are we playing this back

UIAnimTrack

Modifiers: native

This defines a single animation track. Each track will animation only a single type of data.

EUIAnimType TrackType
The type of animation date contained in this track
array<UIAnimationKeyFrame> KeyFrames
Holds the actual key frame data
array<UIAnimationKeyFrame> LoopFrames
Stores a copy of the KeyFrames array for the purposes of looping.