CATMuscle

A CATMuscle is a non-rendering multi-segmented helper object that is best used for broad areas, such as the shoulders and pectorals, that need relatively consistent stretching and deforming.

After creating a CATMuscle, you can modify how it is segmented, its collision-detection properties, and so on.

Procedure

To use CATMuscle:

  1. Create or load a character rig to attach muscles to, and determine where you’ll attach the muscles.
  2. Add a CATMuscle object and position it on the rig.
    Note: The CATMuscle object does not render, so even if it shows through the skin in the viewport, it won’t affect the final output.
  3. Set the CATMuscle parameters as desired. In particular, set Type to Bones if you’ll be using it with the Skin modifer, or set it to Mesh when intended for use with Skin Wrap.
  4. On the main toolbar, click (Select And Link), and then drag from a corner handle on the CATMuscle to the bone to which it should be attached.
  5. Repeat the preceding step for each of the other three corner handles.
  6. For any additional muscles, repeat steps 2 to 5. Also, for bulging-type muscular deformation, add Muscle Strands and set them as collision objects for the CATMuscles.
  7. Skin the character and be sure to include the muscles as bones (with Skin) or control objects (with Skin Wrap).

Interface

The CATMuscle structure comprises the muscle itself, made up of a rectangular array of flat panels, as well as handles at each corner, for setting the overall muscle shape. Each corner handle also has two subsidiary handles, like those found on knots in Bezier curves, for additional control in shaping the sides. In addition, you can add middle handles for shaping the muscle interior. You can select and move all of these handles at the object level; the CATMuscle has no sub-object levels.

Type
Choose Mesh or Bones. Both types have in common the ability to move the handles to reshape the muscle, with each handle having its own name while remaining a part of the muscle. The differences are as follows:
  • Mesh The muscle acts as a single piece, with the panels always fully attached to each other. This mode is best when used in conjunction with the Skin Wrap modifier (see Usage).

    CATMuscle set to Mesh

  • Bones Each panel acts as a separate bone and has its own name, and the panels can separate somewhat when the muscle is reshaped by moving the handles. As a result, you can attach a subset of the panels to the Skin modifer when you don’t need all of them.

    CATMuscle set to Bones (Remove Skew off)

    Note: You can select individual panels of a bones-type CATMuscle, but moving any panel moves the entire muscle.
Remove Skew
When Type is set to Bones, the panel corners can form angles other than 90 degrees when the muscle is deformed by moving the handles. To force the panel corners to always assume right angles, turn on Remove Skew. Available only when Type is set to Bones.

This option is intended primarily for exporting to a game engine that does not support skewed bones.

CATMuscle set to Bones (Remove Skew on)

Properties group

Name
The base name for the muscle components. CAT uses this name as a basis for the various components.

For example, if you name a mesh CATMuscle Lats, the muscle itself is named LatsM and the corner handles are named LatsM_A, LatsM_B, etc., and the subsidiary handles (attached to the corner handles) are named LatsM_AB and so on.

Each panel in the bones-type CATMuscle has its own name, created by appending the base name with M and a number derived from the panel’s row and column, with the counts starting at 0. For example, in a 20 x 20 (U Segs x V Segs) muscle, the tenth panel in the first row would be LatsM09, and the twelfth panel in row 15 would be LatsM1411. The naming of the handles is the same as for mesh muscles (see preceding).

Color
The color of the muscle and its handles. To change the color, click the color swatch.
Copy Muscle Settings
Copies the settings for the selected CATMuscle to a memory buffer, ready for pasting.
Paste Muscle Settings
Pastes settings copied from another CATMuscle to the selected muscle.
U Segs / V Segs
The number of segments into which the muscle is subdivided in the horizontal and vertical dimensions, respectively. The greater these numbers, the more definition available for deforming the muscle.
L/M/R
Left/Middle/Right: The side of the rig the muscle is on. For example, you can set up a muscle on the left side, choosing the L option, and then mirror the muscle across the center axis and specifying the R option.
Mirror: X/Y/Z
The axis along which the muscle lies. This helps the mirroring system work.

Handles group

Each CATMuscle has a handle at each corner, and each of those handles has two subsidiary handles that act like handles of Bezier-curve knots. You can alter the muscle shape by moving these handles, and you can also link any handle as the child of another object, such as a bone in a character rig. Thereafter, moving the parent object (the bone) also moves the handle, causing the muscle to deform accordingly.

Visible
Toggles display of the muscle handles.

Normally, handles are depicted in the viewports as wireframe cubes surrounding the muscle; to disable the display of the handles, turn off Visible.

This can be useful for simplifying the viewport display after connecting the muscles to their bones, and selecting the handles is no longer necessary.

Middle Handles
Toggles display of an additional Bezier-type handle connected to each corner handle, positioned near the center of the muscle. Use the handles to further modify the muscle shape.
Handle Size
The size of each handle; changing this affects all handles. Normally, the handles are sized proportionally to the overall muscle size when you create it; use this setting to make the handles larger or smaller.

Collision Detection group

In addition to being able to shape the CATMuscle by moving its handles, you can specify collision objects around which the muscle deforms when in proximity to them. For example, if you use a sphere as a collision object and move it around while intersecting the CATMuscle, the part of the muscle nearest the sphere forms a raised section. The deformation is greatest at the center of the collision object, and falls off toward its exterior. You can specify collision attributes for each collision object separately.

CATMuscle reshaped by Muscle Strand and sphere. The sphere is set to See-Through display so the full deformation is visible.

Pick Collision Object
Add a collision object to the list by clicking this button and then selecting the object.
Remove Highlighted Collision Object
After highlighting a list entry, click this button to remove it from the list.
[list]
Lists all collision objects for the current muscle. To remove an object from the list or change its properties, highlight it in the list and then use the appropriate controls.
Hardness
The extent to which the highlighted list item deforms the muscle. Default=1.0.
Distortion
Adds a roughness to the deformation caused by the collision object. In general, keep this value below 0.5.
Vertex Normal / Object X
Choose the direction of deformation caused by the collision object. Available only when a collision object is highlighted in the list.
  • Vertex Normal This, the default choice, causes deformation in the direction of the surface normal of the affected area of the muscle; that is, perpendicular to the surface.
  • Object X Causes deformation in the positive direction of the collision object’s local X axis. To change the deformation direction, rotate the collision object.

    This setting makes it possible to have a tubular piece of skin, like an arm, with collision objects inside, and have CATMuscles colliding with them. At the edge where two CATMuscles meet, you usually want to avoid tearing due to the points at the joining edges on the muscles moving in different directions because of distortion. If you choose Object X, the points along the edges of the two muscles will move in the same direction because both are being deformed by the same object.

Smooth
When on, evens out the deformation caused by a collision object. Available only when a collision object is highlighted in the list.
Invert
Reverses the direction of deformation caused by a collision object. Available only when a collision object is highlighted in the list.