Class Animation3D
Behavior to controls the animations of a 3D model.
Inheritance
Implements
Inherited Members
Namespace: Evergine.Components.Animation
Assembly: Evergine.Framework.dll
Syntax
public class Animation3D : Behavior, IDependencyObject
Remarks
Ideally this class should be used to hold all the animations related to a given 3D model.
Constructors
Animation3D()
Initializes a new instance of the Animation3D class.
Declaration
public Animation3D()
Animation3D(Model)
Initializes a new instance of the Animation3D class.
Declaration
public Animation3D(Model model)
Parameters
Type | Name | Description |
---|---|---|
Model | model | The path to the animation data. |
Fields
modelLink
Dependency System Reference model.
Declaration
protected LoadableDependencyLink<Model> modelLink
Field Value
Type | Description |
---|---|
LoadableDependencyLink<Model> |
transform3D
The transform3D.
Declaration
[BindComponent(true, true, BindComponentSource.Owner, null, true)]
protected Transform3D transform3D
Field Value
Type | Description |
---|---|
Transform3D |
Properties
AnimationLayers
Gets the registered animation layers.
Declaration
public IEnumerable<AnimationBlendClip> AnimationLayers { get; }
Property Value
Type | Description |
---|---|
IEnumerable<AnimationBlendClip> |
AnimationNames
Gets the animation names.
Declaration
public IEnumerable<string> AnimationNames { get; }
Property Value
Type | Description |
---|---|
IEnumerable<string> | The animation names. |
AnimationState
Gets or sets the state of the current active animation. When using AddAnimationLayer(AnimationBlendClip) it affects the State property of the first animation clip.
Declaration
public AnimationState AnimationState { get; set; }
Property Value
Type | Description |
---|---|
AnimationState |
ApplyRootMotion
Gets or sets a value indicating whether the root motion will be applied to this entity.
Declaration
public bool ApplyRootMotion { get; set; }
Property Value
Type | Description |
---|---|
bool |
BoundingBoxRefreshed
Gets or sets a value indicating whether the bounding box was refreshed.
Declaration
public bool BoundingBoxRefreshed { get; set; }
Property Value
Type | Description |
---|---|
bool |
|
Clip
Gets the current animation clip. When using AddAnimationLayer(AnimationBlendClip) it returns the first animation clip.
Declaration
public AnimationBlendClip Clip { get; }
Property Value
Type | Description |
---|---|
AnimationBlendClip |
CurrentAnimation
Gets or sets the current active animation.
Declaration
public string CurrentAnimation { get; set; }
Property Value
Type | Description |
---|---|
string | The current animation. |
CurrentAnimationTrack
Gets the current animation track.
Declaration
public AnimationClip CurrentAnimationTrack { get; }
Property Value
Type | Description |
---|---|
AnimationClip |
Duration
Gets the duration time. When using AddAnimationLayer(AnimationBlendClip) it returns the Duration property of the first animation clip.
Declaration
public float Duration { get; }
Property Value
Type | Description |
---|---|
float |
EndAnimationTime
Gets the end animation time. When using AddAnimationLayer(AnimationBlendClip) it returns the EndAnimationTime property of the first animation clip.
Declaration
public float EndAnimationTime { get; }
Property Value
Type | Description |
---|---|
float |
Frame
Gets or sets the current frame of the animation.
Declaration
public float Frame { get; set; }
Property Value
Type | Description |
---|---|
float |
Loop
Gets or sets a value indicating whether current active animation is looping. When using AddAnimationLayer(AnimationBlendClip) it affects the Loop property of the first animation clip.
Declaration
public bool Loop { get; set; }
Property Value
Type | Description |
---|---|
bool |
|
Model
Gets or sets the animation file path.
Declaration
public Model Model { get; set; }
Property Value
Type | Description |
---|---|
Model |
PlayAutomatically
Gets or sets a value indicating whether the animation is played automatically when the CurrentAnimation.
Declaration
public bool PlayAutomatically { get; set; }
Property Value
Type | Description |
---|---|
bool |
|
PlayTime
Gets or sets the current animation time. When using AddAnimationLayer(AnimationBlendClip) it affects the PlaybackRate property of the first animation clip.
Declaration
public float PlayTime { get; set; }
Property Value
Type | Description |
---|---|
float |
PlaybackRate
Gets or sets the playback rate. When using AddAnimationLayer(AnimationBlendClip) it affects the PlaybackRate property of the first animation clip.
Declaration
public float PlaybackRate { get; set; }
Property Value
Type | Description |
---|---|
float | The speed of the animation. |
StartAnimationTime
Gets the start animation time. When using AddAnimationLayer(AnimationBlendClip) it returns the StartAnimationTime property of the first animation clip.
Declaration
public float StartAnimationTime { get; }
Property Value
Type | Description |
---|---|
float |
Methods
AddAnimationLayer(AnimationBlendClip)
Add a new animation layer, to be played with the other layers.
Declaration
public void AddAnimationLayer(AnimationBlendClip clip)
Parameters
Type | Name | Description |
---|---|---|
AnimationBlendClip | clip | The clip to be played. |
GetDuration(string)
Gets the duration of an animation.
Declaration
public double GetDuration(string animation)
Parameters
Type | Name | Description |
---|---|---|
string | animation | The animation name. |
Returns
Type | Description |
---|---|
double | The duration of the animation. |
OnAttached()
Invoked when the object is attached to the system.
Declaration
protected override bool OnAttached()
Returns
Type | Description |
---|---|
bool | True if all is OK. |
Overrides
PlayAnimation(AnimationBlendClip, float)
Plays the animation between the specified frames.
Declaration
public void PlayAnimation(AnimationBlendClip clip, float transitionTime = 0)
Parameters
Type | Name | Description |
---|---|---|
AnimationBlendClip | clip | The animation clip. |
float | transitionTime | The transition time. |
PlayAnimation(string, bool, float, float, float?, float?)
Plays the animation between the specified frames.
Declaration
public void PlayAnimation(string name, bool loop = true, float transitionTime = 0, float playbackRate = 1, float? startTime = null, float? endTime = null)
Parameters
Type | Name | Description |
---|---|---|
string | name | The name of the animation. |
bool | loop | Looping animation. |
float | transitionTime | The transition time. |
float | playbackRate | The playback rate. |
float? | startTime | The frame where the animation starts playing. |
float? | endTime | The last frame of the animation to play. |
PlayAnimation(string, int?, int?, bool, float)
Plays the animation between the specified frames.
Declaration
public void PlayAnimation(string name, int? startTime, int? endTime, bool loop = true, float playbackRate = 1)
Parameters
Type | Name | Description |
---|---|---|
string | name | The name of the animation. |
int? | startTime | The frame where the animation starts playing. |
int? | endTime | The last frame of the animation to play. |
bool | loop | if set to |
float | playbackRate | the playback rate. |
RemoveAnimationLayer(AnimationBlendClip)
Remove an existing animation layer, to be played with the other layers.
Declaration
public void RemoveAnimationLayer(AnimationBlendClip clip)
Parameters
Type | Name | Description |
---|---|---|
AnimationBlendClip | clip | The clip to be played. |
ResumeAnimation()
Resume the animation.
Declaration
public void ResumeAnimation()
StopAnimation()
Stops the animation.
Declaration
public void StopAnimation()
Update(TimeSpan)
Updates the animation.
Declaration
protected override void Update(TimeSpan gameTime)
Parameters
Type | Name | Description |
---|---|---|
TimeSpan | gameTime | The game time. |
Overrides
Events
AnimationUpdated
An event fired when the animation is updated
Declaration
public event EventHandler<AnimationSample> AnimationUpdated
Event Type
Type | Description |
---|---|
EventHandler<AnimationSample> |
OnKeyFrameEvent
Raised when a certain frame of an animation is played.
Declaration
public event EventHandler<AnimationKeyframeEvent> OnKeyFrameEvent
Event Type
Type | Description |
---|---|
EventHandler<AnimationKeyframeEvent> |