wiki.sine.space | sinespace

Difference between revisions of "Scripting/SAnimator"

From wiki.sine.space
Jump to: navigation, search
Line 122: Line 122:
 
{{ScriptFunction|void|Play|(string stateName, int layer);|Plays a state.
 
{{ScriptFunction|void|Play|(string stateName, int layer);|Plays a state.
 
stateName: The name of the state to play.
 
stateName: The name of the state to play.
Layer index containing the destination state. If no layer is specified or layer is -1, the first state that is found with the given name or hash will be played.|5=<pre>Space.Host.ExecutingObject.Animator.Play("State Name", 0);</pre>}}
+
Layer index containing the destination state. If no layer is specified or layer is -1, the first state that is found with the given name or hash will be played.|5=<pre>Space.Host.ExecutingObject.Animator.Play("State Name", 0);</pre>|6=<pre>--clicking the object will make it's animator play the "Second State" on the second Layer when clicked
 +
thisObject = Space.Host.ExecutingObject
 +
 
 +
OnClick = function()
 +
thisObject.Animator.Play("Second State",1) --add "Second State" to the second Layer in Animator Controller
 +
end
 +
 
 +
 
 +
thisObject.AddClickable()
 +
thisObject.Clickable.OnClick(OnClick)</pre>}}
  
  
Line 128: Line 137:
 
stateName: The name of the state to play.
 
stateName: The name of the state to play.
 
Layer index containing the destination state. If no layer is specified or layer is -1, the first state that is found with the given name or hash will be played.
 
Layer index containing the destination state. If no layer is specified or layer is -1, the first state that is found with the given name or hash will be played.
normalizedTime: Start time of the current destination state. Value is in normalized time. If no explicit normalizedTime is specified or value is float.NegativeInfinity, the state will either be played from the start if it's not already playing, or will continue playing from its current time.|5=<pre>Space.Host.ExecutingObject.Animator.Play("State Name", 0, 0.0);</pre>}}
+
normalizedTime: Start time of the current destination state. Value is in normalized time. If no explicit normalizedTime is specified or value is float.NegativeInfinity, the state will either be played from the start if it's not already playing, or will continue playing from its current time.|5=<pre>Space.Host.ExecutingObject.Animator.Play("State Name", 0, 0.0)</pre>| 6=<pre>--clicking the object will make it's animator play the "Second State", on the second Layer, and starting half-way through when clicked
 +
thisObject = Space.Host.ExecutingObject
 +
 
 +
OnClick = function()
 +
thisObject.Animator.Play("Second State",1,0.5) --add "Second State" to the second Layer in Animator Controller
 +
end
 +
 
 +
 
 +
thisObject.AddClickable()
 +
thisObject.Clickable.OnClick(OnClick)</pre>}}
  
  

Revision as of 14:02, 17 December 2021

Members

CrossFade

void CrossFade (string stateName, float transitionDuration);

Creates a dynamic transition between the current state and the destination state. stateName: The name of the destination state. transitionDuration: The duration of the transition. Value is in source state normalized time.

Space.Host.ExecutingObject.Animator.CrossFade("State Name", 3.0)



CrossFade

void CrossFade (string stateName, float transitionDuration, int layer);

Creates a dynamic transition between the current state and the destination state. stateName: The name of the destination state. transitionDuration: The duration of the transition. Value is in source state normalized time. layer: Layer index containing the destination state. If no layer is specified or layer is -1, the first state that is found with the given name or hash will be played.

Space.Host.ExecutingObject.Animator.CrossFade("State Name", 3.0, 0)



CrossFade

void CrossFade (string stateName, float transitionDuration, int layer, float normalizedTime);

Creates a dynamic transition between the current state and the destination state. stateName: The name of the destination state. transitionDuration: The duration of the transition. Value is in source state normalized time. layer: Layer index containing the destination state. If no layer is specified or layer is -1, the first state that is found with the given name or hash will be played. normalizedTime: Start time of the current destination state. Value is in source state normalized time, should be between 0 and 1. If no explicit normalizedTime is specified or normalizedTime value is float.NegativeInfinity, the state will either be played from the start if it's not already playing, or will continue playing from its current time and no transition will happen.


Space.Host.ExecutingObject.Animator.CrossFade("State Name", 3.0, 0 , 0.0)



CrossFadeInFixedTime

void CrossFadeInFixedTime (string stateName, float transitionDuration);

