The Bone Object is used to create hierarchies of limb-like objects that form part of a hierarchy ...
The Bone Object is used to create hierarchies of limb-like objects that form part of a hierarchy or chain of bone objects that are parented to one another. The movement of the chain of Bone objects is “solved” or computed based on several methods including Inverse Kinematics. The parenting attribute of bones is unique in that each bone attaches to the end, not the origin, of the parent bone.
It is recommended that you use the Bones Operation, accessed through the icons above the Viewport, to construct such a chain because placing individual bone objects and establishing their parenting relationships from operator to operator is extremely time consuming and not at all intuitive. In addition, a chain created using the Bones Operation will produce a better behaved bone chain.
By default, bones do not render. They contain two types of display geometry: “link geometry” and “capture region geometry”. The former consists of a narrow diamond shape which has been stretched to the length specified in Bone Length, and placed along the Bone Object’s negative Z-axis. The latter consists of two or more user-controllable pill-shaped regions that are used to define capture regions used in skeleton sops. You can specify whether either of the two types of geometry are displayed.
The actual movement of the Bone objects is controlled through an IK CHOP (when using the standard Capture/Deform model). The IK CHOP overrides the bone rotation parameters. If you want to override this behavior, then you need to delete the bone’s channels such that they are no longer over-ridden by chop control.
When bones are parented as children of bone objects, they are automatically positioned at the tip of their parent bone object. If a bone object is parented as the child of a non-bone object, it will attach to the origin of the parent object.
Using Bones
Click the
Bones tool on the Character tab.
Click
to place the chain of bones anywhere in the scene view, and continue clicking to add bones to the chain.
The bones are grounded on the construction plane. To create bones in the y-axis, change your viewport layout to four views and create the bones in the front pane.
Note
You can add, remove, and change kinematics in the drop-down menu on the operations toolbar, or click
the bones in the scene view.
If you create a chain of bones with inverse kinematics a
null object will appear at the end of the chain which allows you to easily move the bones while it is grounded by the chain root.
Press Enter to finish the chain.
Name the chain of bones in the Chain Name field on the operations toolbar.
Using Bones
In the viewport, press Tab and type Path.
Draw the curve in the viewport.
Make sure the curve is selected, and click the
Bones from Curve tool on the Character tab.
You can change the Kinematics to Follow Curve in the drop-down menu on the operations toolbar if you want the bones to be bound to the curve. This allows you to modify the curve and the bone chain is automatically adjusted.
Name the chain of bones in the Chain Name field on the operations toolbar.
You can also increase or decrease the Number of Bones in the chain by changing the value in the value in the operations toolbar.
Parameters
Transform
| Keep Position When Parenting | When the object is re-parented, maintain its current world position by changing the object’s transform parameters. | ||||||||||||
| Pre-transform menu | This menu contains options for manipulating the pre-transform values. The pre-transform is an internal transform that is applied prior to the regular transform parameters. This allows you to change the frame of reference for the translate, rotate, scale parameter values below without changing the overall transform.
| ||||||||||||
| Translate | Translation along XYZ axes. | ||||||||||||
| Rotation | Degrees rotation about XYZ axes. | ||||||||||||
| Uniform Scale | Scale the object uniformly along all three axes. | ||||||||||||
| Look At | Object to point to. Constrains an object so its | ||||||||||||
| Look At Up Vector | When specifying a look at, it is possible to specify an up vector for the look at. This controls the roll of this object when looking at the look at object.
| ||||||||||||
| Path Object | A reference to the curve node or object you want this object to follow. | ||||||||||||
| Roll | The orientation of the object around the path. | ||||||||||||
| Position | The position of the object along the path. If the primitive number does not exist, then it is wrapped back to the beginning. So for numbers greater than Keyframe this value to animate the object moving along the path. Note The Follow Path tool on the shelf automatically sets keyframes on this parameter that you may want to edit or replace. The Parameterization option controls how position values between 0 and 1 correspond to knots on the path curve. | ||||||||||||
| Parameterization | Controls how the Position parameter is translated into a point on the path curve. Use Arc-length (the default) to interpolate the position values evenly along the physical length of the curve. Use Uniform to distribute the position values between the knots of the curve. This lets you slow down the object at certain points by bunching up knots in the path curve. However, it is much more convenient to simply edit the animation curve to control the speed of the object along the path. | ||||||||||||
| Orient Along Path | Orient the object according to the path’s curvature. | ||||||||||||
| Orient Up Vector | The direction vector of the object’s Y axis to orient with. | ||||||||||||
| Auto-Bank factor | Controls automatic banking of the object as it turns corners. Set this to |
Bone
| Display Link | Toggles the displaying of the link geometry | ||
| Rest Angles | Defines the relative weighting of rotations about the bone’s x,y,z axis for the Inverse Kinematics solver. These values are relative to the bone’s pre-transform. These are zero by default when created from the object viewer’s Bones tool with the pre-transform rotation values defining the rest angles. | ||
| Bone Length | Changes the length of the bone | ||
| Kinematic Solver | Specifies the CHOP node from which this bone should obtain its cooking rotations from. This requires that the specified CHOP have 3 tracks that are named as: path:rx, path:ry, and path:rz where path is the full path of this bone without the /obj prefix. This path can be obtained using the opsubpath() expression function. If this parameter is non-empty on a bone without custom geometry, then the display geometry of the bone will be different to indicate this. | ||
| Remaining |
| ||
| Dampening | Affects how quickly this bone’s angles can be changed. | ||
| Angle Range | Specifies the minimum and maximum rotation angles that this bone can have in each axis. (Only used by IK w/Constraints solver) | ||
| Damping Angle | Applies damping to the rotation of the bone when the rotation in each axis falls within the specified angle of its minimum or maximum value. The damping occurs when the solved angle is within this angle value from the angle range. (Only used by IK w/Constraints solver) | ||
| Damping Rolloff | Specifies the rate at which damping increases as the rotation varies within the damping angle of the minimum or maximum angles. This can also be thought of as the linear slope value at the damping angle region. (Only used by IK w/Constraints solver) |
Capture
| Capture Region |
| ||||||||||||||||
| Deform Region | This tab contains similar parameters as capture regions, but they are used for animation and deformation of captured geometry. Notably, the scaling factors can be used to squash and stretch the capture regions during animation. | ||||||||||||||||
| Capture Bone Length | the length of a bone in the capture mode. This is the bone length when a bone is used for capturing geometry. Note that the capture mode can be turned on by selecting “Settings > Objects > Kinematic Override: capture” from the main menu. | ||||||||||||||||
| Capture Bone Translate | the translation of the bone in the capture mode. | ||||||||||||||||
| Capture Bone Rotate | the rotation angles of the bone in the capture mode. Note that the bone rotation axis order is ZYX. Rotation together with Translate and Scale parameters form a transformation that positions a bone in the capture position and orientation with respect to the world space. The transform order for this transformation is Scale, Rotate, Translate. | ||||||||||||||||
| Capture Bone Scale | the scaling of the bone in the capture mode |
Material
| Material | Path to the Material node. |
Render
| Display | Whether or not this object is displayed. Turn on the checkbox to have Houdini use this parameter, then set the value to 0 to hide the object, or 1 to show the object. If the checkbox is off, Houdini ignores the value. |
Misc
| Set Wireframe Color | Use the specified wireframe color |
| Wireframe Color | The display color of the object |
| Viewport Selecting Enabled | Object is capable of being picked in viewport. |
| Select Script | Script to run when the object is picked in the viewport. See select scripts . |
| Cache Object Transform | Caches object transforms once Houdini calculates them. This is especially useful for objects whose world space position is expensive to calculate (such as Sticky objects), and objects at the end of long parenting chains (such as Bones). This option is turned on by default for Sticky and Bone objects. See the OBJ Caching section of the Houdini Preferences window for how to control the size of the object transform cache. |
Examples that use this node
| Example for | Example name | |
|---|---|---|
| IKSolver | SimpleIKSolver | Load | Launch |
| ||
| InverseKin | SimpleInverseKin | Load | Launch |
| ||
| TransformChain | SimpleTransformChain | Load | Launch |
| ||
| Muscle | JiggleMuscle | Load | Launch |
| ||