RIG WRECK · SEPTEMBER 2022
I’ve been working on this quite a bit since the last entry, but I didn’t really want to make individual entries for each thing I did since it was all a bit tied together. Unfortunately, something happened which I feared might. When I decided to add finger ctrls, I went down the rabbit hole of just fixing everything I had noted last year about the two main character rigs. Here are some of the updates I’ve been working on:

·Finger Ctrls
·Space switching for world FK Arm, Head, and Chest
·Proper mirror behavior for FK Arms
·Tool to transfer Single Node to individual Finger Ctrls
·Tool to fix broken thumbs
·Tool to fix broken Arms
·New Bigger Picker
·Added buttons on the picker to update it
·Added Arm FK/IK visibility per limb
·Updated all anim scenes with new rigs

The finger ctrls were not too hard to add, and even the transfer script was fairly straight forward. However, since the thumbs weren’t mirrored correctly on my old rigs, I had to spend a good amount of time ensuring that I could transfer the animation curves without losing the pose. This was a bit tricky because transferring anim curves doesn’t work if there aren’t any, so you have to add exceptions to just transfer attr values instead, and on some scene I used the attributes to animate the thumb as opposed to xyz rotations(which I added sometime in late 2010 I think). It took a bit of time, but I got it working correctly for just replacing the rig as well as transferring the animation to the new individual ctrls if desired. In one of the chars, I had to add a locator that just sort of mimicked the old thumb orientation and behavior so I could retain that info in the new rig and then match the new mirrored thumb to it.

After that I decided I may as well hit some of the other things on the list I made, hoping it wouldn’t be too bad. First up was adding world space rotations for the FK arms, chest, and head ctrls. This wasn’t too hard and went quickly for the arms. I did have to decode my rig since I hadn’t done much surgery on it in quite some time. I’ve learned many things since first making these rigs, and scratch my head at some of the stuff I did previously, but all I could do was update a few things to get my new functionality working. Unfortunately, this did cause some strange issues with zero value ctrls even if they had a parent node inheriting their original value. A bit mind boggling at first, as it would put the head completely out of place if I zero’d the values like the default pose, or a spine ctrl would be slightly off since I had to insert nodes for world space switching. I finally found the issue that went back to the local pivot(which is not keyable), changing its values when a reference is replaced and generating some failed ref edits. Once I found that I was able to add a fix to my finger update script, even though it was not related to the fingers, I just kept all the fixes in one place.

I then decided to update my picker to be a bit larger as well as add buttons to switch to these new modes for the arms, chest, and head. It’s not really that time consuming, but all of this is going over two characters that share similarities, but also have very different spines and clavicles. You end up breaking small things like visibility ctrls no longer working or adding more per limb, etc.

The last thing on my rig list was the fact that the FK arms weren’t mirrored correctly. A few things were, but overall, it was very inconsistent. This isn’t a huge problem, but it’s something that always bothers me on rigs. I wasn’t quite sure if I wanted to attempt fixing this because it meant further analyzing how I built these. Fixing the animation, I didn’t think would really be bad because I already wrote a script to flip anim curve values per axis and in the end, all I was doing was reversing values. In theory that sounds great, but when you do this much surgery on something, it breaks in ways you can’t predict.

I did the Alien first because it was just his wrist that were not mirrored correctly, but later I ended up doing his clavicle translation ctrls as well. This was another case where the local pivot would move when I replaced the old rig with the new one and left me scratching my head for a bit. I finally figured that out and moved on to the Robot. This was much more complicated since his arms have an extra ball joint connected to the torso and then a translation style control which it aims at. Both of these can be used together to pose the arm. It wasn’t too hard to get it working, but it was like relearning how I set the arms up to begin with and I had to take notes on what was constrained to what as well as what type of constraint, orient, point, parent, or aim. And of course, once I go the behavior correct, updating to the new rig broke the animation in ways I didn’t expect. Most of the issues went back to the local pivot and failed ref edits that I just needed to delete to get the arm back in place before reversing certain axis.

I finally got all that working about a week ago and had been putting a small set of commands to update the picker, load in each new rig, fix all the issues associated with the fingers, spine, and new arm behavior as I went. I tested it each time I made a major change and had to add a few buttons to the picker which could fix these issues one by one as well, since I may have scenes in the future that used old rigs. I was preparing all this because once I got everything working, I’d have to go back and update all the old animation scenes. This wasn’t 100% necessary since they could just use the old rigs, but I prefer everything to be working on the current production rigs if possible.

So just now, I spent about an hour loading the last file from each animated scene so far, updating the rig, applying the fixes, creating a new playblast, and saving out a new file. That part went very smoothly since I’ve been testing things as I went. Originally, I thought I might just update and fix the fingers first and then decide whether or not to add the space switching stuff or mirrored arm ctrls. In the end, even though it derailed animation production, it felt like it would be more efficient to add everything I want to the rigs now while I was mucking about in them or I may have to relearn what was connected to what, etc, all over months(or in my case, years) from now. One character isn’t so bad, but when you’re dealing with two and they have enough differences in them, it’s quite time consuming.

This is probably the longest blog post I’ve made about this project. I may do a video on the process I just went through, since it can be easier to just talk about this stuff and show examples instead of trying to get screenshots together and explain it in writing. I’m not quite sure how I want to go about that at the moment since it’s yet another process to undergo. This website and blog were intended to be quick ways to document progress on this project, but even that can end up being a bit tedious at times like this.