Creates a dynamic transition between the current state and the destination state. The duration and offset in the target state are in fixed time. stateName: The name of the destination state. transitionDuration: The duration of the transition. Value is in seconds.

<pre>Space.Host.ExecutingObject.Animator.CrossFadeInFixedTime("State Name", 15.0)



CrossFadeInFixedTime

void CrossFadeInFixedTime (string stateName, float transitionDuration, int layer);

Creates a dynamic transition between the current state and the destination state. The duration and offset in the target state are in fixed time. stateName: The name of the destination state. transitionDuration: The duration of the transition. Value is in seconds. layer: Layer index containing the destination state. If no layer is specified or layer is -1, the first state that is found with the given name or hash will be played.

<pre>Space.Host.ExecutingObject.Animator.CrossFadeInFixedTime("State Name", 15.0, 0)



CrossFadeInFixedTime

void CrossFadeInFixedTime (string stateName, float transitionDuration, int layer, float fixedTime);

Creates a dynamic transition between the current state and the destination state. The duration and offset in the target state are in fixed time. stateName: The name of the destination state. transitionDuration: The duration of the transition. Value is in seconds. layer: Layer index containing the destination state. If no layer is specified or layer is -1, the first state that is found with the given name or hash will be played. fixedTime: Start time of the current destination state. Value is in seconds. If no explicit fixedTime is specified or fixedTime value is float.NegativeInfinity, the state will either be played from the start if it's not already playing, or will continue playing from its current time and no transition will happen.


Space.Host.ExecutingObject.Animator.CrossFadeInFixedTime("State Name", 15.0, 0 , 0.0)



GetBool

bool GetBool (string name);

Returns the value of the given boolean parameter. name: The name of the parameter.

isFlying = Space.Host.ExecutingObject.Animator.GetBool("IsFlying")
Space.Log(isFlying)



GetBool

bool GetBool (int id);

Returns the value of the given boolean parameter. id: The id of the parameter.



GetFloat

float GetFloat (string name);

Returns the value of the given float parameter. name: The name of the parameter.

getParam = Space.Host.ExecutingObject.Animator.GetFloat("paramName")
Space.Log(getParam)



GetFloat

float GetFloat (int id);

Returns the value of the given float parameter. id: The id of the parameter.



GetInteger

int GetInteger (string name);

Returns the value of the given integer parameter. name: The name of the parameter.

getParam = Space.Host.ExecutingObject.Animator.GetInteger("paramName")
Space.Log(getParam)



GetInteger

int GetInteger (int id);

Returns the value of the given integer parameter. id: The id of the parameter.



GetLayerIndex

int GetLayerIndex (string layerName);

Gets the index of the layer with specified name.

layerIndex = Space.Host.ExecutingObject.Animator.GetLayerIndex("Layer Name")
Space.Log(layerIndex)



GetLayerName

string GetLayerName (int layerIndex);

Gets name of the layer.

layerName = Space.Host.ExecutingObject.Animator.GetLayerName(1)
  Space.Log(layerName)



GetLayerWeight

float GetLayerWeight (int layerIndex);

Gets the layer's current weight.

layerWeight = Space.Host.ExecutingObject.Animator.GetLayerWeight(1)
Space.Log(layerWeight)



GetLength

double GetLength (int layer);

Current duration of the state.

layerStateLength = Space.Host.ExecutingObject.Animator.GetLength(1)
Space.Log(layerStateLength)



GetLoop

bool GetLoop (int layer);

Is the state looping.

layerStateLoop = Space.Host.ExecutingObject.Animator.GetLoop(0)
Space.Log(layerStateLoop)



GetNormalizedTime

double GetNormalizedTime (int layer);

Normalized time of the State. The integer part is the number of time a state has been looped. The fractional part is the % (0-1) of progress in the current loop.

layerStateNormalizedTime = Space.Host.ExecutingObject.Animator.GetNormalizedTime(0)
Space.Log(layerStateNormalizedTime)



GetTime

double GetTime ();

Fixed time of the State.

layerStateTime = Space.Host.ExecutingObject.Animator.GetTime(0)
Space.Log(layerStateTime)



IsInTransition

bool IsInTransition (int layer);

Is the specified layer in a transition.

layerTransition = Space.Host.ExecutingObject.Animator.IsInTransition(0)
Space.Log(layerTransition)



IsParameterControlledByCurve

bool IsParameterControlledByCurve (int id);

Returns true if a parameter is controlled by an additional curve on an animation.



IsParameterControlledByCurve

