How do I best learn using the BCS?

There are basically two things to learn:

  • How to use the GUI to set up a BCS node (i.e. the technical details).

  • How to use the available features like combination-sculpting to create an expressive setup (i.e. the artistic part).

To understand the basic structure, it is best to start with Chapter 3. Getting Started, followed by a look at Chapter 5. How the System Works, which explains the technical background required to understand the more complex technical parts.

Chapter 6. UI Reference is a reference to everything you can do with the BCS GUI. It is designed so that you can start with the first page 6.1 UI Overview and click through the images to get to the button you’d like to have explained.

The above resources only shed some light on the technical details. Combination-sculpting is not taught in this manual, though you may get some inspiration in Chapter 4. The BCS Philosophy.

Will my BCS weights show up in the Blend Shape Editor just like my Blend Shape targets?

No, they will not show up. The reason is that Maya treats the BCS node like any other generic deformer node (like clusters etc.). You can use the AnimUI to get sliders for BCS weights (and many other attributes). You can download it here:

It may seem to be an overkill if you just need the Blend Shape sliders, but you can hide everything but the slider area to have a light weighted GUI that can even be displayed as a panel in Maya.

Will the BCS and the mirroring tools work with NURBS curves?

The basic BCS logic is implemented independently from the geometry type. The node itself can deform polygon, NURBS curve, NURBS surface, SubD, and Lattice objects. As any deformer node, it can even deform multi-shape objects, though this hasn’t been tested extensively.

For the mirroring this is a little different. There are actually three areas where mirroring comes into play:

  1. The BCS node’s bilateral mode for weights

  2. The mirroring of unilateral tweaks of a dataPoint

  3. The mirroring of geometry objects

The first is used to create two sliders (i.e. weight values) for one (symmetrical) target. This is designed to work with single object setups of a face. In case you have a multi-shape setup, this bilateral mode is probably not very useful, but it works with all the above geometry types.

The second only makes sense if you’re using the BCS node’s bilateral mode. It mirrors tweaks you applied to one unilateral sub-dataPoint to the other unilateral sub-dataPoint.

The third takes an asymmetrical object and a symmetrical version of this object and does left to right, right to left, and reversing (flip) operations. Even though this requires the BCS plugin, it is actually an independent modeling tool, so you could use it for usual Blend Shapes too. Of course, this will also be of little use in a multi-shape situation. The mirroring should work on all the geometry types the BCS works with. Most testing has been done with polygonal objects, though.

Why do I have to create a weightPosition to connect a dataPoint with my weight?

This is because of the way the inbetweening system is implemented. It allows for total freedom in inbetween creation and interpolation. If you just want a dataPoint for a certain weight without having to worry about weightPositions, just select the weight and create a dataPoint. The weightPosition will automatically be created at the position 1.

Why do I have to model a bilateral target? Can’t I create the left and right versions in the first place?

Modeling the bilateral target and letting the BCS do the separation has several important advantages. First, you get the bilateral combination for free. Also, when you create a combination with two bilateral weights, the left-left, right-right, and left-left-right-right combinations are created automatically. You just have to take care of the one combination that involves both weights on both sides.

Besides, modeling a left side and creating a right version of it is more work than using the Mirror Geometry tool to model the bilateral geometry in the first place.

Is it possible to show the relative version of a dataPoint while we edit the absolute one?

Of course! This is the main purpose of the view geometry: to show you what correction results from your changes to the absolute mix. To create absolute edit geometry for a dataPoint, simply double-click it in the list. To create relative view geometry select the dataPoint and choose “Data Points->Create View Geometry->Relative” from the menu.

Will I be able to add layers of deformation (e.g. a cluster) on top of the BCS?

Adding further layers of deformation is a vital feature of any deformation node. Otherwise, you couldn’t add skinning to your character and just had a talking head that can’t move. Everything from clusters, joints, lattices, even Blend Shapes, etc. is possible.

There is just one thing to keep in mind when doing something like this: The BCS has to be the first deformation node in the history chain. Internally, there’s a complex system for updating combination deltas only when necessary. The Freeze Input setting controls this optimization. When the input of the BCS changes (Freeze Input has then to be turned off), this updating process is triggered. Since this is a compute-intensive process, you would get a bit slower feedback when adding a BCS on top of a cluster, especially if you have absolute dataPoints or dataPoints with edit geometry.

Same goes for adding several BCS nodes in a chain. The first is fast, the others have to have Freeze Input turned off and thus loose some speed. If you need such a setup of several BCS nodes, consider adding them in parallel mode.