Difference between revisions of "Source 2 Animation System VScript API"

From Valve Developer Community
Jump to: navigation, search
(Updated the changed CreateIKChain method, added new methods.)
(Updated links and references to the SteamVR tools)
 
Line 1: Line 1:
The model animation system in the [[Dota_2_Workshop_Tools|Dota 2]] and [[Destinations]] Workshop Tools features a [[VScript]] interface, allowing the use of Lua scripts to create advanced animation sequences. The sequences work analogous to the [[$animation]] and [[$sequence]] QC commands used in Source 1.
+
The model animation system in the [[Dota_2_Workshop_Tools|Dota 2]] and [[SteamVR/Environments|SteamVR Workshop Tools]] features a [[VScript]] interface, allowing the use of Lua scripts to create advanced animation sequences. The sequences work analogous to the [[$animation]] and [[$sequence]] QC commands used in Source 1.
 +
 
 +
{{Warning|Since Source 2 is still under development many of theses features are undocumented and may be broken in new engine revisions.}}
  
 
__TOC__
 
__TOC__
Line 311: Line 313:
 
specified (optional) pose parameters.  Returns nil if the velocity vector cannot be computed.
 
specified (optional) pose parameters.  Returns nil if the velocity vector cannot be computed.
 
|}
 
|}
 +
 +
[[Category:Source 2]]
 +
[[Category:Scripting]]

Latest revision as of 15:59, 23 June 2019

The model animation system in the Dota 2 and SteamVR Workshop Tools features a VScript interface, allowing the use of Lua scripts to create advanced animation sequences. The sequences work analogous to the $animation and $sequence QC commands used in Source 1.

Warning: Since Source 2 is still under development many of theses features are undocumented and may be broken in new engine revisions.

Classes

CModelVScriptCompile

Reference to the model. Accessed from the model variable in the animation script.

Function Signature Description
CreateIKChain int CreateIKChain(string chainName, table parameters) Define an IK chain. This only seems to be available in run-time scripts.
CreateIKControlRig int CreateIKControlRig(string unknown, table parameters)
CreatePoseParameter int CreatePoseParameter(string name, float min, float max, float default, boolean unknown) Adds or merges the pose parameter range of the specified pose parameter.
CreateSequence IVSSequence CreateSequence(table parameters) Create a new sequence on the model by specifying the sequence type (string), name and a table of parameters.
CreateTransitionGraph bool CreateTransitionGraph(table parameters) Create the transition graph on the model by specifying a table of parameters.
CreateTransitionStateGraph bool CreateTransitionStateGraph(table parameters) Create a transition graph on the model by specifying a table of parameters, conditions, states, and transitions
CreateWeightlist int CreateWeightlist(string name, array weights) Creates a weightlist on the model. Array syntax: { { string bone, float weight }, ... }
GetAnimationList table GetAnimationList() Get the list of animation names for the model.
GetModelName string GetModelName() Returns the name of the model.
GetSequence IVSSequence GetSequence(int index = -1, string sequence = nil) Given a name or a sequence index, returns an instance of the sequence class.
GetSequenceList table GetSequenceList() Get the list of sequence instances on the model.
LookupAnimation int LookupAnimation(string name) Find a named animation index for the model.
LookupPoseParameter int LookupPoseParameter(string name) Find a named pose parameter index for the model.
LookupSequence int LookupSequence(string name) Find a named sequence index for the model.
LookupWeightlist int LookupWeightlist(string name) Find a named weightlist index for the model.
SequenceGetName string SequenceGetName(int index) Returns the sequence name given the sequence index.
SetSkeletonInstanceIKContextParameters int SetSkeletonInstanceIKContextParameters(table parameters)

IVSSequence

Instance of a scripted sequence.

Function Signature Description
AddEventTypeFlags unknown AddEventTypeFlags(unknown...) Adds the the specified type flags for specified event on the sequence.
ClearFlag unknown ClearFlag(unknown...) Clears the flags given the specified flag mask.
CPS unknown CPS(unknown...) Returns the cyclerate (cycles per second) for the sequence given the specified (optional) pose parameters.
Duration unknown Duration(unknown...) Returns the duration for the sequence given the specified (optional) pose parameters.
EntryNode unknown EntryNode(unknown...) Returns the index of the entry node for the sequence.
ExitNode unknown ExitNode(unknown...) Returns the index of the exit node for the sequence.
FindDistance unknown FindDistance(unknown...) Returns the distance for the specified distance for the sequence given the specified (optional) pose parameters.
FPS unknown FPS(unknown...) Returns the framerate (frames per second) for the sequence given the specified (optional) pose parameters.
GetActivityName unknown GetActivityName(unknown...) Returns the name of the activity at the specified index.
GetActivityType unknown GetActivityType(unknown...) Returns the type of the activity at the specified index.
GetActivityWeight unknown GetActivityWeight(unknown...) Returns the weight of the activity at the specified index.
GetAllAnimations unknown GetAllAnimations(unknown...) Returns an array of int's which are the indices of all of the animations this sequence references.

