Houdini 20.0 Nodes Object nodes

Muscle Rig object node

Creates the internal components of a muscle (the rig), by stroking a curve onto a skin object.

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 pending the release of the new SOP-based Muscles & Tissue system.

The Muscle Rig object is the same set of handles and inner core found in a Muscle object.

When constructing a hybrid muscle (Franken Muscle), you can use the Muscle Rig object to draw an independent inner core for use with your arbitrary muscle geometry.

Use the muscle rig inputs to attach parents to the head and tail anchors of your inner core. You can do this manually by wiring objects directly into the inputs, or you can use the Attach To Bones shelf tool to attach multiple muscle rigs at once in your scene view.

Note

This node can only be created using the Muscle Rig shelf tool. It is not available in the Network Editor’s tab menu.

For tool information see: Muscle Rig.

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

Unlike a Muscle, a Muscle Rig does not have its own built-in geometry. However, a small subset of geometry parameters are required to be present here as they are pertinent to the interplay among this and other muscle assets.

Build Settings

Construction Radius

The XYZ radii of the of a virtual muscle that is used to compute the radius of the inner core. This parameter exists to make internal nodes compatible with Muscles.

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.

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 musclerig will be displayed in its Capture Pose. When muscle rigs are displayed in the Capture Pose, they can easily be distinguished from “live” muscle rigs by their appearance. The muscle rig 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 rig’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.

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

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 found on the containing asset of the muscle geometry.

Muscle Rig assets only supply the constraint regions with their corresponding radii.

Display Regions

Toggle this 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.

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 rig asset in the viewport.

Handles

Display toggle for the muscle rig 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 muscle geometry. This parameter is for compatibility with other muscle assets.

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