Houdini 20.5 Nodes Object nodes

Muscle object node

The Muscle object is a versatile tool that can be used when rigging characters and creatures with musculature.

This node type is deprecated. It is scheduled to be deleted in an upcoming revision of Houdini.

(Since version 19.0.)

Since 16.0

Deprecated

The object-level Muscle tools are now deprecated. See the new SOP-based Muscles & Tissue system.

The Muscle object is made of two primary components: the muscle geometry and the muscle rig.

The muscle geometry can optionally be made up of a NURBS surface, a polygonal surface, a collection of sphere primitives, a tetrahedral mesh, or an arbitrary model referenced from another object. The muscle geometry is typically used to displace skin via either a deformer or using a physically based simulation.

The muscle rig is made up of a central cage (the inner core) that is drawn through a series of control nulls (handles). The nulls can be positioned and rotated to shape and twist the inner core. The muscle rig end points, also referred to as the head and tail anchors, can be parented or constrained to other objects in your scene.

Tip

The muscles can easily be set up to follow along with your animated character in a natural way, when attached to the FK/IK bones of your character rig.

Muscle objects have a variety of built-in features that enhance creature rigging:

  • Muscles be used both for FEM and non-FEM applications. ie, as physically simulated soft body objects, or as regular geometry deformers.

  • Muscles can be shaped with a profile curve.

  • You can reference any arbitrary geometry and have it act as your muscle geometry.

  • Non-FEM Muscles can automatically have their radius adapt to changes in overall length or in response to a tension parameter to mimic volume preservation.

  • Muscle rig handles can be keyframed and animated.

  • The muscle rig can be automatically animated with a spring-based utility that will add jiggle to the overall curvature of the muscle.

  • You can preview the physical qualities of a muscle by enabling its built-in dynamics simulator.

  • You can quickly draw the shape of your muscle and set it to the desired depth beneath your character’s skin by drawing a stroke directly onto your skin surface.

The rigged muscle is the central building block for creating complex musculature setups. It contains a number of hooks and parameters that the rest of Houdini’s muscle system relies on.

A rigged muscle object also has the ability to take arbitrary geometry and turn it into a muscle with a single muscle rig. If you want to have more complex rigs control your muscle geometry, the Franken Muscle object can be used to mix together any number of geometry and rig objects.

For viewport tool interaction help see: Muscle.

Parameters

Muscle ID

A tag used to identify this muscle asset within the muscle system. A muscle ID can be any string or numeral. The muscle ID is used by other muscle assets to group muscles that share a common muscle ID, or to keep muscle influence separate where muscle ID’s are unique. For example, the Muscle Deform SOP will treat muscles with a shared, common muscle ID as a single compound displacement tool. Also, Tissue Solver SOP will attach region constraints to muscles if the constraints and the muscles share common ID’s.

Flex

Tension

This parameter drives muscle flexing. A tension value of 0.0 will put the muscle in a fully relaxed state, while a value of 1.0 will be fully tensed. Other parameters like Contraction, Bias, Concentric Scale, and Tightness, can all be driven by varying this single Tension parameter.

Isometric Scale

Isometric Scaling is the scaling of a muscle along the axis of its inner core or fiber direction. This axial scaling has two controllable qualities: Bias and Contraction amount.

Driven by Tension (Bias)

If enabled, bias is driven by the Tension parameter. Use the High Tension Bias parameter to set this muscle characteristic when Tension is at its maximum.

Bias

Bias affects the relative localized scaling along the axis of a muscle. As a bias value approaches 0.0, a muscle will compress towards the head of the inner core. As the bias value approaches 1.0, the muscle will compress more towards the tail of the inner core. This parameter will affect the muscle bias directly and independent of the tension value.

High Tension Bias

When Driven by Tension is active, this parameter sets the bias response of the muscle when muscle tension is at its maximum.

Driven by Tension (Contraction)

If enabled, contraction is driven by the Tension parameter. Use the High Tension Contraction parameter to set this muscle characteristic when Tension is at its maximum.

Contraction

The contraction scaling quality scales a muscle using compression from the ends of the inner core inwards towards the middle. As Contraction approaches 1.0, a muscle will squeeze along the axial direction of the inner core or muscle fiber. As the contraction value approaches 0.0, the axial scaling is more uniform along the length of the inner core.

High Tension Contraction