bool IsParameterControlledByCurve (string name);

Returns true if a parameter is controlled by an additional curve on an animation.

paramCurve = Space.Host.ExecutingObject.Animator.IsParameterControlledByCurve("parameterName")
Space.Log(paramCurve)



Play

void Play (string stateName);

Plays a state. stateName: The name of the state to play.

Space.Host.ExecutingObject.Animator.Play("State Name")


--clicking the object will make it's animator play the "Second State" when clicked
--Object needs an Animator component linked to an Animator Controller with a state called "Second State" 
thisObject = Space.Host.ExecutingObject

OnClick = function()
thisObject.Animator.Play("Second State") 
end


thisObject.AddClickable()
thisObject.Clickable.OnClick(OnClick)


Play

void Play (string stateName, int layer);

Plays a state. stateName: The name of the state to play. Layer index containing the destination state. If no layer is specified or layer is -1, the first state that is found with the given name or hash will be played.

Space.Host.ExecutingObject.Animator.Play("State Name", 0);


--clicking the object will make it's animator play the "Second State" on the second Layer when clicked
thisObject = Space.Host.ExecutingObject

OnClick = function()
thisObject.Animator.Play("Second State",1) --add "Second State" to the second Layer in Animator Controller 
end


thisObject.AddClickable()
thisObject.Clickable.OnClick(OnClick)


Play

void Play (string stateName, int layer, float normalizedTime);

Plays a state. stateName: The name of the state to play. Layer index containing the destination state. If no layer is specified or layer is -1, the first state that is found with the given name or hash will be played. normalizedTime: Start time of the current destination state. Value is in normalized time. If no explicit normalizedTime is specified or value is float.NegativeInfinity, the state will either be played from the start if it's not already playing, or will continue playing from its current time.

Space.Host.ExecutingObject.Animator.Play("State Name", 0, 0.0)


--clicking the object will make it's animator play the "Second State", on the second Layer, and starting half-way through when clicked
thisObject = Space.Host.ExecutingObject

OnClick = function()
thisObject.Animator.Play("Second State",1,0.5) --add "Second State" to the second Layer in Animator Controller 
end


thisObject.AddClickable()
thisObject.Clickable.OnClick(OnClick)


PlayInFixedTime

void PlayInFixedTime (string stateName);

Plays a state. The offset in the target state is in fixed time. stateName: The name of the state to play.

Space.Host.ExecutingObject.Animator.PlayInFixedTime("State Name")



PlayInFixedTime

void PlayInFixedTime (string stateName, int layer);

Plays a state. The offset in the target state is in fixed time. stateName: The name of the state to play. Layer index containing the destination state. If no layer is specified or layer is -1, the first state that is found with the given name or hash will be played.

Space.Host.ExecutingObject.Animator.PlayInFixedTime("State Name", 0)



PlayInFixedTime

void PlayInFixedTime (string stateName, int layer, float fixedTime);

Plays a state. The offset in the target state is in fixed time. stateName: The name of the state to play. Layer index containing the destination state. If no layer is specified or layer is -1, the first state that is found with the given name or hash will be played. fixedTime: Start time of the current destination state. Value is in seconds. If no explicit fixedTime is specified or fixedTime value is float.NegativeInfinity, the state will either be played from the start if it's not already playing, or will continue playing from its current time.

Space.Host.ExecutingObject.Animator.PlayInFixedTime("State Name", 0, 0.0)



Rebind

void Rebind ();

Rebind all the animated properties and mesh data with the Animator.

Space.Host.ExecutingObject.Animator.Rebind()



ResetTrigger

void ResetTrigger (int id);

Resets the trigger parameter to false.



ResetTrigger

void ResetTrigger (string name);

Resets the trigger parameter to false.

 Space.Host.ExecutingObject.Animator.ResetTrigger("parameterName")



SetBool

void SetBool (int id, bool value);

Sets the value of a boolean parameter.



SetBool

void SetBool (string name, bool value);

Sets the value of a boolean parameter.

Space.Host.ExecutingObject.Animator.SetBool("IsFlying", true)



SetFloat

void SetFloat (int id, float value);

Sets the value of a float parameter.



SetFloat

void SetFloat (int id, float value, float dampTime, float deltaTime);

Send float values to the Animator to affect transitions. dampTime: The damper total time. deltaTime: The delta time to give to the damper.



SetFloat

void SetFloat (string name, float value);

Sets the value of a float parameter.

