e7056c195d
- Open the menu to add new animation nodes by dragging the transitions to empty areas and automatically connecting them. - Adds box selection to the state machine. - Add feature to group/ungroup selected nodes in a "sub" state machine. - Add start/end node by default. In addition, add new color to these nodes to differentiate then. - Add tooltip for transitions to show the connection "from -> to". - Add new "type" of transition line when multiple transitions are grouped. - Add popup to connect nodes in sub state machine. - Add dialog to select which nodes can be deleted when they are grouped. - Add classes: AnimationNodeStartState AnimationNodeEndState EditorAnimationMultiTransitionEdit - Implements disabled transition API Changes: - Now it's posible to add transitions between state machines, `AnimationNodeStateMachine::add_transition` will works with relative path, this means you can use it like this `add_transition("Idle", "Walk", tr)` or `add_transition("Idle", "StateMachine/Shoot)`.
164 lines
5.8 KiB
XML
164 lines
5.8 KiB
XML
<?xml version="1.0" encoding="UTF-8" ?>
|
|
<class name="AnimationNodeStateMachine" inherits="AnimationRootNode" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
|
<brief_description>
|
|
State machine for control of animations.
|
|
</brief_description>
|
|
<description>
|
|
Contains multiple nodes representing animation states, connected in a graph. Node transitions can be configured to happen automatically or via code, using a shortest-path algorithm. Retrieve the [AnimationNodeStateMachinePlayback] object from the [AnimationTree] node to control it programmatically.
|
|
[b]Example:[/b]
|
|
[codeblocks]
|
|
[gdscript]
|
|
var state_machine = $AnimationTree.get("parameters/playback")
|
|
state_machine.travel("some_state")
|
|
[/gdscript]
|
|
[csharp]
|
|
var stateMachine = GetNode<AnimationTree>("AnimationTree").Get("parameters/playback") as AnimationNodeStateMachinePlayback;
|
|
stateMachine.Travel("some_state");
|
|
[/csharp]
|
|
[/codeblocks]
|
|
</description>
|
|
<tutorials>
|
|
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
|
|
</tutorials>
|
|
<methods>
|
|
<method name="add_node">
|
|
<return type="void" />
|
|
<argument index="0" name="name" type="StringName" />
|
|
<argument index="1" name="node" type="AnimationNode" />
|
|
<argument index="2" name="position" type="Vector2" default="Vector2(0, 0)" />
|
|
<description>
|
|
Adds a new node to the graph. The [code]position[/code] is used for display in the editor.
|
|
</description>
|
|
</method>
|
|
<method name="add_transition">
|
|
<return type="void" />
|
|
<argument index="0" name="from" type="StringName" />
|
|
<argument index="1" name="to" type="StringName" />
|
|
<argument index="2" name="transition" type="AnimationNodeStateMachineTransition" />
|
|
<description>
|
|
Adds a transition between the given nodes.
|
|
</description>
|
|
</method>
|
|
<method name="get_graph_offset" qualifiers="const">
|
|
<return type="Vector2" />
|
|
<description>
|
|
Returns the draw offset of the graph. Used for display in the editor.
|
|
</description>
|
|
</method>
|
|
<method name="get_node" qualifiers="const">
|
|
<return type="AnimationNode" />
|
|
<argument index="0" name="name" type="StringName" />
|
|
<description>
|
|
Returns the animation node with the given name.
|
|
</description>
|
|
</method>
|
|
<method name="get_node_name" qualifiers="const">
|
|
<return type="StringName" />
|
|
<argument index="0" name="node" type="AnimationNode" />
|
|
<description>
|
|
Returns the given animation node's name.
|
|
</description>
|
|
</method>
|
|
<method name="get_node_position" qualifiers="const">
|
|
<return type="Vector2" />
|
|
<argument index="0" name="name" type="StringName" />
|
|
<description>
|
|
Returns the given node's coordinates. Used for display in the editor.
|
|
</description>
|
|
</method>
|
|
<method name="get_transition" qualifiers="const">
|
|
<return type="AnimationNodeStateMachineTransition" />
|
|
<argument index="0" name="idx" type="int" />
|
|
<description>
|
|
Returns the given transition.
|
|
</description>
|
|
</method>
|
|
<method name="get_transition_count" qualifiers="const">
|
|
<return type="int" />
|
|
<description>
|
|
Returns the number of connections in the graph.
|
|
</description>
|
|
</method>
|
|
<method name="get_transition_from" qualifiers="const">
|
|
<return type="StringName" />
|
|
<argument index="0" name="idx" type="int" />
|
|
<description>
|
|
Returns the given transition's start node.
|
|
</description>
|
|
</method>
|
|
<method name="get_transition_to" qualifiers="const">
|
|
<return type="StringName" />
|
|
<argument index="0" name="idx" type="int" />
|
|
<description>
|
|
Returns the given transition's end node.
|
|
</description>
|
|
</method>
|
|
<method name="has_node" qualifiers="const">
|
|
<return type="bool" />
|
|
<argument index="0" name="name" type="StringName" />
|
|
<description>
|
|
Returns [code]true[/code] if the graph contains the given node.
|
|
</description>
|
|
</method>
|
|
<method name="has_transition" qualifiers="const">
|
|
<return type="bool" />
|
|
<argument index="0" name="from" type="StringName" />
|
|
<argument index="1" name="to" type="StringName" />
|
|
<description>
|
|
Returns [code]true[/code] if there is a transition between the given nodes.
|
|
</description>
|
|
</method>
|
|
<method name="remove_node">
|
|
<return type="void" />
|
|
<argument index="0" name="name" type="StringName" />
|
|
<description>
|
|
Deletes the given node from the graph.
|
|
</description>
|
|
</method>
|
|
<method name="remove_transition">
|
|
<return type="void" />
|
|
<argument index="0" name="from" type="StringName" />
|
|
<argument index="1" name="to" type="StringName" />
|
|
<description>
|
|
Deletes the transition between the two specified nodes.
|
|
</description>
|
|
</method>
|
|
<method name="remove_transition_by_index">
|
|
<return type="void" />
|
|
<argument index="0" name="idx" type="int" />
|
|
<description>
|
|
Deletes the given transition by index.
|
|
</description>
|
|
</method>
|
|
<method name="rename_node">
|
|
<return type="void" />
|
|
<argument index="0" name="name" type="StringName" />
|
|
<argument index="1" name="new_name" type="StringName" />
|
|
<description>
|
|
Renames the given node.
|
|
</description>
|
|
</method>
|
|
<method name="replace_node">
|
|
<return type="void" />
|
|
<argument index="0" name="name" type="StringName" />
|
|
<argument index="1" name="node" type="AnimationNode" />
|
|
<description>
|
|
</description>
|
|
</method>
|
|
<method name="set_graph_offset">
|
|
<return type="void" />
|
|
<argument index="0" name="offset" type="Vector2" />
|
|
<description>
|
|
Sets the draw offset of the graph. Used for display in the editor.
|
|
</description>
|
|
</method>
|
|
<method name="set_node_position">
|
|
<return type="void" />
|
|
<argument index="0" name="name" type="StringName" />
|
|
<argument index="1" name="position" type="Vector2" />
|
|
<description>
|
|
Sets the node's coordinates. Used for display in the editor.
|
|
</description>
|
|
</method>
|
|
</methods>
|
|
</class>
|