When Driven by Tension is active, this parameter sets the contraction response of the muscle when muscle tension is at its maximum.

Straightening

Driven by Tension (Tightness)

If enabled, Tightness is driven by the Tension parameter. Use the High Tension Tightness parameter to set this muscle characteristic when Tension is at its maximum.

Tightness

Tightness will affect muscles differently depending on whether you are using non-FEM or FEM simulated muscles. When muscles are solved using FEM dynamics, the tightness value is used to boost the overall scaling amount applied to the muscle fibers. This will have the effect of making a slack muscle go taught. When muscles are animated with a non-FEM workflow, the tightness value will mimic the effect of a tightening muscle by straightening any curvature along the inner core.

High Tension Tightness

When Driven by Tension is active, this parameter sets the tightness response of the muscle when muscle tension is at its maximum.

Concentric Scale

Concentric scale affects the scale of a muscle radially from the central inner core. Scaling of this type is only applicable in non-FEM workflows and meant to mimic the effects of volume preservation using a squash and stretch approach. In dynamics simulation, volume preservation will be calculated according to the physical properties of the muscle tissue, and therefore these settings will be ignored by the solver.

Radius

The radius xyz values affect the independent axis scaling applied to the muscle geometry during flexion. If you wish to keyframe the concentric scale of a muscle, using the Radius parameter will scale the muscle geometry without affecting the construction radius.

Driver

This dropdown menu determines how concentric scaling will be applied to your muscle.

Driven by Tension

The High and Low Tension Scale parameters will set the extents of the scaling in response to the Tension parameter. When Tension is low, the scaling will approach the Low Tension Scale value. When Tension is high, the scaling will approach the High Tension Scale value.

Driven by Length

The length of the muscle is used to scale the muscle radially. When the muscle’s length approaches the Compressed Length, the radial scale will approach the Compressed Scale. When the muscle’s length approaches the Stretched Length, the radial scale will approach the Stretched Scale.

Off

The Radius scale values are interpreted directly without any additional squash or stretch.

If Concentric Scale is Driven by Tension

High Tension Scale
Low Tension Scale

These are the scale factors mapped to the Tension amount. When Tension is 0.0, the Low Tension Scale is applied. When Tension is 1.0, the High Tension Scale is applied.

If Concentric Scale is Driven by Length

Compressed Scale
Stretched Scale

These are the scale factors mapped to the length of the muscle. When the muscle is at or below the Compressed Length, the Compressed Scale is applied. When the muscle is at or above the Stretched Length, the Stretched Scale is applied.

Set Compressed Length
Set Stretched Length Buttons

These convenience buttons will record the current length of the selected muscle into the respective Compressed/Stretched Length parameters. This facilitates the a squash and stretch setup by allowing you to compress a muscle on your character rig, capture its length and record it into the Compressed Length value, then stretch a muscle, and record its length at the opposite extent.

Compressed Length
Stretched Length

These are the length minimum and maximum values that correspond to the Compressed Scale and Stretched Scale parameters respectively. When muscle rig’s length is at or below the compressed length, the Compressed Scale is applied. When the muscle rig’s length is at or above the stretched length, the Stretched Scale is applied.

Handles

Handle Scale

This is the scale value applied to the muscle handles visible in the viewport. The handle scale is a visual aid only and does not affect any functional part of the muscle.

Keep Position When Parenting

When parenting relationships are changed, determine whether or not the world space position of the muscle will be maintained.

Output Transform

If any object node is wired to the output of this muscle asset, this parameter designates one of the muscle’s internal nodes as the source for the output transformation. For example, if this parameter is set to Center Handle, attaching a child node to the output of this muscle will transform the child along with the center handle.

Handle Transforms

Reset Handle Transforms

Activating this button will reset all transform values for a muscle and return the handles to their default positions.

Translate/Rotate

The local translation and rotation values applied to each of the muscle handles.

Geometry

Parameters found on the Geometry tab are used to specify how a muscle is to be constructed.

Build Settings

Build

This dropdown menu allows you to choose from 3 different construction methods to build the muscle geometry: spheres, tube, or tet-mesh.

Built-in Spheres

Constructs a muscle by copying sphere primitives along the central inner core curve. This build type has the benefit of being the fastest option out of the three.

Built-in Tube

Creates a muscle by sweeping a circle along the central inner core.

Built-In Tet Mesh

