I’ve been working on a Shape Splitting tool on/off over the years.
With a major re-write for a recent project.
That latest iteration has been re-worked to have the following core features:
- Unlimited Split Directions
- Allowing users to add as many custom splits as required for the character
- A Split Direction defines how a shape is divided into two resulting shapes
- Example:
- Split Lips Upper and Lower Splits a shape into an Upper Lip and Lower Lip version
- Split Left/Right Splits a shape down the middle of the face into Left and Right versions
- Split Directions are controlled through JSON configuration files and per-vertex painted weight data
- Unlimited Splits Per Shape
- While most shapes typically require basic Left/Right or Lip Upper/Lower splits, or both, the tool supports any number of additional splits as required
- Example, taking a full brow shape and producing not only a L/R brow raiser, but also an Inner and Outer browRaisesr that are in-turn split L/R
- Middle line pulling
- Automatically pulls shapes across the midline after splitting to reduce the “dead zone” often felt along the centre line.
- Realtime Split Preview
- Ability to preview the resulting split names before committing to the split process
- Config Driven
- Shapes List, Split Directions, Pull Directions all driven via JSON config files allowing for different configs per show
- Shape Group
- Basic group of the input shapes list with import/export
- Split States
- Ability to disable/enable shapes for splitting after selection for faster iterations
The core splitting logic is independent of the UI and can be easily implemented as a post-process for use on a farm or at rig build time.
Split times depend on mesh resolution, but the tool has been written to only work on the smallest amount of data required to reduce memory and speed up split times.