Skip to content
Moritz Brückner edited this page Nov 6, 2023 · 21 revisions

Logic Nodes Reference: Motion nodes

This reference was generated automatically. Please do not edit the page directly, instead change the docstrings of the nodes in their Python files or the generator script and open a pull request. Thank you for contributing!

This reference was built for Armory 2023.11.


Node Categories

Animation

Action

Stores the given action as a variable.

Action node

Sources: Python | Haxe

Blend Action

Interpolates between the two given actions.

Blend Action node

Sources: Python | Haxe

Bone FK

Applies forward kinematics in the given object bone.

Bone FK node

Sources: Python | Haxe

Bone IK

Performs inverse kinematics on the selected armature with specified bone.

Bone IK node

Inputs:

  • Object: Armature on which IK should be performed.
  • Bone: Effector or tip bone for the inverse kinematics
  • Goal Position: Position in world coordinates the effector bone will track to
  • Enable Pole: Bend IK solution towards pole location
  • Pole Position: Location of the pole in world coordinates
  • Chain Length: Number of bones to include in the IK solver including the effector. If set to 0, all bones from effector to the root bone of the armature will be considered.
  • Max Iterations: Maximum allowed FABRIK iterations to solve for IK. For longer chains, more iterations are needed.
  • Precision: Presition of IK to stop at. It is described as a tolerence in length. Typically 0.01 is a good value.
  • Roll Angle: Roll the bones along their local axis with specified radians. set 0 for no extra roll.

Sources: Python | Haxe

Get Action State

Returns the information about the current action of the given object.

Get Action State node

Sources: Python | Haxe

Get Bone FK IK Only

Get if a particular bone is animated by Forward kinematics or Inverse kinematics only.

Get Bone FK IK Only node

Sources: Python | Haxe

Get Bone Transform

Returns bone transform in world space.

Get Bone Transform node

Sources: Python | Haxe

Get Tilesheet State

Returns the information about the current tilesheet of the given object.

Get Tilesheet State node

Outputs:

  • Active Tilesheet: Current active tilesheet.
  • Active Action: Current action in the tilesheet.
  • Frame: Frame offset with 0 as the first frame of the active action.
  • Absolute Frame: Absolute frame index in this tilesheet.
  • Is Paused: Tilesheet action paused.

Sources: Python | Haxe

On Action Marker

Activates the output when the object action reaches the action marker.

On Action Marker node

Sources: Python | Haxe

Pause Action (Deprecated)

DEPRECATED. This node is deprecated and will be removed in future versions of Armory. Please use the following node(s) instead: Set Action Paused.

Pauses the given action.

Pause Action (Deprecated) node

Sources: Python | Haxe

Pause Tilesheet (Deprecated)

DEPRECATED. This node is deprecated and will be removed in future versions of Armory. Please use the following node(s) instead: Set Tilesheet Paused.

Pauses the given tilesheet action.

Pause Tilesheet (Deprecated) node

Sources: Python | Haxe

Play Action (Deprecated)

DEPRECATED. This node is deprecated and will be removed in future versions of Armory. Please use the following node(s) instead: Play Action From.

Plays the given action.

Play Action (Deprecated) node

Sources: Python | Haxe

Play Action From

Plays animation action, that starts from given frame, and ends at given frame.

Play Action From node

Inputs:

  • In: Activates the node logic.
  • Object: States object/armature to run the animation action on.
  • Action: States animation action to be played.
  • Start Frame: Sets frame the animation should start at.
  • End Frame: Sets frame the animation should end at. HINT: Set to "-1" if you want the total frames length of the animation.
  • Blend: Sets rate to blend multiple animations together.
  • Speed: Sets rate the animation plays at.
  • Loop: Sets whether the animation should rewind itself after finishing.

Outputs:

  • Out: Executes whenever the node is run.
  • Done: Executes whenever the played animation is finished. (Only triggers if looping is false.)

Sources: Python | Haxe

Play Tilesheet

Plays the given tilesheet action.

Play Tilesheet node

Sources: Python | Haxe

Remove Parent Bone

Removes the given object parent to the given bone.

Remove Parent Bone node

Sources: Python | Haxe

Resume Action (Deprecated)

DEPRECATED. This node is deprecated and will be removed in future versions of Armory. Please use the following node(s) instead: Set Action Paused.

Resumes the given action.

Resume Action (Deprecated) node

Sources: Python | Haxe

Resume Tilesheet (Deprecated)