Space.Host.ExecutingObject.Animator.SetFloat("parameterName", 2.2)



SetFloat

void SetFloat (string name, float value, float dampTime, float deltaTime);

Send float values to the Animator to affect transitions. dampTime: The damper total time. deltaTime: The delta time to give to the damper.

Space.Host.ExecutingObject.Animator.SetFloat("parameterName", 2.2,2.0,Space.DeltaTime)



SetInteger

void SetInteger (int id, int value);

Sets the value of the given integer parameter.



SetInteger

void SetInteger (string name, int value);

Sets the value of the given integer parameter.

Space.Host.ExecutingObject.Animator.SetInteger("iParam", 2)



SetLayerWeight

void SetLayerWeight (int layerIndex, float weight);

Sets the weight of the layer at the given index.

Space.Host.ExecutingObject.Animator.SetLayerWeight(0,2.0)



SetTime

void SetTime (double time);

Sets the Player's local time.

Space.Host.ExecutingObject.Animator.SetTime(1.0)



SetTrigger

void SetTrigger (int id);

Sets a trigger parameter to active. A trigger parameter is a bool parameter that gets reset to false when it has been used in a transition. For state machines with multiple layers, the trigger will only get reset once all layers have been evaluated, so that the layers can synchronize their transitions on the same parameter.



SetTrigger

void SetTrigger (string trigger);

Sets a trigger parameter to active. A trigger parameter is a bool parameter that gets reset to false when it has been used in a transition. For state machines with multiple layers, the trigger will only get reset once all layers have been evaluated, so that the layers can synchronize their transitions on the same parameter.

Space.Host.ExecutingObject.Animator.SetTrigger("parameterName")



StartPlayback

void StartPlayback ();

Sets the animator in playback mode.

Space.Host.ExecutingObject.Animator.StartPlayback()



Stop

void Stop ();

Stop the Animator.

Space.Host.ExecutingObject.Animator.Stop()



StopPlayback

void StopPlayback ();

Stops the animator playback mode. When playback stops, the avatar resumes getting control from game logic.

Space.Host.ExecutingObject.Animator.StopPlayback()



Update

void Update (float deltaTime);

Evaluates the animator based on deltaTime.

Space.Host.ExecutingObject.Animator.Update(Space.DeltaTime)


GetCurrentAnimationStateInfo

SAnimatorStateInfo GetCurrentAnimationStateInfo (int Layerindex);

Returns an SAnimatorStateInfo with the information on the current state..

Space.Host.ExecutingObject.Animator.GetCurrentAnimationStateInfo(0)



Properties

ApplyRootMotion

bool ApplyRootMotion { get;set; }

Should root motion be applied? Root motion is the effect where an object's entire mesh moves away from its starting point but that motion is created by the animation itself rather than by changing the Transform position.

Space.Host.ExecutingObject.Animator.ApplyRootMotion = true



Controller

SResource Controller { get;set; }

The Animator Controller resource of this Animator

Space.Host.ExecutingObject.Animator.Controller = Space.GetResource("newController")


--this script will make a button toggle an object between two different Animator Controllers
--[UIButton object needs to be added to the Scripting Runtime references with name "Button"]
--[You need to add an Animator Controller to the Scripting Runtime's resources with name "newController"]
--[GameObject needs to have Animator Component]

thisObject = Space.Host.ExecutingObject
button = Space.Host.GetReference("Button").UIButton

defaultController = thisObject.Animator.Controller
newController = Space.GetResource("newController")

isNewController = false

OnClick = function()
    if isNewController then
      thisObject.Animator.Controller = defaultController
      isNewController = false
    else
      thisObject.Animator.Controller = newController
      isNewController = true
    end
end

button.OnClick(OnClick)


Enabled

bool Enabled { get;set; }

Wether the Animator component is enabled or not

Space.Host.ExecutingObject.Animator.Enabled = true


--clicking this object will Enable/Disable it's Animator component
thisGameObject = Space.Host.ExecutingObject
animator = thisGameObject.Animator


OnClick = function()
animator.Enabled =  not animator.Enabled
end


thisGameObject.AddClickable()
thisGameObject.Clickable.OnClick(OnClick)


Parameters

[[Scripting/string[]|string[]]] Parameters { get;set; }

The AnimatorControllerParameter list used by the animator.

parameters = Space.Host.ExecutingObject.Animator.Parameters
for i=1,#parameters do Space.Log(parameters[i]) end --prints all parameters