ICE Kinematics Workgroup Compounds


Table of contents

2 Bone IK

Outputs the IK solution for a 2-bone chain, including the global transforms of the bones and the position of the chain tip.

Tasks: ICE Kinematics/IK Solvers

Output Ports: Bone1_Result, Bone2_Result, Chain_Tip

Target Position The IK goal.


Bone1 Transform The input transform for the first bone. This is used for FK blending as well as for seeding the IK solution.


Bone1 Length The length of the first bone.


Bone2 Transform The input transform for the second bone. This is used for FK blending as well as for seeding the IK solution.


Bone2 Length The length of the second bone.


Blend The blend between FK and IK. A value of 0.0 is fully FK and 1.0 is fully IK.


3 Bone IK

Outputs the IK solution for a 3-bone chain, including the global transforms of the bones and the position of the chain tip. You can control the extent to which the first bone is affected by the IK solution.

Tasks: ICE Kinematics/IK Solvers

Output Ports: Bone1_Result, Bone2_Result, Bone3_Result, Chain_Tip

Target Position The IK goal.


Bone1 Transform The input transform for the first bone. This is used for FK blending as well as for seeding the IK solution.


Bone1 Length The length of the first bone.


Bone2 Transform The input transform for the second bone. This is used for FK blending as well as for seeding the IK solution.


Bone2 Length The length of the second bone.


Bone3 Transform The input transform for the third bone. This is used for FK blending as well as for seeding the IK solution.


Bone3 Length The length of the third bone.


FKIK Blend The blend between FK and IK. A value of 0.0 is fully FK and 1.0 is fully IK.


Bone1 IK Weight Controls the FK/IK blend of the first bone independently of FKIK Blend.


Bone1 Extension Limit Softness The ease-in/ease-out of the first bone’s rotation as the second and third bones reach their maximum extension.


3 Bone IK Reversed

Outputs the IK solution for a 3-bone chain, including the global transforms of the bones and the position of the chain tip. In contrast to 3Bone IK, you can control the extent to which the third bone is affected by the IK solution. For example, this is useful for ankles where you want the hip and knee to be almost fully extended before the ankle starts to rotate.

Tasks: ICE Kinematics/IK Solvers

Output Ports: Matrix1, Matrix2, Matrix3, Chain_Tip

Target Position The IK goal.


Bone1 Transform The input transform for the first bone. This is used for FK blending as well as for seeding the IK solution.


Bone1 Length The length of the first bone.


Bone2 Transform The input transform for the second bone. This is used for FK blending as well as for seeding the IK solution.


Bone2 Length The length of the second bone.


Bone3 Transform The input transform for the third bone. This is used for FK blending as well as for seeding the IK solution.


Bone3 Length The length of the third bone.


FKIK Blend The blend between FK and IK. A value of 0.0 is fully FK and 1.0 is fully IK.


Bone3 IK Weight Controls the FK/IK blend of the third bone independently of FKIK Blend.


Bone3 Extension Limit Softness The ease-in/ease-out of the third bone’s rotation as the second and third bones reach their maximum extension.


4 Bone IK

Outputs the IK solution for a 4-bone chain, including the global transforms of the bones and the position of the chain tip. You can control the extent to which the first two bones are affected by the IK solution.

Tasks: ICE Kinematics/IK Solvers

Output Ports: Bone1_Result, Bone2_Result, Bone3_Result, Bone4_Result, Chain_Tip

Target Position The IK goal.


Bone1 Transform The input transform for the first bone. This is used for FK blending as well as for seeding the IK solution.


Bone2 Transform The input transform for the second bone. This is used for FK blending as well as for seeding the IK solution.


Bone3 Transform The input transform for the third bone. This is used for FK blending as well as for seeding the IK solution.


Bone4 Transform The input transform for the fourth bone. This is used for FK blending as well as for seeding the IK solution.


Bone1 Length The length of the first bone.


Bone2 Length The length of the second bone.


Bone3 Length The length of the third bone.


Bone4 Length The length of the fourth bone.