DEPRECATED. This node is deprecated and will be removed in future versions of Armory. Please use the following node(s) instead: Set Tilesheet Paused.

Resumes the given tilesheet action.

Resume Tilesheet (Deprecated) node

Sources: Python | Haxe

Set Action Paused

Sets the action paused state of the given object.

Set Action Paused node

Sources: Python | Haxe

Set Action Speed

Sets the current action playback speed of the given object.

Set Action Speed node

Sources: Python | Haxe

Set Active Tilesheet

Set the active tilesheet.

Set Active Tilesheet node

Sources: Python | Haxe

Set Bone FK IK Only

Set particular bone to be animated by Forward kinematics or Inverse kinematics only. All other animations will be ignored

Set Bone FK IK Only node

Sources: Python | Haxe

Set Parent Bone

Sets the given object parent to the given bone.

Set Parent Bone node

Sources: Python | Haxe

Set Particle Speed

Sets the speed of the given particle source.

Set Particle Speed node

Sources: Python | Haxe

Set Tilesheet Frame

Set the frame of the current tilesheet action.

Set Tilesheet Frame node

Inputs:

  • Frame: Frame offset to set with 0 as the first frame of the active action.

Sources: Python | Haxe

Set Tilesheet Paused

Sets the tilesheet paused state of the given object.

Set Tilesheet Paused node

Sources: Python | Haxe

Navmesh

Crowd Go to Location

Makes a NavCrowd agent go to location.

Crowd Go to Location node

Inputs:

  • In: Start navigation.
  • Object: The object to navigate. Object must have NavCrowd trait applied.
  • Location: Closest point on the navmesh to navigate to.

Sources: Python | Haxe

Get Agent Data

Gets the speed and turn duration of the agent

Get Agent Data node

Sources: Python | Haxe

Go to Location

Makes a NavMesh agent go to location.

Go to Location node

Inputs:

  • In: Start navigation.
  • Object: The object to navigate. Object must have NavAgent trait applied.
  • Location: Closest point on the navmesh to navigate to.
  • Speed: Rate of movement.
  • Turn Duration: Rate of turn.
  • Height Offset: Height of the object from the navmesh.
  • Use Raycast: Use physics ray cast to get more precise z positioning.
  • Ray Cast Depth: Depth of ray cast from the object origin.
  • Ray Cast Mask: Ray cast mask for collision detection.

Outputs:

  • Out: Executed immidiately after start of the navigation.
  • Tick Position: Executed at every step of navigation translation.
  • Tick Rotation: Executed at every step of navigation rotation.

Sources: Python | Haxe

Navigable Location

TO DO.

Navigable Location node

Sources: Python | Haxe

Pick NavMesh Location

Pick a location coordinates in the given NavMesh.

Pick NavMesh Location node

Sources: Python | Haxe

Stop Agent

Stops the given NavMesh agent.

Stop Agent node

Sources: Python | Haxe

Transform

Append Transform

Appends transform to the given object.

Append Transform node

Sources: Python | Haxe

Get Object Dimension

Returns the dimension of the given object.

Get Object Dimension node

Sources: Python | Haxe

Get Object Location

Get the location of the given object in world coordinates.

See also:

Get Object Location node

Inputs:

  • Parent Relative: If enabled, transforms the world coordinates into object parent local coordinates

Sources: Python | Haxe

Get Object Rotation

Returns the current rotation of the given object.

Get Object Rotation node

Sources: Python | Haxe

Get Object Scale

Returns the scale of the given object.

Get Object Scale node

Sources: Python | Haxe

Get Object Transform

Returns the transformation of the given object. An object's transform consists of vectors describing its global location, rotation and scale.

Get Object Transform node

Sources: Python | Haxe

Get World Orientation

Returns the world orientation of the given object.

Get World Orientation node

Sources: Python | Haxe

Look At

Returns a rotation that makes something look away from X,Y or Z, and instead look in the 'from->to' direction

Look At node

Sources: Python | Haxe

Rotate Object

Rotates the given object.

Rotate Object node

Sources: Python | Haxe

Rotate Object Around Axis (Deprecated)

DEPRECATED. This node is deprecated and will be removed in future versions of Armory. Please use the following node(s) instead: Rotate Object.

Deprecated. It is recommended to use the 'Rotate Object' node instead.

Rotate Object Around Axis (Deprecated) node

Sources: Python | Haxe

Scale Object (Deprecated)

DEPRECATED. This node is deprecated and will be removed in future versions of Armory. Please use the following node(s) instead: Set Object Scale.

