Bergamo Science 2008

Maga-Animation was invited, for the 2006 Bergamo Science Fair, to organise an exhibition - including a morning schools workshop - to explain the work involved in creating an animated production; the exhibition culminated in an interactive workshop where the participants could interact with and animate a character. Given the complexity of an animated production, we chose to apply a software interface with the relevant buttons and handlers of a MIDI mixer, to allow an increased interaction with the animation process. I was requested in August 2006 to undertake the preparations for the exhibition and was equipped with a midi keyboard with 4 octaves and 16 knobs. Within a short time I was able to learn the MIDI language, in part thanks to the work of Gunnar Schroeder and Jeff Glatt's superb website . The first goal was to interface Maya with MIDI, writing a driver that could be detected by the Maya 'editor device'; utilising the Maya API documentation and with the help of the mayaClockServer.c example, I was able to complete the primary step. Initially I was restricted to moving the locators with the keys and joystick on the keyboard; by the end I was able to utilise the full breadth of the knobs and fader on the Evolution UC-33 mixer. The driver I'd written was extended to include commands to simulate the keyboard; once the MIDI mixer and Maya could interact I proceeded to develop further control levels. In essence I wrote a series of plug-ins:

- PlayMidi.mll:
a node that allows travel up and down a timeline utilising only a mixer joystick.

- CLMidi.mll:
a node to accept input from the Blind Device, a joystick or fader on the mixer, and transfer that input to a selected control attribute, that is Translate (X/Y/Z) or Rotate (X/Y/Z), to in order to move the animated character.

- KeyMidi.mll:
a keyMidi command with four functions:
- -k [-key] true; create a bookmark at that timestamp for all attributes in the transformation nodes with CL in the name.
- -d [-del] true; cancel all attributes on the transformation nodes with CL in the name.
- -da [-delAll] true; cancel all the existing animation curves on all attributes in the transformation nodes with CL in the name.
- -pb [-playBlast] true; launch a play blast.

Workshop 2006 & Workshop 2008

The following images are of the events: