Home Nodes Object nodes 

Muscle object

Creates a smooth muscle surface you can use to deform a character’s skin in a realistic way.

This object can have an arbitrary number of inputs. When a muscle is created, it creates points based on the locations of its inputs and draws a smooth line through these points. The SOP then creates a muscle surface lying along this line. The surface’s shape relative to this line can be specified by the user. The positions and orientations of the inputs control the position, shape and orientation of the muscle. Hence, the behavior of the muscle can be influenced by bones or other surrounding geometry.

To generate the muscle surface, the Muscle Object creates a number of metaball primitives that, when blended together, form a smooth surface. These metaballs can also be used to capture and deform points. See the Capture Metaball SOP and Deform Muscle SOP. When using a muscle as a capture region in a Capture Metaball SOP, the muscle object’s name with “/muscle” appended to the end of it should be used so that the underlying Muscle SOP is captured. For example, if the path to a muscle object is “/obj/muscle1”, then the capture region name that must be used is “/obj/muscle1/muscle”.

Using Muscles

  1. Click the Muscle button on the Character tab.

  2. Select the parent objects in the desired order and press Enter to confirm your selection.

Note

Muscles are usually attached to null objects, which are attached to bones.

The muscle is made of metaballs, which can be scaled and manipulated in the parameter editor.

Using Muscle Handles

The muscle manipulator consists of a line corresponding to the center line of the muscle, as well as five circles at the control points that allows you to change the position of the point and the scale of the muscle at that point. The orientation of the circles correspond to the orientation of the metaballs on the muscle.

To...Do this

Move a control point

Click on outer circle or inner sphere of the handle and slide it along the line.

Scale the muscle’s width

Click LMB a width handle and drag.

Scale the muscle’s height

Click LMB a height handle and drag.

Scale the muscle in all directions

Click LMB the outer circle and drag.

Scale the muscle at multiple control points

Press Shift + LMB the handles you want to scale and drag one of the selected handles while holding Shift.

Parameters

The Point Muscles tool has additional parameters. The Muscle Display shows or hides the muscles, the Anchor Display shows or hides the anchor controls, and the Muscle Anchors allow you to translate and rotate the the muscle anchor controls.

Muscle

Muscle Name

Specifies the name of a group in which the underlying muscle geometry stores its metaball primitives.

Rest Anchor

Specifies geometry to which this muscle is related (a bone lying under the muscle, for instance). This is used to determine whether the muscle is transforming rigidly with respect to an underlying skeleton or if it is deforming relative to this skeleton. This information is necessary in order to simulate the effect of muscles “sliding” under the surface of skin.

Capture Position Bias

Controls the capture weights assigned to points that are captured to this muscle in the Deform Muscle SOP. A larger bias reduces the radius of influence of each metaball in the muscle when capturing, which in turn biases the capture weights of a point towards metaballs that are closer to that point. This can be used to gain finer control over how deformations in the muscle influence the deformation of captured points. Points must be recaptured in the Capture Metaball SOP when this parameter is changed.

Muscle Scale

Use this parameter to uniformly scale the muscle primitives.

Muscle Control Handles

The shape of the muscle and the distribution of primitives along the muscle’s length is controlled by five “handles” positioned along the center line. Each of these handles has associated scale values, which determine the scales of primitives along the muscle’s length. Handles also have a position along the curve, which allows for finer control of the distribution of metaballs along the muscle’s center line.

Primitives Per Segment

The number of primitives to place between pairs of handles along the muscle’s center line. This is similar to the Number of Segments parameter used in profile mode.

Handle 1-5 Scale

Each handle has an associated scale, which is used to control the scales of primitives close to that handle.

Handle 2-4 Position

The first and last handles along the muscle’s length have fixed positions, but the middle three handles can slide along the muscle’s center line to control the positions of primitives along this curve. These parameters control the positions of handles along the center line curve.

Preferences

Muscle Type

The type of muscle to be generated.

Metaball Capture

Generates a smooth muscle surface using metaballs. This surface can be used to deform skin geometry.

Spheres Only

Generates a muscle using sphere primitives. Since these spheres are not blended together the same way as metaballs, they do not form a smooth surface. They also cannot be used to deform skin geometry. However, the spheres can be rendered much more quickly than the metaball surface.

Add Custom Color

Indicates whether or not to display the muscle using a user-specified color.

Muscle Color

The color do be used when displaying the muscle.

Enable Color Gradient

Indicates whether or not to display the muscle using a color that varies along the muscle’s length.

Color Gradient

This parameter is used to determine how each primitive along the length of the muscle is to be colored. The color for each primitive is determined by sampling this channel at regular intervals between its start frame and its end frame. The red channel for each primitive’s color is assigned the value of this channel evaluated at the start frame, while the values of the blue and green color channels depend on the values of the gradient channel between the start frame and end frame of the channel. By default, enabling the color gradient gives the muscle a red color in the center that fades to white towards the ends of the muscle surface.

Center Line

Spline Type

The method of interpolating between the input points to draw the muscle’s center line: Bezier, Special Bezier, Special Smooth Bezier, Degree 2 Bezier, BSpline, Cardinal or Linear

Sample Divisions

Number of spline divisions to perform when resampling the muscle center curve.

First CV Count

Number of times to repeat the first control vertex, determining its multiplicity.

Last CV Count

Number of times to repeat the last control vertex, determining its multiplicity.

CV Tension

Spline tension.

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.

Examples

The following examples are specifically designed to demonstrate this node:

HandleExample

$HFS/mozilla/documents/examples/nodes/obj/muscle/HandleExample.cmd