Deprecated. 'Use Set Object Scale' instead.

Scale Object (Deprecated) node

Sources: Python | Haxe

Separate Rotation

Decompose a rotation into one of its mathematical representations

Separate Rotation node

Sources: Python | Haxe

Separate Transform

Separates the transform of the given object.

Separate Transform node

Sources: Python | Haxe

Set Object Location

Set the location of the given object in world coordinates.

See also:

Set Object Location node

Inputs:

  • Parent Relative: If enabled, transforms the world coordinates into object parent local coordinates

Sources: Python | Haxe

Set Object Rotation

Sets the rotation of the given object.

Set Object Rotation node

Sources: Python | Haxe

Set Object Scale

Sets the scale of the given object.

Set Object Scale node

Sources: Python | Haxe

Set Object Transform

Sets the transform of the given object.

Set Object Transform node

Sources: Python | Haxe

Transform Math

Operates the two given transform values.

Transform Math node

Sources: Python | Haxe

Transform to Vector

Returns vector from the given transform.

Transform to Vector node

Sources: Python | Haxe

Translate Object

Translates (moves) the given object using the given vector in world coordinates.

Translate Object node

Sources: Python | Haxe

Translate On Local Axis

Translates (moves) the given object using the given vector in the local coordinates.

Translate On Local Axis node

Sources: Python | Haxe

Vector to Object Orientation

Transform world coordinates into object oriented coordinates (in other words: apply object rotation to it).

See also:

Vector to Object Orientation node

Sources: Python | Haxe

World Vector to Local Space

Transform world coordinates into object local coordinates.

See also:

World Vector to Local Space node

Sources: Python | Haxe

Physics

Add Physics Constraint

Add a physics constraint to constrain two rigid bodies if not already present.

See also:

Add Physics Constraint node

Options:

  • Fixed: No fredom of movement. Relative positions and rotations of rigid bodies are fixed
  • Point: Both rigid bodies are constrained at the pivot object.
  • Hinge: Constrained objects can move only along angular Z axis of the pivot object.
  • Slider: Constrained objects can move only along linear X axis of the pivot object.
  • Piston: Constrained objects can move only and rotate along X axis of the pivot object.
  • GenericSpring: Fully custimizable generic 6 degree of freedom constraint with optional springs. All liner and angular axes can be constrained along with spring options. Use Physics Constraint Node to set a combination of constraints and springs.

Inputs:

  • Pivot object: The object to which the physics constraint traint is applied. This object will not be affected by the constraint but is necessary to specify the constraint axes and location. Hence, the pivot object need not be a rigid body. Typically an Empty object may be used. Each pivot object can have only one constraint trait applied. Moving/rotating/parenting the pivot object after the constraint is applied has no effect. However, removig the pivot object removes the constraint and RB 1 and RB 2 are no longer constrained.
  • RB 1: The first rigid body to be constrained. Must be a rigid body. This object can be constrained by more than one constraint.
  • RB 2: The second rigid body to be constrained. Must be a rigid body. This object can be constrained by more than one constraint.
  • Disable Collisions: Disable collisions between RB 1 and RB 2
  • Breakable: Constraint can break if stress on the constraint is more than the set threshold. Disable this option to disable breaking.
  • Breaking threshold: Stress on the constraint above which the constraint breaks. Depends on the mass, velocity of rigid bodies and type of constraint.
  • Limit Lower: Lower limit of the consraint in that particular axis
  • Limit Upper: Upper limit of the constraint in that particular axis. (lower limit = upper limit) --> Fully constrained. (lower limit < upper limit) --> Partially constrained (lower limit > upper limit) --> Full freedom.
  • Angular limits: Limits to constarin rotation. Specified in degrees. Range (-360 to +360)
  • Add Constarint: Option to add custom constraint to Generic Spring type.

Sources: Python | Haxe

Add Rigid Body

Adds a rigid body to an object if not already present.

Add Rigid Body node

Options:

  • Advanced: Shows optional advanced options for rigid body.
  • Shape: Shape of the rigid body including Box, Sphere, Capsule, Cone, Cylinder, Convex Hull and Mesh