Blend The blend between FK and IK. A value of 0.0 is fully FK and 1.0 is fully IK.


Bone 1 IK Weight Controls the FK/IK blend of the first bone independently of Blend.


Bone 1 Softness The ease-in/ease-out of the first bone’s rotation as the third and fourth bones reach their maximum extension.


Bone 2 IK Weight Controls the FK/IK blend of the second bone independently of Blend.


Bone 2 Softness The ease-in/ease-out of the second bone’s rotation as the third and fourth bones reach their maximum extension.



Apply Point Spring

Applies spring-like behavior to deformers in a rig. This is useful for secondary dynamics.

Tasks: ICE Kinematics/Secondary Dynamics

Output Ports: Execute

Bone IDs The indices of the spring-like deformers in the Self.BoneTransforms array.


Restitution Transforms The transforms to which the deformers try to return. Typically, this should be the offset from the deformers’ parents’ or pseudo-parents in the bind pose.


Dampening A factor that reduces the effect of the springs and prevents them from oscillating forever.


Restitution force Controls how strongly the deformers try to return to their Restitution Transforms.


Constraint Volume Size Sets a maximum elongation for the springs.


Constraint Softness The ease-in/ease-out as the spring reaches its maximum elongation. This prevents the spring from halting abruptly at the maximum value.


Reference A custom attribute used for internal calculations. Change this to a unique name if you are using more than one compound on the same object.


Reference1 A custom attribute used for internal calculations. Change this to a unique name if you are using more than one compound on the same object.


Reference2 A custom attribute used for internal calculations. Change this to a unique name if you are using more than one compound on the same object.


Reference3 A custom attribute used for internal calculations. Change this to a unique name if you are using more than one compound on the same object.



Basic Collide Geometry

Replaced in Softimage 2011SP by Basic Collide Global.

Basic Collide Global

Calculates whether a moving point will collide with a geometry, and if so then returns the collision location and time. The difference with the Basic Collide node is that this compound uses global position and direction.

Locations are "glued" to the surface of a geometry so that they stay in the same relative position even as the geometry transforms and deforms, unless you recompute and reset the locations' values at different frames.

This node only works with obstacles made of polygon meshes or NURBS surfaces. Curves and Point Clouds return no collisions. Currently collisions with NURBS surfaces will not take deformation into account, only animation of the transform.

Tasks: ICE Kinematics/Geometry Queries

Output Ports: Hit_Location, Global_Hit_Position, Hit, Hit_Frame_Fraction, Is_Outside


Obstacle The geometry to on which to test the collision.
Global Start Position The position of the point on which we test collisions at the input frame fraction.
Global Direction The direction of the point's movement.
Ray Length The length of movement until the end of the current frame.
Frame Fraction The portion of the frame that has already elapsed, expressed as a fraction.
Current Collision Location of the previous inter-frame collision. This is optional but helps making collisions more robust. This is typically the previous output of the Basic Collide node.
Current Collision Is Outside Whether the point is inside or outside the geometry at the start of the motion.
Method How to calculate the collision.
  • Deformed Collision (Continuous): Takes any deformation of the obstacle geometry into account.
  • Static Collision: Does not take deformation into account.


Bezier Spine

Returns the transforms of the bones in a spine based on the transforms for base, middle, and tip controllers. The calculations are based on a Bézier curve.

To display points showing the calculated positions between the bones as well as tangent handles for the base and tip, plug the Execute_Debugging output into the tree root and activate Display.

Tasks: ICE Kinematics/Rig Components

Output Ports: Execute_Debugging, Transforms

Bone Lengths An array containing the bone lengths,


Base Manip The transform of the spine’s base manipulator.


Middle Manip The transform of the spine’s middle manipulator.


Tip Manip The transform of the spine’s tip manipulator.


Base Hdl Offset The direction and length of the Bézier tangent handle used to control curve direction at the spine’s base.


Tip Hdl Offset The direction and length of the Bézier tangent handle used to control curve direction at the spine’s tip, where X is along the curve, Y is the curve normal, and Z is the binormal.


