So, my adventure with Xaelander continues! I have to admit that so far, I'm quite impressed with Xaelander's capabilities as an animation tool; it's just fantastic for laying down the foundation of the animation you're hoping to create. You want the character's arm to whip around in 20 frames while his body goes the opposite direction? How would it look if it moved another way...? What about if his arm just flopped around? No problem! You can visualize it in realtime using your hands, without wasting more time by following the traditional methods.
However, I do admit that at first, I was having my doubts about Xaelander's efficiency in animating a character. Sure, it worked well with animating a simple object or a camera, but how would moving the different parts of a character work out? My first few tests were discouraging, to say the least. With the varying ways in which character rigs are built, the controller curves for numerous characters weren't behaving consistently due to a conflict between the local rotation axis of the objects and the world axis.
Indeed, it was seeming hopeless.... until I had to remind myself that being open-minded is probably a good thing, and I'm glad I did. Using my rigging knowledge, I was able to create a system to effectively move the controller curves of any character rig around without any concern to their local rotation axis. The solution is rather simple, and yet it made a world of difference. Before I go on, I just wanted to express how exciting this is. Did I forget to mention that Xaelander rocks?
The solution is easy: create two "representative" objects (preferably locators), color-code them, and name them appropriately to match their real-world counterparts. Attach your two physical points to these virtual ones, and you'll know exactly where your hands are in the Maya world space without moving your desired object around quite yet. This way, you'll get a great feel for the scene's layout in relation to your physical workspace and be able to tweak the scale of the movement, as well as offset the position of the object from your actual location in the workspace if need be. Once you've set this up to your liking, constrain the character rig controller of your choosing to one of your virtual points (aim constraint for FK controller, parent constraint for IK controller). I recommend when doing the constraint that you leave the "maintain offset" option enabled - the reason for this being that no matter what the LRA (local rotation axis) of the controller is, it'll follow your hand the way you perceive it, not stray away. Now, with this set up, you have two options: go the mocap route or the traditional animator route.
If taking the mocap route, what you do is capture your movement of the locator, and the character's rig controller will follow if constrained correctly. You'll find it actually feels like a puppet string! Once you've achieved a peformance you're in love with and have recorded it via the Device Editor, select the rig controller and simply key every few frames (1's, 2's, 3's, etc) to your liking; this way, you'll have much cleaner curves to work with. Now, at this point you can either delete the constraint, or detach the physical point from the locator and leave it untouched to maintain your original motion capture data to have something to fall back on. Repeat this method for as many parts of the character you'd like to animate and you'll have your character animated in no time!
If taking the traditional route, just pose the body part to your liking and keyframe either the "representative" or the rig controller itself without recording your movement (obviously). Move the timeline forward to the next desired time and repeat. I'm not a big fan of this method, but I know there are those out there that prefer to work in the old school and maybe want to have better control over the exact positioning/timing in their animation. Whatever your desired method, I'm sure you will find animating and posing the character with your actual hands is much more comfortable and effective.
My next step is to write a script to automate this process and speed things up, but that's for another day. When that day comes, you all will be the first to see it!






