On this page

Updated APEX graph nodes

APEX graph node

Update

Add<T>, Divide<T>, Multiply<T>, Negate<T>, Subtract<T>

Added support for Vector4 operations.

ch::ChannelFromCollection

The new input default allows you to return a specific channel if the requested channel doesn’t exist.

The new output success indicates whether a channel is created successfully from the channel collection.

ch::ChannelFromPrim

The new input default allows you to return a specific channel if a channel is not created successfully from a given channel primitive on the geometry.

The new output success indicates whether a channel is created successfully from a given channel primitive on the geometry.

component::AddSpaceSwitchControl

The new input size allows you to specify the size of the space switch control shape.

Convert<SrcT, DesT>

Convert<Vector4, Matrix3> and Convert<Matrix4, Vector4> are deprecated and hidden. Use quaternion::ToMatrix and quaternion::FromMatrix instead.

geo::Transform

The new inputs group and grouptype allow you to choose the subset of geometry to transform.

geo::DetailAttribValue<T>, geo::PointAttribValue<T>, geo::PointAttribValuesByName<T>, geo::PrimAttribValue<T>, geo::PrimAttribValuesByName<T>, geo::SetDetailAttribValue<T>, geo::SetPointAttribValue<T>, geo::SetPointAttribValues<T>, geo::SetPointAttribValuesByName<T>, geo::SetPrimAttribValue<T>, geo::SetPrimAttribValues<T>, geo::SetPrimAttribValuesByName<T>, geo::SetVertexAttribValue<T>, geo::SetVertexAttribValues<T>, geo::SetVertexAttribValuesByName<T>, geo::VertexAttribValue<T>, geo::VertexAttribValuesByName<T>

Added support for types Matrix3Array, Matrix4Array, Vector2Array, Vector3Array, and Vector4Array.

Power

The Exponent node has been renamed to Power.

ragdoll::Solve

The new inputs forces and animstack add support for forces in the ragdoll solver.

rig::ControlRigExtract, rig::ControlRigExtractSkel

The new input default_geometries is a collection of packed primitives with geometries that are used as default values for the rig graph inputs.

rig::MultiBoneIK

The new IK with Constraints Solver allows you to specify per-joint rotation limits and per-joint damping for computing the IK solution. The new inputs for using this solver are solver and properties.

The new usetwistrest, twistrest, and twistmax inputs allow you to compute the central angle between the twist pole vector and rest twist pole vector, and if the angle exceeds a maximum twist, it is linearly interpolated back to 0. This helps to avoid character limbs flipping during rig inversion of mocap data, and instead hyperextends the knee or elbow.

rig::MultiBoneIKFromArray

The new IK with Constraints Solver allows you to specify per-joint rotation limits and per-joint damping for computing the IK solution. The new inputs for using this solver are solver and properties.

rig::SampleSplineTransforms, rig::SampleSplineTransformsToArray, rig::SplineInterpolateTransforms, rig::SplineInterpolateTransformsToArray

The new input stretchsquashtype allows you to apply different types of stretch and squash scaling.

skel::Sort

The new input depthfirst allows you to sort a skeleton using depth-first or breadth-first mode.

sim::LoadSimFile

The new input solvecurrentframe allows you to solve objects on their creation frame.

TransformObject

The new inputs p and pr allow you to specify local space pivot translation and rotation values.

New APEX graph nodes

array::Slice<T>

Extracts a slice from an array.

ch::ChannelFromFloatArray

Builds a channel from an array of samples.

ch::ChannelToFloatArray

Converts a channel to a float array.

component::AddIkInverter

Adds a two-bone IK inverter node to a rig’s inversion graph.

component::AddSplineInverter

Adds a spline inverter subnet to an inversion graph.

component::MappedConstraints-2.0

Constrains pairs of TransformObject nodes that share a matching mapping property.

component::PlaceSpline

Places the control transforms of a spline based on the curvature of a joint chain.

