Component Node

Components

Been a while since my last update. A fair bit of my time has been spent on a couple unrelated projects, but now I’m back to work on marigold!

During my time away I thought a lot about the approach I was taking for building the rigging. I concluded that it could be done better. Previously a rig part, lets say an IK arm, would rely heavily on a single custom node that knew all the parts and how they went together. What I wanted was a more modular approach.

Just to recap my system design.

  • A rig is generated from a framework.
  • A framework is a collection of modules (IK arm, reverse leg, spline spine, etc).
  • A module is made up of bits (objects that contain information about the construction of the final rig) and a meta node.
Unity components

Unity components

My new idea was to use a workflow similar to Unity’s¬†component system. In Unity a component is a self contained capsule with a specific behavior. These components can be added to any object to then impart their behavior to that object. Typically an object is composed of multiple components.

Component GUI

Component GUI

Component Node

Component Node

How do we apply this to Maya? I decided the best approach would be to use nodes in place of components. Each node has a specific function. For example, there could be a node that does nothing but create a joint or one that creates a control. These components would be used in the rigging framework to create complete modules like the IK arm mentioned above.

All of this is straight forward and not much of a deviation from my original implementation. However, the biggest change comes to the GUI. Here I needed to focus on usability. On how to simplify the creation of framework modules and specifically on adding/removing components.

Unfortunately I don’t have much to show (hence no video) because I’m deep into a system rewrite. Hopefully next week there will be enough progress that I can capture a video.