About the Flexible Mocap pipeline

The Flexible Mocap pipeline entails two main steps: Extraction and Goals.

These two steps give open access to input, intermediate and output data, which allows a great deal of flexibility. There are multiple ways user can inject custom logic in the pipeline.

Flexible mocap pipeline

The simplest way to influence the motion capture pipeline is to modify the input markers. This allows "low-level" corrections targeted at the motion capture data. For instance, markers can be constrained in different ways to enforce a given configuration or to correct artifacts such as marker sliding. More complex operations can also be done on markers, such as combining several markers into new ones. This can allow average or filtering schemes to be applied in real-time instead of offline by motion capture hardware manufacturer's clean-up software.

Custom logic can be injected on extracted goals. These goals can be thought of as temporary (IK) goals that the next solving step uses as an input. Those extracted goals are a nice higher-level, more intelligible place to apply correction then lower-level input markers or output bones. They also take into account the whole character structure to perform corrections which is more easily done on high-level goals than on low-level markers. Relation constraints can also be used to add custom logic to the extraction. For instance, goals can be constrained not to allow knee snapping. In addition, the Story tool can be used to add animation on top of extracted goals which can be very useful, for instance, to fix mesh penetration issues. It's also possible to use custom constraints on goals to achieve pretty much any type of correction, such as custom control over the way rotation is spread on each part of the spine for example. The constraints can either take extracted goals as an input and modify them or simply override the value that came out of extraction step.

Finally, solving from goals to bones can also be customized. While this solving is usually performed by HIK solver or the MotionBuilder solver, you can use a custom solver. Parts of solve output, for instance only an arm in a complex rig situation, can also be modified or overridden as a post-processing step.

Related topics