Mono is one of the main protagonists in the short film 'Over Under'. The film was going to be rendered within Unreal Engine so I had to create a real-time render ready rig. Below is an overview breakdown showing off some of the features such as IK/FK arms and a stretchy torso.
During the rigging process, there were a lot of challenges that had to be overcome in order to meet the deadline. In this section, I will breakdown some of these challenges and how I resolved them.
I had never rigged any clothing before, so at the beginning of the project I was going to be using Unreal Engine to simulate the cape. This didn't work so I looked into simulating the cape as an nCloth within Maya. This was too slow and difficult with the cloth not behaving as I wanted it to (See failure video). Eventually, I settled on a hybrid method. It involved having two versions of the cape, one skinned to Mono's skeleton and the other a dynamic nCloth simulation. The skinned cloth is then used as the base for the input mesh attract node allowing the dynamic cloth to stay fixed in that position. This then allowed me to paint the edge vertices essentially making the edges of the cape act like cloth. This is a very simplified method that was used to create the cape in 'Doctor Strange' and it was fun to implement professional methodologies into my work.
I never expected this to be as big of a problem as it was. But as they say, expected the unexpected. When rigging Mono I used reference of deer anatomy as that is what is closest. However, a deer leg just didn't work for Mono, the animation was funky and not what the director wanted. I tried several versions of Mono with forward-facing knees but was told to keep working. Eventually, the solution was that he would have backwards knees. Of course, this is anatomically incorrect it worked for the film so that the route I took.
As mentioned previously this rig was going to be used within Unreal Engine. Ideally, the pipeline would be FBX but this became rather challenging especially when it came to Mono's eyes. Since the film 'Over Under' has no dialogue all the emotion and storytelling has to be clearly conveyed in the expressions of the characters. Mono has no mouth, only two large eyes. As a rigger it was crucial that animators had enough control with the eyes to express different emotions to ensure the story beats were clear. The problem with the FBX workflow meant that deformes couldn't be used and it was making it difficult for me to have the low poly mesh deform in an appealing way. In the end, I had to use delta mush which allowed for these nice eye shapes but due to being so far into the rigging workflow, the deformer couldn't be baked onto the geomtery so the workflow had to switch to an alembic one.
I had never created a space switch before. Some of the animators I was working with on this short film requested that there should be a space switch for Mono's head to change between local and world space. This took a lot of trial and error, but over the course of a few days I ended up with a space switcher that worked. From this experience I can take this knowledge and implement it into future work.
Developing a rigging tool
The workflow used on this project mostly consisted of visual rigging, I know it is industry standard to modulate and procedurally rig using code. To try to implement this and speed up my workflow I decided to create a rigging tool. The tool is created using Python and it features a simple UI that is split into six different sections.
This section takes the items in a selection (normally joints) and creates a number of locators based on the number of items selected. It then iterates through the selection parenting locators to each joint then, deleting the constraints and renaming them. This can be done by selection or by hierarchy.
Creates different shapes controls and allows for colour choice on creation. Uses a selected item as the pivot point.
Takes two items in a selection and constrains one to the other. It allows for different constraints to be chosen and also the option for maintaining the offset.
Rename a selected item depending on what is in the text field. It also has two buttons that allow for prefixes depending on if the control on the left or the right.
Creates clusters along the CV of a selected curve. Renames those cluster handles to the proper naming conventions. Create follicles on geometry face selection, then rename the follicles and creates an offset group for each one
Turns on or off the visiblilty of an object in the shape node.