Skip to content

Mode - Chain (nHair)

Video recorded in older version.

Main change since then is that Chain simulation mode can now follow your existing animation, as in the gif example at the top of this page.

The Chain mode uses nHair simulation and tracks your controls to it. It is the first implemented simulation mode in BroDynamics and the most useful one so far. It allows to add secondary motion to any FK chain of controls, as long as they have matching axis orientation.

Technically it can also work with any objects which are not in direct chain-hierarchy, such as just unparented objects at the same level. In that case you can turn on Match Positions.

The Collision workflow is a bit more complicated here compared to Points. You can see it in the video.

Screenshot

Selection order is important for Chain mode!

You need to select objects in correct order, starting from the root of your chain and all the way to the tip. "Select Hierarchy" will not work with complex rigs.

Preroll

It is sometimes a good idea to add some preroll to your simulation - adding 1-3 seconds before your actual animation starts may let it settle and avoid some snaps and bugs.

Aim Rotation

Animation rotation of objects. Most of the time this is what you want.

Match Positions

By default the simulation only matches objects by rotation, aiming them at the simulated hair's vertices. This will enable position matching, allowing you to use this tool even with free-floating objects, as well as support some compression and stretching.

Shift Distance

Used when simulating single object only, by selecting ROOT and Object. Will create dummy locators during simulation, and offset them along Forward Axis. This controls how far it will offset. Watch the generated nHair during simulation to get the idea of how it works.

It basically controls the Amplitude or Radius of single object's movement.

Simulation properties

Simulation properties for nHair driving the chain of objects. You can refer to the nHair Dynamic Properties section of Maya documentation to see what these are for. Here I will give a bit simplified explanations of the most used attributes.

Unless stated otherwise examples are recorded with values of 0, 0.5, 1, in most cases with all other values set at default, with a few exceptions.

Keep in mind, that examples may not always be the best repesentation of an effect an attributes gives, as simulation highly depends on your existing animation. A lot of attributes influence each other to produce the final effect.


Attract

Determines the amount of attraction of current chain position to the start or goal position. This attribute controls the general stiffness of the chain.

Value of 0 will result in a free flowing chain, that almost does not try to match it's initial position. Value of 1 will result in completely stiff chain.

If you're animating something like a stiff antennae set this value to a higher value. If you're animating a dangling rope - use a low value.

Attraction Scale - Base \ Tip

Attraction Scale - Base and Tip values act as multipliers for Attraction. Values of 1 and 1, mean that your Attraction attribute value propagates uniformly over the whole chain. Meaning that it's the same at the base and the end of the chain.

If you want the base of the chain to stick to your animation, but the tip to float freely you can set Attraction Scale - Base to 1 and Attraction Scale - Tip to 0, for example. If you set Tip to 1 and Base to 0 - tip will be fixed and bottom\middle of the chain will be affected by the simulation.

Stiffness - Base \ Tip

Stiffness - Base and Tip determine the amount of stiffness at the start and the end of the chain respectively.

If you want your chain to feel stiff - set these values to 1 or above. If you want your chain to float freely - set these values to less than 1.

Damp

Determines how fast chain comes to rest. Lower value will allow it to wobble longer, higher values will make it come to rest faster. A value of 1 and above will make it look more like a delay motion, with no inertia.

If you want your chain to wobble longer - decrease this value.

Value range here is 0 to 10. (Examples recorded with values - 0, 1, 10)

Drag

This simulates friction with the air, in addition to helping to stabilize the simulation. When the Drag value is 1 the chain behaves as if it has no inertial motion or follow through and therefore moves as if it is in thick fluid. I find it useful for drag and delay animation.

Attraction Damp

Dampens attraction force, acting like air viscosity. It has similar effect to Damp, but it's a bit different. I find this value perfect way to control how long it takes for the chain to settle.

If you want it to wiggle for a while after stopping - use low values (0). If you want your chain to settle quickly or have no overlap wiggle at all - use high values (1).

Bend resistance

Fine-tuning value, leave at default for the most part. Controls the force that resists high angled bending of the chain. Only works with Collision mode.

Compression resistance

Like Bend resistance, but for compression. Only works with Collision mode.

Stretch resistance

Like Bend resistance, but for stretching. Only works with Collision mode.

Collide width offset

Works only if there is at least 1 collider specified under Tools - Colliders menu. Defines the thickness of the simulation hair. You can see the thickness during simulation, if you have "Hair Systems" set to visible under the Show menu of the viewport. Only works with Collision mode.

Mass

Mass of the chain. Only works with Collision mode.


Cycle Iterations

Helps to seamlessly cycle your simulation.

0 - no cycling. 1+ - it will run simulation multiple times trying to smooth out the transition between first and last frame, cycling it. The more iterations there are, the longer it takes, but the smoother the resulting simulation will be. Usually you would not need to go above 2-5 iterations.

Cycling is done by transferring last frame's simulation shape to the first frame and running running through the animaiton like that multiple times. Doing it multiple times lets the animation settle into a loop.

The more iterations there are, the longer it takes, but the smoother the resulting simulation will be. Usually you would not need to go above 2-5 iterations.

Note: Unlike with Point mode, Chain mode's cycle animation does not store velocity, so it may not always provide perfect loop. If this does not work you may have to resort to Simple Chain which may produce a better loop.

This is something that I will try to address in future versions.

Preserve cycle inertia

Attempts to preserve inertia from last frame to the first frame when cycling animation. Usually you would like to have this on, but in some rare cases you may want to turn it off.

Only relevant if Cycle Iterations is above 0. Gets disabled if Cycle Iterations is set to 0.

Preserve Animation

If this option is ON simulation will follow your existing animation. In other words it will be attracted to your existing poses. This is a 2 steps process and it's slower. Use it to add overlap\lag effects to existing animation. For example you can roughly animate tail's motion, set base poses, bend it, and then run simulation with Preserve Animation ON to add some additional details to the animation. You will have to undo your simulation manually before running another simulation, otherwise it will be applied on top of your existing simulation.

If this option is OFF then simulation will use first frame of the animation as base pose for the whole simulation, and only follow parent's (first selected object) movement. This is a 1 step process and it's faster. Use this for simple things that don't change their general shape during animation, like antennaes, ears, etc. If you need to simulate with another settings you don't have to undo the simulation, as new simulation will overwrite the old one.

It's required for Cycle Iterations to work, so it gets automatically turned on if you select Cycle Iterations above 0

Use nucleus (Collision mode)

This setting is also described in nucleus nHair documentation. This is required for collisions to work, but it may alter the behaviour of nHair. It is recommended to only use it if you need collisions.

Use Base Twist

Determines which object to use for twist aligment. If checked it will be twisting of the first selected object, unchecked - second. Most of the time you want it checked.

Multi Pass Simulation

In case of extremely unmatched or uneven chains when neither with nor without Pre Align options you can't get it to behave smoothly you can try using Multi Pass Simulation instead. This will run individual simulation for each object in the chain. You will lose Base\Tip difference, but it should be fine.

You may want to consider using Simple Chain instead for such chains.

Euler filter

Will run Euler Filter on curves that you get after simulation. Most of the time it's good practice, but in rare cases it may break the simulation. If it happens try without Euler filter.

Pre Align

When simulation nHair spline is created it's vertices may not be perfectly aligned with controls, due to Maya's spline interpolation. This will make sure to match simulation rig to the simulation nHair curve and adjust control's offsets accordingly. Sometimes it may help avoid initial 'snap' of objects, or even preserve the shape better, especially if you use Match Transform.