Inputs:

  • Object: Object to which rigid body is added.
  • Mass: Mass of the rigid body. Must be > 0.
  • Active: Rigid body actively participates in the physics world and will be affected by collisions
  • Animated: Rigid body follows animation and will affect other active non-animated rigid bodies.
  • Trigger: Rigid body behaves as a trigger and detects collision. However, rigd body does not contribute to or receive collissions.
  • Friction: Surface friction of the rigid body. Minimum value = 0, Preferred max value = 1.
  • Bounciness: How elastic is the surface of the rigid body. Minimum value = 0, Preferred max value = 1.
  • Continuous Collision Detection (CCD): Detects for collisions in between frames. Use only for very fast moving objects.
  • Collision Margin: Enable an external margin for collision detection
  • Margin: Length of the collision margin. Must be > 0.
  • Linear Damping: Damping for linear translation. Recommended range 0 to 1.
  • Angular Damping: Damping for angular translation. Recommended range 0 to 1.
  • Angular Friction: Rolling or angular friction. Recommended range >= 0
  • Use Deactivation: Deactive this rigid body when below the Linear and Angular velocity threshold. Enable to improve performance.
  • Linear Velocity Threshold: Velocity below which decativation occurs if enabled.
  • Angular Velocity Threshold: Velocity below which decativation occurs if enabled.
  • Collision Group: A set of rigid bodies that can interact with each other
  • Collision Mask: Bitmask to filter collisions. Collision can occur between two rigid bodies if they have atleast one bit in common.

Outputs:

  • Rigid body: Object to which rigid body was added.
  • Out: activated after rigid body is added.

Sources: Python | Haxe

Apply Force

Applies force in the given rigid body.

See also:

Apply Force node

Inputs:

  • Force: the force vector
  • On Local Axis: if true, interpret the force vector as in object space

Sources: Python | Haxe

Apply Force At Location

Applies force in the given rigid body at the given position.

See also:

Apply Force At Location node

Inputs:

  • Force: the force vector
  • Force On Local Axis: if true, interpret the force vector as in object space
  • Location: the location where to apply the force
  • Relative Location: if true, use the location relative to the objects location, otherwise use world coordinates

Sources: Python | Haxe

Apply Impulse

Applies impulse in the given rigid body.

See also:

Apply Impulse node

Inputs:

  • Impulse: the impulse vector
  • On Local Axis: if true, interpret the impulse vector as in object space

Sources: Python | Haxe

Apply Impulse At Location

Applies impulse in the given rigid body at the given position.

See also:

Apply Impulse At Location node

Inputs:

  • Impulse: the impulse vector
  • Impulse On Local Axis: if true, interpret the impulse vector as in object space
  • Location: the location where to apply the impulse
  • Relative Location: if true, use the location relative to the objects location, otherwise use world coordinates

Sources: Python | Haxe

Apply Torque

Applies torque to the given rigid body.

Apply Torque node

Sources: Python | Haxe

Apply Torque Impulse

Applies torque impulse in the given rigid body.

Apply Torque Impulse node

Sources: Python | Haxe

Convex Cast

Casts a convex rigid body and get the closest hit point. Also called Convex Sweep Test.

See also:

Convex Cast node

Inputs:

  • Convex RB: A convex Rigid Body object to be used for the sweep test.
  • From: The initial location of the convex object.
  • To: The final location of the convex object.
  • Rotation: Rotation of the Convex RB during sweep test.
  • Mask: A bit mask value to specify which objects are considered

Outputs:

  • Hit Position: The hit position in world coordinates
  • Convex Position: Position of the convex RB at the time of collision.
  • Normal: The surface normal of the hit position relative to the world.

Sources: Python | Haxe

Convex Cast On

Casts a convex rigid body and get the closest hit point. Also called Convex Sweep Test.

See also:

Convex Cast On node

Inputs:

  • In: Input trigger
  • Convex RB: A convex Rigid Body object to be used for the sweep test.
  • From: The initial location of the convex object.
  • To: The final location of the convex object.
  • Rotation: Rotation of the Convex RB during sweep test.
  • Mask: A bit mask value to specify which objects are considered

Outputs:

  • Out: Output after hit
  • Hit Position: The hit position in world coordinates
  • Convex Position: Position of the convex RB at the time of collision.
  • Normal: The surface normal of the hit position relative to the world.

Sources: Python | Haxe

Get RB Contacts

Returns an array with all objects that are colliding with the given object.

See also:

Get RB Contacts node

Sources: Python | Haxe

Get RB Data

Returns the data of the given rigid body.

Get RB Data node

Sources: Python | Haxe

Get RB First Contact

Returns the first object that is colliding with the given object.

See also:

Get RB First Contact node

Sources: Python | Haxe

Get RB Point Velocity