Use Middle Manipulator The influence of the middle manipulator, where 0.0 is no influence and 1.0 is full influence.


Squash Limit The maximum compression of the spine.


Squash Limit Softness The ease-in/ease-out as the amount of compression reaches the Squash Limit.


Stretch Limit The maximum elongation of the spine.


Stretch Limit Softness The ease-in/ease-out as the amount of compression reaches the Stretch Limit.


Poissons Ratio The amount by which the spine bones bulge when squashed or thin out when stretched.


Squash Distribution Profile The amount of bulging and thinning along the length of the spine.


Display Shows lines showing the first and last tangents of the spine. When changing this value, you need to change frames to update.


Bind Deformer to ICE Rig

Reads the deformer transforms from an ICE rig and applies them to the “self” object.

This compound was designed to be used in rigs similar to the ICE Rabbit Rig scene in the XSISAMPLES project. It assumes that this compound is in a tree on a deformer null with a BoneParams property, including BoneID and Length parameters. It also assumes that the rig is called ICERig and has an ICE attribute called BoneTransforms.

Tasks: ICE Kinematics/Rig Binding

Output Ports: Execute

Display Shows a capsule shape corresponding to the size and pose of the deformer.


Select Color The color of the displayed capsule.


Calc Bone N

Calculates the IK/FK solution for any bone in a chain except for the last two bones.

To add this node, drag it into an ICE tree from the \Data\Compounds subdirectory of the ICE Kinematics workgroup.

Output Ports: Bone_IK_Orientation, Chain_Alignment_Out, Bone_Tip

Target Position The global position of the IK goal.


Chain Alignment The local orientation to align with the IK goal.


Bone FK Orientation The global FK orientation of the bone. This is used for FK blending as well as for seeding the IK solution.


Bone Position The global position of the bone.


FK Chain Tip The global FK position of the end of the entire chain.


Bone Length The length of the bone.


Child Lengths The sum of the lengths of the subsequent bones in the chain.


IK Weight The blend between FK and IK. A value of 0.0 is fully FK and 1.0 is fully IK.


Softness The ease-in/ease-out of the bone’s rotation as its children reach their maximum extension.


Calc Bone N Minus 1

Calculates the IK/FK solution for the last bone in a chain.

To add this node, drag it into an ICE tree from the \Data\Compounds subdirectory of the ICE Kinematics workgroup.

Output Ports: Bone_IK_Orientation

Target The global position of the IK goal.


Chain Alignment The local orientation to align with the IK goal.


Bone Position The global position of the bone.


Bone FK Orientation The global FK orientation of the bone. This is used for FK blending as well as for seeding the IK solution.


Bone Length The length of the bone.


Calc Bone N Minus 2

Calculates the IK/FK solution for the second-to-last bone in a chain.

To add this node, drag it into an ICE tree from the \Data\Compounds subdirectory of the ICE Kinematics workgroup.

Output Ports: Bone_IK_Orientation, Chain_Alignment_Out, Bone_Tip

Target Position The global position of the IK goal.


Chain Alignment The local orientation to align with the IK goal.


Position The global position of the bone.


Bone FK Orientation The global FK orientation of the bone. This is used for FK blending as well as for seeding the IK solution.


Bone Length The length of the bone.


Child Bone Length The length of the last bone in the chain.


FK Chain tip The global FK position of the end of the entire chain.


Calc Curve Driven Springy Chain

Calculates the transforms of a chain of deformers such as for rabbits’ ears, and stores them in the BoneTransforms array. The transforms are based on a curve defined by a set of manipulators. A Verlet-based spring-like simulation is then applied to the curve.

This compound was designed to be used in rigs similar to the ICE Rabbit Rig scene in the XSISAMPLES project. It assumes that the deformer transforms are stored in a custom ICE array attribute called BoneTransforms.

Tasks: ICE Kinematics/Secondary Dynamics

Output Ports: Execute

Manipulator Transforms An array of 4x4 matrices corresponding to the global transforms of the manipulators that define the control points of the curve.


Bone IDs An array containing the indices of the affected deformers in the BoneTransforms array.


