Prototyping KitCAT

As I described in a video last month (A Virtual Studio for Anansi Spaceworks), I’ve decided to adopt the TACTIC project management suite. This will require me to develop a Blender-TACTIC integration Add-On, and today I spent some time learning more about the Blender UI scripting API, as well as starting a mock-up of the interface we’ll need for the package.

KitCAT UI Mock Up screen capture

Beginnings of a UI for integrating with TACTIC from within Blender.

I also decided on a good name for it: “KitCAT”. It’s pretty close to “TACTIC” spelled backwards, and it might stand for “Kit for Collaborative Animation with TACTIC”. Also, I just like the sound of it.

In any case, it’s mission will be two-fold: the first use is to provide a context-aware interface to the TACTIC project management suite. My development priorities for TACTIC integration are:

  1. Synchronize the Blender file with the TACTIC database for the project: determine if it is checked-in and up-to-date, and if not, do the check-in right there. Also, of course, check for conflicts.
  2. Check the project issue tracker for any “TO DO” items on the current file, and in particular, any that have been assigned to the current user.
  3. Provide metadata tracking and CREDITS generation from embedded text files (probably going to use “conf” file format for this, as it’s very easy and tolerant of hand-editing).

The second role is to provide a convenient place to collect studio-specific scripts for automating frequent tasks that are under-developed in Blender. These might eventually get spun off into separate Add-Ons, but it’ll be convenient to keep them together while we work on them. Among the most pressing needs are methods for automating character generation, rigging, and linking into scene files:

  1. Check a character armature against a prototype to ensure that all of the expected named bones are present and identify any new ones. Our rigs need to maintain consistency in order for animation scripts to work correctly on them, so we should have a way to check this quickly.
  2. Automate the internal linking process for face and body rigs, so that controls work properly.
  3. Automate the process of linking a character into a scene file (Documented in Linking Our Characters for Animation).
  4. Provide a work-around for quick “extras” linking — that is, linking the same character into a scene multiple times, with the possibility of making minor variations, by generating an intermediate scene with copied/renamed rigs for each instance of a character.

The Blender API for user interfaces is pretty simple and automated, and there is quite a bit of documentation for it, although it’s sometimes a bit fussy, and it can be tricky finding the documentation for all the options for various steps along the way.