AnimationTrack

AnimationTrack : Instance

Overview

AnimationTrack supports managing various aspects of animations such as playback speed, weight, looping, seeking, fade time, and handles events like loop completion, end of animation, or keyframe reached notifications. The class also interacts with components like Humanoid, AnimationController

Description

AnimationTrack is a class in the OVERDARE Studio environment used for managing animations through Lua scripting. It derives from Instance and facilitates smooth integration between Lua scripts and animation systems, allowing developers to play, pause, stop, or modify animation properties like speed and weight. This class fires events when specific conditions are met (e.g., loop completion or keyframe reaching) and provides methods for managing initialization and property changes. Its primary role in OVERDARE Studio's structure is to blend multiple animations with custom weights

Properties

IsPlaying

bool

This property indicates whether the AnimationTrack is currently playing. If true, the animation is playing; if false, it is paused or stopped.

Code Samples

AnimationTrack:Play()

if AnimationTrack.IsPlaying then
    print("DoSomething")
end

Length

number

This property represents the length of the animation in seconds. It indicates the total duration of the animation from its start to its end.

Code Samples

//NotWork//

Looped

bool

Indicates whether the animation should repeat after reaching the end. If set to true, the animation will loop continuously. If set to false, the animation will stop after one full playthrough.

Code Samples

AnimationTrack.Looped = true

Speed

number

The Speed property specifies the playback speed of the animation. A value of 1 indicates normal playback speed. Higher values will play the animation faster, while lower values will slow it down. Negative values can reverse the animation playback direction.

Code Samples

//NotWork//

TimePosition

number

Represents the current playback position of the animation in seconds. Changing this property allows seeking to a specific time in the animation.

Code Samples

//NotWork//

WeightCurrent

number

This property represents the current weight of the animation that is being applied. The weight determines how strongly the animation influences the final result when blended with other animations. A value of 1 means the animation is fully applied, while a value of 0 means the animation has no effect.

Code Samples

//NotWork//

WeightTarget

number

This property represents the target weight of the animation that is intended to be applied over time. The target weight determines the influence of the animation when blended with others, and transitions to this value gradually based on animation settings or method calls.

Code Samples

//NotWork//

Methods

AdjustSpeed

The AdjustSpeed adjusts the animation speed.

Parameters

number InSpeed

Return

void

Code Samples

//NotWork//

AdjustWeight

The AdjustWeight method adjusts the weight of an object over a specified fade time by taking two parameters (InWeight: number and InFadeTime: number).

Parameters

number InWeight

number InFadeTime

Return

void

Code Samples

//NotWork//

GetMarkerReachedSignal

This method, GetMarkerReachedSignal, retrieves a signal that is triggered when the specified marker is reached during an animation playback. It takes a string parameter InName which represents the name of the marker to listen for and returns a ULuaScriptSignal that can be connected to custom event handlers.

Parameters

string InName

Return

ULuaScriptSignal

Code Samples

GetTimeOfKeyframe

The GetTimeOfKeyframe method retrieves the time of a keyframe identified by its name, taking an String as input and returning a number representing the time value.

Parameters

string InName

Return

number

Code Samples

//NotWork//

Play

The Play method plays an animation by applying fade-in, weight, and speed effects to the specified parameters.

Parameters

number InFadeTime

number InWeight

number InSpeed

Return

void

Code Samples

local Players = game:GetService("Players")

local Character = Players.LocalPlayer.Character
local Humanoid = Character:WaitForChild("Humanoid")

local Animation = Instance.new("Animation")
Animation.AnimationId = "BasicHandgunIdleAnimation"

local Animator = Humanoid:FindFirstChild("Animator")
local AnimationTrack = Animator:LoadAnimation(Animation)

AnimationTrack:Play()

Stop

Stops the current animation with an fade-out time of InFadeTime seconds.

Parameters

number InFadeTime

Return

void

Code Samples

//NotWork//

Events

DidLoop

This event triggers whenever the animation loops back to its starting position. Useful for detecting when an animation cycle has completed and has started again.

Parameters

Code Samples

local function OnLoopAnimation()
    print("The animation looped!")
end
AnimationTrack.DidLoop:Connect(OnLoopAnimation)

Ended

This event triggers when the animation playback ends completely. It is useful for detecting when an animation has finished playing and performing any follow-up actions.

Parameters

Code Samples

local function OnEnded()
    print("The animation has ended!")
end
AnimationTrack.Ended:Connect(OnEnded)

KeyframeReached

This event triggers when a specified keyframe within the animation is reached during playback. It is useful for executing code or handling logic at specific points in the animation timeline, such as syncing actions or triggering effects.

Parameters

Code Samples

Stopped

This event triggers when the animation playback is completely stopped, either manually or programmatically. It is useful for detecting when an animation has been interrupted or intentionally halted, allowing for cleanup or handling related logic.

Parameters

Code Samples

local function OnStopped()
    print("The animation has been stopped!")
end
AnimationTrack.Stopped:Connect(OnStopped)