Constructs the muscle by first copying spheres along the inner core center line, and then converting the volume of the spheres to a solid. Optionally, this method can be set to skip the sphere copying, and instead reference another geometry node in your scene.

Construction Radius

The XYZ radii of the spheres that are copied to the central inner core.

Spacing

A factor affecting the separation between the copied spheres. The muscle will place spheres along the inner core at Radius * Spacing units apart.

Use External Geometry Source

Only available if the build type is Tet Mesh. This toggle will enable the use of any geometry node as the muscle geometry.

External Geometry Path

Only available if the build type is Tet Mesh; specifies the SOP to reference as a geometry source. Referencing arbitrary geometry in this case will keep a live dependency on the original geometry. Any changes to the external node will affect the construction of this muscle.

Group

The primitive group subset of the external geometry.

Shape

Profile

This ramp parameter represents the radius scaling of the muscle along its length. The final muscle is built using spheres that are a product of the profile shape, the construction radii, and the min/max radii.

Min Radius

The minimum value represented by the profile shape.

Max Radius

The maximum value represented by the profile shape.

Built-in Tube

These construction parameters apply to the Built-in Tube type.

Primitive Type

The resulting tube can be constructed either as a polygonal mesh or as a NURBS surface.

Rows

The number of cross sections in muscle surface.

Columns

The number of length-wise divisions in the muscle surface.

Built-in Tet Mesh

These construction parameters apply when creating muscles with the Built-in Tet Mesh type. For detailed help on these individual parameters, see the Solid Conform SOP.

Capture/Deform

A muscle’s geometry is first constructed using its build parameters in a static state, and then deformed into the “animated” or “live” position dictated by the muscle rig handles. An cage deformer is constructed by sweeping a cross section along the central curve of the inner core. This cage deformer is used to capture the muscle geometry in its rest state, or capture pose, and reshape the captured muscle according to the position and orientation of the muscle rig handles. The capture pose is subsequently an important aspect of a muscle’s rig configuration as the rest of the muscle system will rely on the existence of this pose as a base position for the initial orientation of muscle geometry.

Edit Capture Pose

When active, the muscle or musclerig will be displayed in its Capture Pose. When muscles are displayed in the Capture Pose, they can easily be distinguished from “live” muscles by their appearance. The muscle geometry will be displayed as spheres, the coloring will turn blue, and the handles will change from the being “round” to being “boxy”.

Handles can be manipulated in the viewport when this mode is active, however, each handle node will be transformed independently of its sibling nodes. This contrasts the “live” behavior of the handles where manipulating the end handles will affect the handles transformations on the interior.

Set Capture Pose

This button will record the muscle’s current position and construction parameters into the capture state and use the current appearance of the muscle as the Capture Pose.

Copy Capture Pose to Current Pose

This button does the inverse of the Set Capture Pose button. The stored capture state parameters are extracted from the Capture Pose. The current pose is set to match the capture pose.

Inner Core

The inner core is comprised of a central spline curve that is governed by the handle locations, and, a hull built by sweeping a cross section along this spline. The hull acts as a deformation cage that becomes part of a biharmonic capture mesh, which ultimately deforms the static rest state of a muscle into its animated, live position.

Rows and Columns

Rows

The number of cross sections used to construct the inner core.

Columns

The number of longitudinal divisions in the inner core.

Inner Copies

The number of concentric rings in the cross section that is swept along the central spline. Sometimes, extra control points are needed to capture/deform thinner muscle geometry. This parameter may help in those situations by increasing the number of hull points along the interior of the capture cage.

Inner Copy Scale

The interior concentric rings are obtained by scaling the outer ring of the cross section by this amount.

Biharmonic Capture Mesh

The inner core forms the skeletal control hull for a biharmonic capture mesh. It is this tetrahedralized capture mesh that is ultimately used to capture and deform your muscle geometry.

Display Guide

Enabling this toggle will display a guide geometry that represents the resolution and shape of the tetrahedralized capture mesh.

Mesh Triangle Size

The construction of the capture mesh is simplified to merely make use of the surface triangle size as the resolution parameter of the tetrahedron mesh.

Mesh Weight Smoothing

The Capture/Deform weights that drive the deformation of the muscle geometry can be smoothed by this amount.

Capture Pose

The world space transformations of the muscle rig handles are stored here to record the Capture Pose. These parameters are not generally meant to be modified manually. Use the Set Capture Pose button to record the muscle rig handle transformations into these parameters.