Returns the world velocity of the given point along the rigid body.

Get RB Point Velocity node

Sources: Python | Haxe

Get RB Velocity

Returns the world velocity of the given rigid body.

Get RB Velocity node

Sources: Python | Haxe

Get World Gravity

Returns the world gravity.

See also:

Get World Gravity node

Sources: Python | Haxe

Has Contact

Returns whether the given rigid body has contact with another given rigid body.

Has Contact node

Sources: Python | Haxe

Has Contact Array

Returns whether the given rigid body has contact with other given rigid bodies.

Has Contact Array node

Sources: Python | Haxe

On Contact

Activates the output when the rigid body make contact with another rigid body.

On Contact node

Options:

  • Begin: the output is activated on the first frame when the two objects have contact
  • End: the output is activated on the frame after the last frame when the two objects had contact
  • Overlap: the output is activated on each frame the object have contact

Sources: Python | Haxe

On Contact Array

Activates the output when the given rigid body make contact with other given rigid bodies.

On Contact Array node

Sources: Python | Haxe

On Volume Trigger

Activates the output when the given object enters, overlaps or leaves the bounding box of the given trigger object. (Note: Works even if objects are not Rigid Bodies).

On Volume Trigger node

Inputs:

  • RB: this object is taken as the entering object
  • Trigger: this object is used as the volume trigger

Sources: Python | Haxe

Physics Constraint

Custom physics constraint to add to Add Physics Constarint node.

See also:

Physics Constraint node

Options:

  • Linear/Angualr: Select if constrint is applied along linear or angular axis.
  • Axis: Local axis of the pivot object along which the constraint is applied.
  • Spring: Constraint is a Spring along the selected axis.

Inputs:

  • Limit Lower: Lower limit of the consraint in that particular axis
  • Limit Upper: Upper limit of the constraint in that particular axis. (lower limit = upper limit) --> Fully constrained. (lower limit < upper limit) --> Partially constrained (lower limit > upper limit) --> Full freedom.

Sources: Python | Haxe

Pick RB

Picks the rigid body in the given location using the screen coordinates (2D).

See also:

Pick RB node

Inputs:

  • Screen Coords: the location at which to pick, in screen coordinates
  • Mask: a bit mask value to specify which objects are considered

Outputs:

  • RB: the object that was hit
  • Hit: the hit position in world coordinates
  • Normal: the hit normal in world coordinates

Sources: Python | Haxe

RB Is Active

Returns whether the given rigid body is active or sleeping.

RB Is Active node

Sources: Python | Haxe

Ray Cast

Casts a physics ray and returns the first object that is hit by this ray.

See also:

Ray Cast node

Inputs:

  • From: the location from where to start the ray, in world coordinates
  • To: the target location of the ray, in world coordinates
  • Mask: a bit mask value to specify which objects are considered

Outputs:

  • RB: the object that was hit
  • Hit: the hit position in world coordinates
  • Normal: the surface normal of the hit position relative to the world

Sources: Python | Haxe

Ray Cast On

Casts a physics ray and returns the first object that is hit by this ray.

See also:

Ray Cast On node

Inputs:

  • In: Input trigger
  • From: the location from where to start the ray, in world coordinates
  • To: the target location of the ray, in world coordinates
  • Mask: a bit mask value to specify which objects are considered

Outputs:

  • Out: Output after hit
  • RB: the object that was hit
  • Hit: the hit position in world coordinates
  • Normal: the surface normal of the hit position relative to the world

Sources: Python | Haxe

Remove RB

Removes the rigid body from the given object.

Remove RB node

Sources: Python | Haxe

Set RB Activation State

Sets the rigid body simulation state of the given object.

Set RB Activation State node

Sources: Python | Haxe

Set RB Friction

Sets the friction of the given rigid body.

Set RB Friction node

Sources: Python | Haxe

Set RB Gravity Enabled

Sets whether the gravity is enabled for the given rigid body.

Set RB Gravity Enabled node

Sources: Python | Haxe

Set RB Velocity

Sets the velocity of the given rigid body.

Set RB Velocity node

Sources: Python | Haxe

Set World Gravity

Sets the world gravity.

See also:

Set World Gravity node

Sources: Python | Haxe

Volume Trigger

Returns true if the given rigid body enters, overlaps or leaves the given volume trigger.

Volume Trigger node

Inputs:

  • RB: this object is taken as the entering object
  • Trigger: this object is used as the volume trigger

Sources: Python | Haxe

Clone this wiki locally