Ziva Bones

Ziva Tutorials | 

BROAD STROKES

Creating a Ziva Bone is extremely easy. Much like a Ziva Tissue, which we covered in a previous video, follow these 4 simple steps to turn any arbitrary Maya mesh into a Ziva Bone:

  1. Select object you wish to convert (Shift+select for multiple objects)
  2. Go to the “Ziva Menu”
  3. Go to “Add Simulation Component”
  4. Select “Bone”

If you press play at this time, no simulation will happen since Ziva Bone objects are not dynamic. Instead, to check if your object was successfully converted to a Bone, look for small white dots along the object’s vertices – these are unique to Ziva Bones.

Ways to Drive a Ziva Bone

Since Ziva Bones are kinematic objects, you can use any standard mesh movement option currently available in Maya to drive them. The most common drivers are:

  1. Transform Manipulation – via keys, parent constraints, or inherited parent transforms

  2. Deformer Driving – via skin clusters, blend shapes, lattices, etc.
    (Using the Maya wrap deformer to drive bones may impact your computational speeds on Maya 2018. To avoid this, ensure your frame advance options line up with the time sampling specified with your use of substeps on the zSolver node. Example: If your sim is set at 2 substeps, and your bones are being driven by a Maya wrap deformer, set your Maya playback options to advance by 0.5 frames.)

  3. Direct In-Mesh Connections – via alembics or outgoing connections of other meshes

Driving a Ziva Bone with a Joint Hierarchy

If you already have the joint hierarchy setup for your character, you can simply connect your new Ziva bone to the corresponding join section.

  1. Select the Ziva Bone you wish to connect
  2. Select the section of the Joint Hierarchy you want to connect the Bone to
  3. Click on the “Skin” menu on the top menu
  4. Select “Bind Skin”
  5. Use the standard settings
  6. Bind to: Selected Joints
  7. Bind Method: Closest Distance
  8. Skinning Method: Classic Linear
  9. This will automatically connect the bones to the joint hierarchy

Driving a Ziva Bone with an Alembic Cache

If you have an alembic cache of the animation you want, you can also convert the mesh objects to Ziva Bones directly and simply create a blendshape between the driver bone and corresponding Ziva Bone.

This approach is most effective for switching out animations for your muscle rig since it allows you to simply write a script to delete the blend shapes and import a new alembic cache to drive the simulation.

Although you can build muscles on top of your animation rigs, this is highly discourage. Converting your animation rig reduces the quality of the subframes. Even the most basic Maya Nodes, like aim constraints, introduce Graph Evaluation Cycles which cause many problems at the subframe level.

We always encourage users to cache out an alembic of the bone animation and skeleton geometry and use that to drive the bones and the muscle rig. Not only is this a simpler approach, but it can also be more cost effective as your animation rig won’t require a Ziva License to run at the time of production.

February 14, 2018

Maya basically can't guarantee the position of anything if there's a cycle in the rig. That's part of the reason we recommend caching out bones as alembics and doing muscle sim in a separate file. I don't suppose you have a Ziva cache in your scene, and key frames on the controls changed? That could also produce this problem.

May 8, 2018

Just want to confirm that baking the animation on the bones solved the cycle for me, and Ziva is much more stable now. I'm getting a bit of down time to play with Ziva at work, and tried it this morning. I don't think the rig has a cycle that maya warns about, and if I do cycleCheck it doesn't come up. However I'm unable to provide the rig anyways. Thanks for the help on this. I was having it on the TRex rig a Sinking Ship too. All I was doing there was a double constraint to blend between t-pose and rig. Now I know I just needed to bake it down before running the simulation. Thanks for your help!