Some Details on Weights and Deformation

< Previous | Contents | Manuals Home | Boris FX | Next >

Some Details on Weights and Deformation

In a SynthEyes deformation setup, the mesh is parented to the root bone. The shape of the mesh changes as a result of the deformation, but the mesh it still "carried along" by the motion of the root bone it is parented to, just like it is when no deformer is present. The deformation takes place in "mesh coordinates" not in the overall 3D environment's "world coordinates". This is especially important in situations where you have a regular moving-object solve for the root bone, and then layer some GeoH deformations on top of it.

Other 3D packages may do the deformation in world coordinates. That might make it easier to create walk animations where feet don't slide, but that isn't particularly relevant to SynthEyes.

The impact of the difference in approaches can be seen by considering what would happen if the weights are zero on all bones. In SynthEyes, a vertex will all-zero weights will simply be carried along with the root bone, as if there's no deformer, because there isn't. In applications with world-coordinate deformation, vertices with all- zero weights are "left behind" at a fixed position in 3D space, regardless of the motion of the bones.

In SynthEyes, the weights are always made to add up to 1.0. One way to look at that is that any missing weight (if the sum of non-root bones adds up less than 1.0) is assigned to the root bone. Weights associated with the root bone don't really do much, since the vertex is going to be carried along with the root bone anyway.


Note : SynthEyes's painting and airbrushing operations have some intentional asymmetry when there are three or more bones affecting a vertex, and one of those bones is the root. Those asymmetries should make it easier to paint.


Since SynthEyes weights always add up to 1, they can easily be sent to other applications, whether they use SynthEyes's approach or a world-coordinate approach. Exports such as Filmbox (FBX) and Blender 2.80 export entire intact rigs.

If you do want to use a world coordinate approach in SynthEyes, you can easily do that too: simply put a new "super-root" bone at the world coordinate origin, parent the mesh to that, and reparent (or construct) the entire rig to the super-root. Keep the super-root locked at the origin. Now your rig can have weights that can add up to less than 1, if you so desire (temporarily or even permanently if you want), because the super-root will receive the missing weight. And as a result, if you want to weight some vertices less than 100%, they will be "left behind."

As you see, SynthEyes may do things a little differently, because it's a tracking application rather than an animation application, but you can get that other behavior if you like.


©2023 Boris FX, Inc. — UNOFFICIAL — Converted from original PDF.