component::UnpromoteControl

Unpromotes the transform parameters of a control node, optionally replacing it with a locator.

dict::Clear

Clears a dictionary.

Exponential

Computes the exponential function, e^x.

geo::DetailAttribData

Retrieves metadata for detail (global) geometry attributes.

geo::ExtractPackedPaths

Returns the paths of packed primitives that match a given pattern.

geo::GetCameraProperties

Gets the properties of camera primitives.

geo::GetCameraTransforms

Gets the world transforms of multiple camera primitives.

geo::InPointGroup

Checks if a point is in a given group.

geo::InPrimGroup

Checks if a primitive is in a given group.

geo::InVertexGroup

Checks if a vertex is in a given group.

geo::JigglePointAttribs

Applies a jiggle effect on point attributes of a geometry.

geo::LagOvershootPointAttribs

Applies a lag/overshoot effect on point attributes of a geometry.

geo::NameToPrim

Returns the index of a primitive based on its name attribute value.

geo::PointAttribData

Retrieves metadata for point geometry attributes.

geo::PointAttribValuesToArray<T>

Returns the values of a point attribute as an array.

geo::PrimAttribData

Retrieves metadata for primitive geometry attributes.

geo::PrimAttribValuesToArray<T>

Returns the values of a primitive attribute as an array.

geo::PrimUV<T>

Interpolates the value of an attribute at a parametric (UVW) position.

geo::SetCameraProperties

Sets the properties on camera primitives.

geo::SetCameraTransforms

Sets the world transforms of multiple camera primitives.

geo::SetCameraTransformsFromSkel

Sets the world transforms of camera primitives based on a skeleton.

geo::SetPointAttribValuesFromArray<T>

Sets the values of a point attribute from an array.

geo::SetPointGroup

Sets a point’s membership within a group.

geo::SetPrimAttribValuesFromArray<T>

Sets the values of a primitive attribute from an array

geo::SetPrimGroup

Sets a primitive’s membership within a group.

geo::SetVertexAttribValuesFromArray<T>

Sets the values of a vertex attribute from an array.

geo::SetVertexGroup

Sets a vertex’s membership within a group.

geo::SpringPointAttribs

Applies a spring effect on point attributes of a geometry.

geo::VertexAttribData

Retrieves metadata for vertex geometry attributes.

geo::VertexAttribValuesToArray<T>

Returns the values of a vertex attribute as an array.

geo::XyzDist

Finds the distance, primitive number, and UV coordinates from a point to the closest location on a geometry.

geoutils::UpdateCameraProperties

Updates a dictionary of camera properties.

graph::FindUniqueNodeName

Returns a unique node name given a desired name.

graph::IsValidID<T>

Checks whether a given node ID or port ID is valid.

graph::NodeInput

Returns a node’s input port given an index.

graph::NodeOutput

Returns a node’s output port given an index.

graph::RemoveNodeTag

Removes a tag on an APEX graph node.

graph::RenameNode

Sets the name of a node.

graph::SetNodeColor

Sets the color of an APEX graph node.

graph::SetNodeTag

Adds a tag on an APEX graph node.

Logarithm

Computes the natural logarithm of a value.

Power

Raises a value to an exponent.

quaternion::Exponential

Computes the exponential of a quaternion.

quaternion::Logarithm

Computes the natural logarithm of a quaternion.

quaternion::Power

Raises a quaternion to the power of an exponent.

ragdoll::Turbulence

Computes a 3D turbulent noise.

skel::OrientJoints

Performs joint orientation based on settings generated from an Orient Joints SOP.

string::Expand

Expands the variables in a string.

string::Slice

Extracts a slice from a string.

KineFX

Overview

Preparing character elements

Rigging with APEX graphs

Building rig graphs with APEX Script

Rigging with rig components

Animating in the viewport

Customizing the animate state

SOP-based animation

Deformation

Animation retargeting

Pre-H20

Panes

Appendix