The indices are relative to the model containing this sequence.

GetAllSequences unknown GetAllSequences(unknown...) Returns an array of int's which are the indices of all of the sequences this sequence references.

The indices are relative to the model containing this sequence.

GetAssetInfo unknown GetAssetInfo(unknown...) Returns a table representing the asset info or nil if there is no asset info on the sequence.

The table is of the form: { name = '<string>, schemaType = <string>, searchName = <string>, sourceFile = <string>, lineNumber = <int> }.

GetEvent unknown GetEvent(unknown...) Returns a table representing the animation event at the specified index, form:

{ frame = <float>, cycle = <float>, event = <int>, type = <int> }

GetFadeInTime unknown GetFadeInTime(unknown...) Returns the fade in time for the sequence.
GetFadeOutTime unknown GetFadeOutTime(unknown...) Returns the fade out time for the sequence.
GetMaxBounds unknown GetMaxBounds(unknown...) Returns an array representing the maxiumum bounding box of the sequence, form:

{ min = <Vector>, max = <Vector }

GetModel unknown GetModel(unknown...) Get the model this sequence belongs to.
GetName unknown GetName(unknown...) Returns the name of the sequence.
GetNextSequence unknown GetNextSequence(unknown...) Returns the next sequence and direction given the specified sequence, returns a table of the form

{ sequence = <int>, dir = <int> }

GetNodeFlags unknown GetNodeFlags(unknown...) Returns the node flags for the sequence.
GetPoseParameter unknown GetPoseParameter(unknown...) Returns the model relative index of the pose parameter at the specified sequence relative pose parameter index.
GetPoseSettingName unknown GetPoseSettingName(unknown...) Returns the name of the pose setting at the specified index on the sequence.
GetPoseSettingValue unknown GetPoseSettingValue(unknown...) Returns the value of the pose setting at the specified index on the sequence.
GetRagdollBoneWeights unknown GetRagdollBoneWeights(unknown...) Returns an array of floats which are the bone weights for weightlist 0 on the sequence.
IsAnimation unknown IsAnimation(unknown...) Returns true if the sequence is a single animation sequence.
IsAutoplay unknown IsAutoplay(unknown...) Returns true if the sequence is flagged as autoplay
IsDelta unknown IsDelta(unknown...) Returns true if the sequence is flagged as delta.
IsFlagSet unknown IsFlagSet(unknown...) Returns true if the flag is set given the specified flag mask.
IsFrameCacheable unknown IsFrameCacheable(unknown...) Returns true if the sequence is frame cacheable.
IsHidden unknown IsHidden(unknown...) Returns true if the sequence is flagged as hidden.
IsLooping unknown IsLooping(unknown...) Returns true if the sequence is flagged as looping.
IsMulti unknown IsMulti(unknown...) Returns true if the sequence is flagged as multi.
IsSnapped unknown IsSnapped(unknown...) Returns true if the sequence is flagged as snapped
IsVScript unknown IsVScript(unknown...) Returns true if the sequence is a script based sequence.
KeyValueText unknown KeyValueText(unknown...) Returns the KeyValueText on a sequence as a table.
KeyValueTextString unknown KeyValueTextString(unknown...) Returns the KeyValueText on a sequence as a string.
LookupPoseSetting unknown LookupPoseSetting(unknown...) RReturns the index to the pose setting specified by name.
MaxFrame unknown MaxFrame(unknown...) Given a pose parameter array, return the highest frame number for the sequence.
Movement unknown Movement(unknown...) Returns the movement and rotation over the specified cycle range for the sequence

given the specified (optional) pose parameters in a table, form: { deltaMovement = <Vector>, deltaAngle = <QAngle> }. If Movement cannot be computed, nil is returned.

MovementAndDuration unknown MovementAndDuration(unknown...) Returns the movement and duration over the specified cycle range for the sequence given the

specified (optional) pose parameters in a table, form: { duration = <float>, deltaMovement = <Vector> }

NumActivities unknown NumActivities(unknown...) Returns the number of activities defined on the sequence.
NumEvents unknown NumEvents(unknown...) Returns the number of events defined on the sequence.
NumIKRules unknown NumIKRules(unknown...) Returns the number of IkRules on the sequence.
NumPoseParameters unknown NumPoseParameters(unknown...) Returns the number of pose parameters on the sequence.
NumPoseSettings unknown NumPoseSettings(unknown...) Returns the number of pose settings on the sequence.
RemoveEventTypeFlags unknown RemoveEventTypeFlags(unknown...) Removes the the specified type flags for specified event on the sequence.
SetActivityType unknown SetActivityType(unknown...) Sets the activity type for the activity at the specified index on the sequence.
SetEventIndex unknown SetEventIndex(unknown...) Sets the event index for the specified event on the sequence.
SetFlag unknown SetFlag(unknown...) Sets the flags given the specified flag mask.
Velocity unknown Velocity(unknown...) Returns the instantaneous velocity vector at the specified cycle time for the sequence given the

specified (optional) pose parameters. Returns nil if the velocity vector cannot be computed.