Bone Lengths An array containing the lengths of the deformers in the same order as Bone IDs.


Enable Toggles the spring simulation on of off. When off, the deformers are still driven by a curve defined by the manipulators, but are not simulated.


Dampening Reduces the springiness. Use values between 0.0 (extremely springy) and 1.0 (no springiness).


Restitution Force Profile The fall-off profile of the restitution force along the length of the curve. For example, you can use this to make the end of the curve floppier than the base.


Restitution force The strength of the force that returns the deformers to their unsimulated poses.


Length Constraint Iterations The degree to which the compound corrects the lengths of the curve segments. Increasing this value reduces the stretching of the curve but increases computation times.


Reference A custom attribute used for internal calculations. If you use more than one compound on the same object, make sure that this attribute is unique.


Reference1 A custom attribute used for internal calculations. If you use more than one compound on the same object, make sure that this attribute is unique.


Reference2 A custom attribute used for internal calculations. If you use more than one compound on the same object, make sure that this attribute is unique.


Reference3 A custom attribute used for internal calculations. If you use more than one compound on the same object, make sure that this attribute is unique.


Calc FK Driven Springy Chain

Applies a spring-like simulation to a chain of deformers such as for a tail, and stores the resulting transforms in the BoneTransforms array.

This compound was designed to be used in rigs similar to the ICE Rabbit Rig scene in the XSISAMPLES project. It assumes that the deformer transforms are stored in a custom ICE array attribute called BoneTransforms.

Tasks: ICE Kinematics/Secondary Dynamics

Output Ports: Execute

BoneIds An array containing the indices of the affected deformers in the BoneTransforms array.


Dampening Reduces the springiness. Use values between 0.0 (extremely springy) and 1.0 (no springiness).


Restitution Force Profile The fall-off profile of the restitution force along the length of the chain. For example, you can use this to make the end of the chain floppier than the base.


Restitution Force The strength of the force that returns the deformers to their unsimulated poses.


Length Constraint Iterations The degree to which the compound corrects the lengths of the chain segments. Increasing this value reduces the stretching of the curve but increases computation times.


Reference A custom attribute used for internal calculations. If you use more than one compound on the same object, make sure that this attribute is unique.


Reference1 A custom attribute used for internal calculations. If you use more than one compound on the same object, make sure that this attribute is unique.


Reference2 A custom attribute used for internal calculations. If you use more than one compound on the same object, make sure that this attribute is unique.


Reference3 A custom attribute used for internal calculations. If you use more than one compound on the same object, make sure that this attribute is unique.


Calc FK Manipulated Chain

Calculates the FK solution for a chains of deformers such as fingers and toes, and stores the resulting transforms. The solution is based on a set of manipulators.

This compound was designed to be used in rigs similar to the ICE Rabbit Rig scene in the XSISAMPLES project. It assumes that the deformer transforms are stored in a custom ICE array attribute called BoneTransforms, and that the offset between each deformer along the chain is stored in a custom ICE array attribute called BoneBindPoseLocalTransforms.

Tasks: ICE Kinematics/FK Hierarchies

Output Ports: Execute

Parent IDs An array containing the indices corresponding to the first bones’ roots in the BoneTransforms array.


Bone1 IDs An array containing the indices corresponding to the first bones in the BoneTransforms array, in the same order as Parent IDs.


Bone2 IDs An array containing the indices corresponding to the second bones in the BoneTransforms array, in the same order as Parent IDs.


Bone3 IDs An array containing the indices corresponding to the third bones in the BoneTransforms array, in the same order as Parent IDs.


Bone4 IDs An array containing the indices corresponding to the fourth bones in the BoneTransforms array, in the same order as Parent IDs.


Enable Remapping Allows you to remap the last bone in a chain using the Bone4 Remapping parameter below.


Bone4 Remapping Specifies which members of the Bone3 IDs array to use as parents for the bones in the Bone4 IDs array.