Capture State

These parameters are the recorded construction settings of the muscle to complete the definition of the Capture Pose. These parameters are not generally meant to be modified manually. Use the Set Capture Pose button to record the muscle construction settings into these parameters.

Jiggle

Jiggle applies overshoot and springback to the interior handle positions when the end handles are animated. Jiggle makes use of the Jiggle Chop to achieve this effect. See the Jiggle Chop for detailed help on these parameters. This effect is used primarily in non-FEM workflows. When using FEM dynamics, the physical properties of a muscle will determine the elasticity of a muscle’s behavior.

Use Jiggle

Enables the Jiggle.

Stiffness

How tight the jiggle is. Values closer to zero will cause the translate values to stray more from their original values. Values closer to one will result in values closer to the original values.

Damping

The amount of damping on jiggle oscillations. More damping reduces the oscillations generated by abrupt changes in direction.

Limit

Controls how far away the point is allowed to stray from the original value before it starts being pulled back toward it.

Multiplier

Controls a post-scaling effect on the values of the channel.

Time Window

In order for the Jiggle Chop to achieve its effect, the input translation channels of the handle must be sampled over a time interval. By limiting the frame range of this interval to a minimum, a performance improvement can be obtained. This parameter specifies the number of seconds to add to the current time step to define the time interval.

Dynamics

Every muscle asset contains a local dynamics solver for the purpose of previewing the simulation effects of the physical properties. For detailed help on the simulation parameters, see the Tissue Solver SOP.

Use Physical Simulation

Enables the “preview” dynamics simulation of this muscle. Activating this toggle will simulate the muscle using its physical properties. The muscle build type is automatically set to Built-in Tet Mesh when this toggle is activated. Dynamics simulation requires that the muscle be constructed as a tetrahedral mesh.

Note

This toggle will not affect how this muscle might be incorporated into an external Tissue Solver. However, for more efficient run time performance, it is advised to leave this toggle “off” to avoid simulating a muscle independently as a preview at the same time as simulating the muscle as part of the larger tissue solve.

Anchor Regions

Anchor regions are used to constrain a muscle and affix it to a parent transformation when simulated with dynamics.

In a conventional muscle setup, the end handles of a muscle rig each carry a constraint region that affects freedom of movement of the muscle geometry nearby. The scale of this constraint region will encapsulate more or less of the nearby muscle geometry. The geometry contained with the bounds of the anchor region will be constrained using the strength and damping parameters described below.

Display Regions

Toggle the parameter to display the scale of the muscle anchor regions. The regions are located at either end handle. Once displayed, the regions can be selected and scaled interactively in the viewport.

Anchor Strength

The strength of the force used to hold a muscle in place. By reducing the strength, a muscle can begin to separate from an anchor region when subjected to external forces.

Anchor Damping

Controls the rate of energy loss that is applied to a constrained muscle, as it is forced to be held in place while it is subjected to external forces.

Head / Tail Radius

The anchor region radius.

Stroke

Modify Stroke

The initial spline curve of a muscle rig can be defined by a stroked polyline projected on a surface geometry. Pressing this button will enter into the Muscle Stroke State. If a projection geometry is already specified in the parameter below, then state is entered directly and a new stroke can be made. If the projection parameter is blank, you will be prompted to first select a projection surface before entering the state.

Projection Geometry

The surface geometry to apply strokes onto.

Display

Display

Use this toggle to control the display visibility of this muscle asset in the viewport and/or renderings.

Muscle

Display toggle for the muscle geometry.

Handles

Display toggle for the muscle handles.

Inner Core

Display toggle for the inner core.

Display inner Core as Wires

The inner core can optionally be displayed as a polygonal cage, or as flow lines from end to end.

Single Wire

Optionally display the inner core as the central spline only.

Color

The color ramp applied to the muscle geometry from end to end.

