Wednesday, 16 January 2013

16/01/13 - Rigging: Test

Rigging, in animation, is the process of taking a 3D model and creating a 'skeleton' of 'bones' that allow for the manipulation of designated parts of its geometry, allowing for the creation of animations for said model.

Myself and Tim, having decided how we would create animations for our game, immediately jumped into Autodesk's Maya to see what we could create. Having previously dabbled in 3D Modelling and Animation in Blender a few years ago, as well as using Maya in the first year of this course, i felt fairly confident that i could create something without using the internet to find out what i needed. I managed to create a test model, which consisted of a series of re-sized and carefully arranged planes, for a human character. I also found out how to create the bones for this test model; either by having 'Animation' selected in the drop down box at the top-left of the UI (Animation Mode), then finding the 'Skeleton' list at the top of the screen and selecting 'Joint Tool', or by selecting the 'Animation' tab from above the 3D workspace then clicking the 'Joint Tool' button, which looks like this:


Once i had the bones in place i realised i didn't actually know how to make the bones interact with the model, luckily Tim had encountered this same problem and already found a solution so he showed me how; to attach a bone to geometry you must have the bone and the part of the model you wish to assign to it selected. Then, in Animation Mode, you must select 'Skin', followed by 'Bind Skin', then selecting one of the options from the list. What i found was that using 'Smooth Bind' as Tim suggested, caused the bones to interact with more than the desired geometry, as well as warping it, which is not what we wanted to do.


Through some experimentation I discovered that selecting 'Rigid Bind' and in its 'settings' window changing the 'Bind to:' drop-down to 'Selected Joints' gave the desired result, which was to have each individual plane attached to a specific bone in the rig.

Next came the task of making the rig easier to animate. It would be perfectly reasonable to create the animations by moving each of the bones individually, but the time this would take is enormous when compared with the time saved by using IK solvers.

IK Solvers or Inverse Kinematic Solvers as i understand them, allow you to manipulate a chain of bones through a single IK handle that is placed at the end of the chain. Moving this handle causes the bones in the chain to bend and rotate so that they are still linked but not overlapping, and that the end bone is still in contact with the handle. It is commonly used to allow for easier and more convincing animation of limbs in human character models.



When setting these up for my test model, which consists simply of selecting the 'IK Handle' tool from the 'Skeleton' list and clicking the top and bottom joints of the chain you wish to create a handle for, i ran into a problem.

Simply put instead of being all bendy and flexible my joints were becoming completely rigid when i set up my IKs, the chain was achored at the shoulder or hip as it should have been, but would stay completely rigid when i moved the handle around and did not flex at all. I was utterly stumped as Tim had managed to create a test rig himself with joints that flexed just as they should have done. In the end i resorted to recreating the rig and found that if i set up the limbs separately before linking them all together i achieved the flexible bendy IK's that i desired, though it was not an ideal solution.


The final part of the creation of our test rigs was to create constraints that would anchor the feet to the floor, as we saw had been done for the rig in the video that led us to use Maya. Having this constraint would mean that the legs of our character would not be able to go past a certain point on a desired axis, for us this was the vertical axis as we wanted define a 'floor' point that would cause the feet to stop and the legs to bend if the rest of the model was moved below it. Such a thing proved very hard to do, or at least to find out how to do...

Initially we just tried out the different options from the 'Constraints' menu in the hope that one would give us the results we wanted. I spent a very long time searching the internet for a solution without success,while Tim continued experimenting with the different options, and while he did manage to achieve what we were trying to do he did it by accident and couldn't see how he had managed it. So we continued looking and eventually found the solution was to use the 'Point' constraint but to make sure the vertical axis was the only thing being constrained.

Words cannot express the relief that was felt after finally solving this problem, but we at least felt that we had reached a point where we could comfortably start on our actual work for the game, the modelling and rigging of the 3 in game characters, Large medium and small. I chose to create the small rig.

No comments:

Post a Comment