This can be useful, for example, if you are using the same compound to solve for both fingers and thumbs, and the fingers each have four bones but the thumbs have three bones. In that case, the Bone4 IDs array has two fewer elements than the Bone3IDs array.

This input should consist of an array containing, for each member of the Bone4 IDs array, the index of the corresponding parent in the Bone3 IDs array (not the index of the corresponding bone in the BoneTransforms array).


Manip1 An array containing the transformation matrices of the manipulators for the first bones in the chains, in the same order as Parent IDs.


Manip1 An array containing the transformation matrices of the manipulators for the second bones in the chains, in the same order as Parent IDs.


Manip1 An array containing the transformation matrices of the manipulators for the third bones in the chains, in the same order as Parent IDs.


Manip1 An array containing the transformation matrices of the manipulators for the fourth bones in the chains, in the same order as Parent IDs.


Calc Single Chain FK

Applies transform offsets along a chain.

This compound was designed to be used in rigs similar to the ICE Rabbit Rig scene in the XSISAMPLES project. It assumes that the deformer transforms are stored in a custom ICE array attribute called BoneTransforms, and that the offset between each deformer along the chain is stored in a custom ICE array attribute called BoneBindPoseLocalTransforms.

Tasks: ICE Kinematics/FK Hierarchies

Output Ports: Execute

Root Orientation Matrix The transformation of the root of the entire chain.


Bone IDs An array containing the indices of the affected deformers in the BoneTransforms array.


Parent IDs An array containing the indices of the previous deformers in the chain, in the same order as Bone IDs.


Calc Volume Preservation

Returns the scaling factor to be applied to the other dimensions when an object is stretched or squashed in one dimension.

Tasks: ICE Kinematics/Rigging Math

Output Ports: Scale

Old Length The length before stretching.


New Length The length after stretching.


Poissons ratio Controls the amount of bulging or thinning according to a physical formula.


Display Bone Properties

Draws capsules showing the pose and length of a null being used as a bone deformer.

This compound was designed to be used in rigs similar to the ICE Rabbit Rig scene in the XSISAMPLES project. It assumes that this compound is in a tree on a deformer null with a BoneParams property, including a Length parameter.

Tasks: ICE Kinematics/Rig Binding

Output Ports: Execute

Display Toggles the display of the capsule shape on and off.


Select Color Specifies the color.


Foot Ground Pivot

Note: This compound is fixed in Softimage 2011SP.

Changes the rotation pivot of a foot based on ground contact. This compound determines the contact point by firing a single ray at the ground, and is less accurate than Foot Ground Pivot Multi Raycast.

Tasks: ICE Kinematics/Rigging

Output Ports: Execute


Enable Activates the effect.
Gravity Direction The global direction in which to test for ground contact.
Display Contact Point Shows the foot contact positions as points.


Foot Object


Foot Name A scene reference to prepend to Foot Reference to fully resolve the name.
Foot Reference The object to affect.
Foot U Length The length of the foot in one direction, X or Z.
Foot V Length The length of the foot in the other direction, Z or X.


Ground Object


Ground Name A scene reference to prepend to Ground Reference to fully resolve the name.
Ground Reference The object that acts as the ground.


Foot Ground Pivot Multi Raycast

Note: This compound is fixed in Softimage 2011SP.

Changes the rotation pivot of a foot based on ground contact. This compound determines the contact point by firing five rays at the ground, and is more accurate than Foot Ground Pivot.

Tasks: ICE Kinematics/Rigging

Output Ports: Execute


Enable Activates the effect.
Gravity Direction The global direction in which to test for ground contact.
Display Contact Point Shows the foot contact positions as points.
Ray Length The maximum distance to search for ground contact.


Foot Object


Foot Name A scene reference to prepend to Foot Reference to fully resolve the name.
Foot Reference The object to affect.
Foot U Length The length of the foot in one direction, X or Z.
Foot V Length The length of the foot in the other direction, Z or X.


Ground Object


Ground Name A scene reference to prepend to Ground Reference to fully resolve the name.
Ground Reference The object that acts as the ground.


Linear Blend Enveloping

