Friday, October 17, 2014

Maya Python AutoRigging Script Update

A quick update on the Python AutoRigging Script. This video features the old functions such as saving the pose while adding new components, as well as many new functions such as added controls, a renaming script that informs you of the amount of bones in the rig, removable hands and feet, toe functions, finger controls, fully assymmetrical limbs, wing functions, tail functions, orientation, and more. Currently, the code stands at just above 3200 lines of code.


Symphonic Rapture Project

A quick project I did for my Graphic Design Process class as part of my Master's program. Everything was modeled and textured using Maya, Photoshop, and Illustrator. I used Maya's render layers to separate out the elements for compositing in Photoshop. The goal was to make fake product for a fake company marketing strategy.



Tuesday, July 8, 2014

Auto Rig Tool Updates

More additions to the Python Auto Rigging Script. This update includes a mirror control and a pose saving option if changes need to be made to the setup during posing.



Monday, June 30, 2014

Python Auto Rig Script

Finished work on a new Auto Rig script created entirely in Python. This version includes a fully customizable temp rig setup, and a bone swap function that correctly orients all bones to each other so that they are perfectly mirrored and aligned so that you should never encounter a shifting problem when adding IK pole vectors. In addition to this video, I have since created a function for the tool that allows you to save the pose of setup and recreate it if you need to add or remove certain elements you may have included. I will be sure to post a follow up video soon.


Saturday, August 31, 2013

2013 Demo Reel

A new demo reel showing my latest works in Maya with rigging characters and experimenting with MEL script.




Wednesday, August 21, 2013

AutoRigging Script Work in Progress

A video highlighting the capabilities of my AutoRigging script so far. The entire code is currently 2500 lines long and only covers the initial setup of the bones in an arm setup.



Monday, March 11, 2013

IK / FK Snapping

A quick demonstration video utilizing a few of the concepts I have been working on in regards with rigging. This video features a look at Spacial Toggling and IK / FK Snapping using Maya's mel script.



Also, here is the script I created in order to achieve the IK / FK Snapping:

int $lArmIKFK = `getAttr ctr_l_hand_attributes.ik_to_fk_snap`;

if ($lArmIKFK == 2) {

//FK to IK Variables

float $lFKUpperArmRX = `getAttr ik_l_shoulder_jnt.rx`;
float $lFKUpperArmRY = `getAttr ik_l_shoulder_jnt.ry`;
float $lFKUpperArmRZ = `getAttr ik_l_shoulder_jnt.rz`;

float $lFKForearmRX = `getAttr ik_l_elbow_jnt.rx`;
float $lFKForearmRY = `getAttr ik_l_elbow_jnt.ry`;
float $lFKForearmRZ = `getAttr ik_l_elbow_jnt.rz`;

float $lFKWristRX = `getAttr ik_l_wrist_jnt.rx`;
float $lFKWristRY = `getAttr ik_l_wrist_jnt.ry`;
float $lFKWristRZ = `getAttr ik_l_wrist_jnt.rz`;

//FK to IK Function

setAttr ctr_l_fk_upperArm.rx $lFKUpperArmRX;
setAttr ctr_l_fk_upperArm.ry $lFKUpperArmRY;
setAttr ctr_l_fk_upperArm.rz $lFKUpperArmRZ;

setAttr ctr_l_fk_forearm.rx $lFKForearmRX;
setAttr ctr_l_fk_forearm.ry $lFKForearmRY;
setAttr ctr_l_fk_forearm.rz $lFKForearmRZ;

setAttr ctr_l_fk_wrist.rx $lFKWristRX;
setAttr ctr_l_fk_wrist.ry $lFKWristRY;
setAttr ctr_l_fk_wrist.rz $lFKWristRZ;
}

else if ( $lArmIKFK == 1) {

//IK to FK Variables

string $lIKWristMover[] = `listConnections ctr_l_hand_attributes.l_ik_wrist`;
string $lFKWristTarget[] = `listConnections ctr_l_hand_attributes.l_fk_wrist`;
string $lIKPVMover[] = `listConnections ctr_l_hand_attributes.l_ik_PV`;
string $lFKPVTarget[] = `listConnections ctr_l_hand_attributes.l_fk_PV_LOC`;

float $lFKWristPos[] = `xform -q -ws -rp $lFKWristTarget[0]`;
float $lFKWristRot[] = `xform -q -ws -ro $lFKWristTarget[0]`;
float $lFKPVPos[] = `xform -q -ws -rp $lFKPVTarget[0]`;


//IK to FK Function

move -ws -rpr $lFKWristPos[0] $lFKWristPos[1] $lFKWristPos[2] $lIKWristMover[0];
xform -ws -ro $lFKWristRot[0] $lFKWristRot[1] $lFKWristRot[2] $lIKWristMover[0];
move -ws -rpr $lFKPVPos[0] $lFKPVPos[1] $lFKPVPos[2] $lIKPVMover[0];

}