Object nodes

  • Agent Cam

    Create and attach camera to a crowd agent.

  • Alembic Archive

    Loads the objects from an Alembic scene archive (.abc) file into the object level.

  • Alembic Xform

    Loads only the transform from an object or objects in an Alembic scene archive (.abc).

  • Ambient Light

    Adds a constant level of light to every surface in the scene (or in the light’s mask), coming from no specific direction.

  • Auto Bone Chain Interface

    The Auto Bone Chain Interface is created by the IK from Objects and IK from Bones tools on the Rigging shelf.

  • Blend

    Switches or blends between the transformations of several input objects.

  • Blend Sticky

    Computes its transform by blending between the transforms of two or more sticky objects, allowing you to blend a position across a polygonal surface.

  • Bone

    The Bone Object is used to create hierarchies of limb-like objects that form part of a hierarchy …

  • Camera

    You can view your scene through a camera, and render from its point of view.

  • Common object parameters

  • Dop Network

    The DOP Network Object contains a dynamic simulation.

  • Environment Light

    Environment Lights provide background illumination from outside the scene.

  • Extract Transform

    The Extract Transform Object gets its transform by comparing the points of two pieces of geometry.

  • Fetch

    The Fetch Object gets its transform by copying the transform of another object.

  • Formation Crowd Example

    Crowd example showing a changing formation setup

  • Fuzzy Logic Obstacle Avoidance Example

  • Fuzzy Logic State Transition Example

  • Geometry

    Container for the geometry operators (SOPs) that define a modeled object.

  • Groom Merge

    Merges groom data from multiple objects into one.

  • Guide Deform

    Moves the curves of a groom with animated skin.

  • Guide Groom

    Generates guide curves from a skin geometry and does further processing on these using an editable SOP network contained within the node.

  • Guide Simulate

    Runs a physics simulation on the input guides.

  • Hair Card Generate

    Converts dense hair curves to a polygon card, keeping the style and shape of the groom.

  • Hair Card Texture Example

    An example of how to create a texture for hair cards.

  • Hair Generate

    Generates hair from a skin geometry and guide curves.

  • Handle

    The Handle Object is an IK tool for manipulating bones.

  • Indirect Light

    Indirect lights produce illumination that has reflected from other objects in the scene.

  • Instance

    Instance Objects can instance other geometry, light, or even subnetworks of objects.

  • LOP Import

    Imports transform data from a USD primitive in a LOP node.

  • LOP Import Camera

    Imports a USD camera primitive from a LOP node.

  • Labs Fire Presets

    Quickly generate and render fire simulations using presets for size varying from torch to small to 1m high and low

  • Light

    Light Objects cast light on other objects in a scene.

  • Light template

    A very limited light object without any built-in render properties. Use this only if you want to build completely custom light with your choice of properties.

  • Microphone

    The Microphone object specifies a listening point for the SpatialAudio CHOP.

  • Mocap Acclaim

    Import Acclaim motion capture.

  • Mocap Biped 1

    A male character with motion captured animations.

  • Mocap Biped 2

    A male character with motion captured animations.

  • Mocap Biped 3

    A male character with motion captured animations.

  • Null

    Serves as a place-holder in the scene, usually for parenting. this object does not render.

  • Path

    The Path object creates an oriented curve (path)

  • PathCV

    The PathCV object creates control vertices used by the Path object.

  • Python Script

    The Python Script object is a container for the geometry operators (SOPs) that define a modeled object.

  • Ragdoll Run Example

    Crowd example showing a simple ragdoll setup.

  • Reference Image

    Container for the Compositing operators (COP2) that define a picture.

  • Rivet

    Creates a rivet on an objects surface, usually for parenting.

  • Simple Biped

    A simple and efficient animation rig with full controls.

  • Simple Female

    A simple and efficient female character animation rig with full controls.

  • Simple Male

    A simple and efficient male character animation rig with full controls.

  • Sound

    The Sound object defines a sound emission point for the Spatial Audio chop.

  • Stadium Crowds Example

    Crowd example showing a stadium setup

  • Stereo Camera Rig

    Provides parameters to manipulate the interaxial lens distance as well as the zero parallax setting plane in the scene.

  • Stereo Camera Template

    Serves as a basis for constructing a more functional stereo camera rig as a digital asset.

  • Sticky

    Creates a sticky object based on the UV’s of a surface, usually for parenting.

  • Street Crowd Example

    Crowd example showing a street setup with two agent groups

  • Subnet

    Container for objects.

  • Switcher

    Acts as a camera but switches between the views from other cameras.

  • TOP Network

    The TOP Network operator contains object-level nodes for running tasks.

  • VR Camera

    Camera supporting VR image rendering.

  • Viewport Isolator

    A Python Script HDA providing per viewport isolation controls from selection.

  • glTF