Applies a standard envelope deformation to the “self” object (the object with the ICE tree). Using this compound means that can use an array of deformer transformations without needing actual deformer objects.

Tasks: Deformation/Skinning

Output Ports: Execute

Bind Pose Transform An array containing the global transforms of the deformers in the reference pose.


Global Tranforms An array containing the global transforms of the deformers, in the same order as Bind Pose Transforms.


Bone IDs Per point, an array containing the indices in the Bind Pose Transform and Global Transform arrays of the bones to which the point is weighted.


Weight Per point, an array containing the weight values by which the point is weighted to the bones in the Bone IDs array.


Weight Scale Factor A global scale for the weight values. For example, if the Weight values range from 0.0 to 100.0, this value should be 0.01 so that the scaled weights will range from 0.0 to 1.0.


Raycast Geometry

Replaced in Softimage 2011SP by Raycast Global.

Raycast Global

Finds the first location on a surface that is hit by a ray cast from a given position in a given direction. If a ray does not hit the surface, the result is filtered - a value of Undefined Location is not returned. The difference with the Basic Collide node is that this compound uses global position and direction.

Locations are "glued" to the surface of a geometry so that they stay in the same relative position even as the geometry transforms and deforms, unless you recompute and reset the locations' values at different frames.

Tasks: ICE Kinematics/Geometry Queries

Output Ports: Hit_Location, Global_Hit_Position, Hit


Geometry The surface to be tested for hits by the ray.
Global Start Position The position from which the ray originates.
Global Direction The direction of the ray.
Enable Cutoff Distance True to only look at locations within a given distance.
Cutoff Distance Distance within which to look for ray hits.
Proximity Method Method used to compute the proximity:
  • Semi-line shoots an infinite ray in one direction.
  • Line shoots a ray in both directions.
  • Segment shoots a ray in one direction and is bounded by the length of the direction vector.


Raycast Ground Under toes

Raycasts a ground geometry and returns positions for the toe IK goals.

Tasks: ICE Kinematics/Geometry Queries

Output Ports: Target_Positions

Geometry The geometry representing the ground.


Bone Transforms An array of 4x4 matrices representing the transforms of the deformers in the rig.


Up Dist The distance above the toe positions to search for an intersection with the ground.


Down Dist The distance above the toe positions to search for an intersection with the ground.


Tip Bone Ids An array containing the indices in the Bone Transforms array of the last bone in each toe.


Num Feet The number of feet.


Ray_Cast_Orient _Transforms1 An array of 4x4 matrices representing the transforms of the toe platforms. The toe positions will be calculated by raycast along -Y relative to these transforms. The size of this array should match Num Feet.


Toe_Splay The spread of the toes.


Display Display points at the start positions of the cast rays.


Select_Color Selects the color of the displayed points.


Toe IK

Returns the FK/IK transforms for the toes in a rig.

Tasks: ICE Kinematics/IK Solvers

Output Ports: Result

Bone Transforms An array of 4x4 matrices representing the transforms of the deformers in the rig.


Index1 An array containing the indices in the Bone Transforms array of the first bone in each toe.


Index2 An array containing the indices in the Bone Transforms array of the second bone in each toe, in the same order as Index1.


Index3 An array containing the indices in the Bone Transforms array of the third bone in each toe, in the same order as Index1.


Index4 An array containing the indices in the Bone Transforms array of the last bone in each toe, in the same order as Index1.


Target Position An array containing the global positions of the IK targets for each toe, in the same order as Index1.


Blend The blend between FK and IK. A value of 0.0 is fully FK and 1.0 is fully IK.


Bone1 Weight The alignment of the first bone in each toe with the target position.


Bone2 Weight The alignment of the second bone in each toe with the target position.


Bone3 Weight The alignment of the third bone in each toe with the target position.


Bone4 Weight The alignment of the last bone in each toe with the target position.


This page was last modified 19:36, 9 Dec 2010.
This page has been accessed 8043 times.

© Copyright 2009 Autodesk Inc. All Rights Reserved. Privacy Policy | Legal Notices and Trademarks | Report Piracy