This is the rom (range of motion).
This was captured for one of the motion capture actors we used for the motion capture module. I decided to use this as i dont want to spend too much time cleaning up the data (as that's not the focus of this project) and it has the best range of motion.
This is just a work in progress as some muscles still need adding and refining but at this stage i just want some motion to test the skinning as im doing it.
Main areas the look odd are the forearms and neck when the arms are lower down. Interestingly these are the only areas i haven't added muscle yet so it just goes to show that they are adding some realism. Other areas that need improving are the scapula's (as there are quite a few muscles to get the skinning correct) and the left wrist as when mirroring the weights over it doesn't mirror them exactly so some adjustments need to be made.
Motion capture is designed to accurately record the bone movements of an actor and capture subtle movements that make a character look more life like so using muscles where adding the subtle muscle movements that make the skin feel more life like.
Thursday, 29 December 2011
This is the rom (range of motion).
Making a skeleton using the human ik that will eventually drive my own skeleton that you can see on top.
As this muscle rig is attempting to show more realism for this ill be driving the character with motion capture data and what better motion than the full range of motion you take at the start of a shoot. This way i can take some realistic range of motion and see how the muscles react.
Im making a skeleton with the human IK tools in maya 2012, then taking it into motion builder and bringing back the motion capture ill be constraining the arm IK and chest controls to the mo-cap skeleton, then ill use bake simulation to get it baked to key frames so i can delete the mo-cap rig and edit the keys on my own rig.
This is just a quick and easy way of creating an in-between rig just so i can apply the motion to my own rig and delete the in-between rig after.
Warning: if your ever thinking of using this human IK for animation i wouldn't as its mainly for taking into motion builder for motion capture data. It doesn't like to be edited that much and when you apply a control rig to it its not very animation friendly in my opinion.
Wednesday, 28 December 2011
Started painting the weights for the muscles. Needs some more work around the shoulders but you can instantly see how well the muscles and bones can help define and keep the volume.
This is probably an extreme pose stretching the spine backwards but you can see how the scapula muscles and bone are causing some nice defined but smooth creases.
Using custom bone objects for the rib cage has helped the chest from collapsing and including the muscles between the ribs and arm (clavicular and abdominal portions) helps sculpt the skin .
This method of rigging takes a bit more research and know how but if defiantly pays off for the results you get.
Note: the mesh you can see cutting through the skin will be hidden when rendered so the clipping isn't an issue.
Just added some animation to the upper body chest control to see how the muscles jiggle.
Here ive added some custom jiggle weights so they all don't act the same and they act how the should compared to there real life counterpart.
For the belly ive also added a muscle which acts as the overall volume of fat for the chest that will jiggle as you move so this is an area where you can use muscles for non musculature deformations. for this i attached the muscle from the bottom of the spine to the top between the arms and giving this a higher jiggle weight means it jiggles and acts like a large lump of fat. Then when painting weights ill only add some slight influence of this muscle so there will just be some subtle fat jiggling. If this was an obese character i could give this more jiggle and paint more weight to this muscle so the skin jiggles like there's more fat.
Other ways of adding extra movement and fat is by using the sliding weights and jiggle weights when painting weights. With the muscle system there are several different typed of weights to paint (as apposed to 1 when using the normal skin cluster). The main one is the sticky weight which is where the skin will stick to the bone/muscle object (similar to normal paint weights) then there's things like sliding and jiggle weights which allow the skin to slide (if you bend your elbow the skin will stretch and slide across the bone) and jiggle weights alow the skin to droop and jiggle when moved which gives the illusion of more fat.
Adding upper body muscles, top image is the chest, bottom being the back.
For the back ive added in the main muscles that connect between the scapula and the humerus as these will give the most deformation as the arms and shoulder moves. For the chest ive added in a few muscles but left out some of the main chest muscles as they do provide a biological function of moving the chest but they don't actual deform much so as an end result the don't deform the skin that much so there not that important to involve. Involving them would just slow the overall rig and cause more painting weights for no added effect.
The back muscles attached between the scapula and spine (rhomboid major and minor) don't have much deformation but will help the mesh of the back from collapsing when the spine has some extreme stretching or twisting on it.
Friday, 23 December 2011
Adding the muscles and more bones objects for the thoracic cavity.
The thoracic cavity is the volume under the ribs so as you bend stretch and twist your spine you ribs also move and change the overall thoracic cavity volume, this also happens when you breath. By adding these to the rig when the spine bends the skin better morphs how it should as the ribs move.
I found that by adding this thoracic cavity as one mesh it looks good until the spine bent because it was one object it looked too stiff. To fix this i split the volume up into 4 parts so when they were connected to the spine the each have there own movement. So when the back arches backwards the area expands and when the spine lean forwards into itself the cavity compresses.
So far for the muscles ive added the biceps and triceps. The main thing about muscle rigging is that its best to follow the biology of what you're creating but it doesn't and shouldn't need to be perfect. For example on my rig the end of the triceps is sticking out the elbow because a real triceps would collide with your elbow and wrap around but this isn't possible with current rigging techniques and isn't needed as it would over complicate things. By having the end stick out that means when the arm bends the triceps end moves more, thus giving more of a stretch for maya to work with which in the end give a more realistic result than if i had placed it in the exact biological position.
The volume doesn't need to be perfect either, for my muscles (and others ive seen on industry rigs) have the muscles clipping outside the skin, this is because (like normal maya joints) there not a biological representation of a muscle, there a deformer that gives the illusion of a muscle, so at render time they will be hidden so as long as the skin looks like it has the correct deformation it relay doesn't matter what the muscle looks like. Having said that thought its still a good idea not to deviate from the actual biology of what you're creating.
Also for this i have set up the proper jiggle weight so when its animated the muscles jiggle as the should. Ive also create custom muscle shapes so the muscles deformed like real muscles, so the triceps becomes more triangular shaped when squashed.
Here ive converted the skin to a maya muscle skin.
In the shot above ive taken the polygon scapula i made earlier and converted it to a muscle object and added it to the skin, this way the actual polygon mesh acts as a bone that can push the skin, this is important for bones like the scapula and clavicle as when you move you can see them pushing and defining the skin.
For example if i wanted a skinny character i might consider adding the ribs as muscle objects as they could be used to define the bones pushing through the skin.
Just skinning the mesh to the joints using normal smooth skin. with the default skinning you can instantly see problems where the skin collapses. To solve this you would need to paint the weights but for this ill be converting it to a muscle skin and blocking out a simple rib cage collision object to stop this from collapsing in.
The reason i made a smooth bind is because when i convert to muscle skin it will automatically take the same joints over to the muscle skin. Also i have disabled the smooth skin when im using the muscle skin but i don't delete it, this is because later when the muscles are added and the skin becomes more dynamic it will start to lag when calculating the skin which makes animation harder. So when animating ill disable the muscle skin and use the smooth skin as a guide, then switch back and cash out the muscle skin before rendering.
Here ive been setting up an n-spine which is a way i can get the spine to twist correctly and without collapsing.
When you make a spine with the spline ik it works well if the character bends forward of sideways but when they twist on the spot the spline cant solve the twist so it stays still which would look odd. There is a twist attribute in the spline ik but its inefficient as it only twists from the top but if we ever wanted to twist from the hips it wouldn't work.
To solve this the spline ik joints are controlling another joint that's in there place with a point constraint, then those joins are aim constrained to a locator that's in front of them. That locator is then grouped and the pivot moved to the spine joint.
The graph above shows how the rotate y of the 3 controls is fed into the rotate y of the locators groups. and if the locators rotate the joints aiming at them will rotate aswell.
With all this in place now if the chest control is twisted the spine will evenly twist from top to bottom giving a nice and also accurate shape.
Here im setting up the bone capsules for the rig. Using maya muscle systems instead of binding to the joints you bind to the bone capsules. These capsules have attributes like muscle and fat which allow the skin to react how it should e.g. instead of being painted to a joint the skin can slide across much like it would in real lift, this sliding is also dynamic so it will change depending on what you set or how the character is moving e.g. when skinning an over weight character, increasing the fat will allow the flesh to be more loose and jiggle much like in real life and the speed and intensity of the jiggle will be influenced by the inertia of the animation. This means the faster a body part moves, the more sliding and jiggling of the fat there is.
Thursday, 22 December 2011
Rigging up the rest of the arm as usual with an ik.
Also i added another ik for the clavicle so that the actual pole vector also rotates the scapula. If you think about it, if you have your arm bent and rotate it as if your aiming with your elbow (much like moving a pole vector in maya) your shoulder is the part that's actually rotating and your clavicle rotates ever so slightly.
So for this reason ive removed the rotate x coming from the shoulder controls and instead joined the rotate x to a different ik section.
This new IK starts from the same point as the main driver joint and ends on the actual pole vector, the ik is then point constrained to the pole vector control. This way, when i move the pole vector the end joint is rotated by the ik giving me a rotation value from moving the pole vector control. this rotation is then fed into that twist of the main driver. This means the rotate Y and Z are controlled by the shoulder control and the X (or twist) is controlled by the pole vector.
The main reason for creating an extra ik and not just having the twist of the arm rotate the driver joints twist is because in doing so you cause a loop, the driver joint is dictating where the arm should be and the arm twist dictated where the driver should twist which causes bad jittering and flipping as maya is battling with a loop. Creating the extra ik section means the rotation is coming from a section that isnt dictated by the main driver joint so no loop :D
Also i found by placing the rig in extreme poses that the rotation can get a little too strong and cause the scapula to extend too far, so to avoid this i limited the driver joints rotate x to -12 to 12 so there's just some subtle movements.
For this project id decided with the main area around the shoulder as its the most articulated joint but also the most complex and its proven to be just that.
Here ive spent some time trying to get the movement correct which was quite hard as when i got one axis of rotation correct, it contradicted the other.
The main problem is that when raising the shoulder the clavicle should raise up, but then when moving them back they just move in towards the spine and don't rotate which was causing some problems as the joints want to rotate it.
To get around this the top left joint in the image that has the axis displayed is the main joint for the bone and muscle connectors. This joint has an aim constrain that looks at the socket joint soat all times its orientated towards the arm. then its parented to the joint below which is the joint that will lift the clavicle up. Then it also has a point constraint on the y-axis to the ball joint so that when the shoulder is raised, the clavicle also raises, and with the aim constraint keeping it aimed at the ball joint its always level.
So to finish with the top left joint (with the axis shown) is reviving 3 sets of movements to get the correct position and rotation of the clavicle.
Might sound confusing so ill try find a way to better explain this in time for my report :).
Making the joints for the shoulder is a bit confusing but with some good reference video it becomes more clear.
usually you can just connect the shoulder to a joint chant that can raise or rotate it and life is simple. However when trying to get a better rig with muscles i need to make the driver joints of joints but also the joints where muscles should attach and this means i cant simply just move and orate one joint but i need to be able to connect the scapula clavicle to the arm joints.
To do this i have one joint in the middle which will be connected to a control so you can rotate it. One axis of rotation will raise and lower the shoulders which in turn will cause the scapula, clavicle and there connecting muscles move with it.
The 2nd axis of rotation some the same objects but has more focus on the back muscles where the scapula connects to the spine.
The best thing is to look as some medical tutorials that show both the bones and muscles in full motion and also feel your own muscles and how they move as you move your arm.
Started to add in the joints which ill later convert to maya c-muscle bones. When placing these joints i decided to first place locators where i want the joints to be, then i vertex snapped each joint as i drew then, this way i don't need to move the joints after there made which would introduce some rotation offsets which might cause problems later on in rigging.
Aslo later ill be creating a way that this can be done with a mel script so im looking into the best way to create the joints for the arm. Currently im thinking i might create a curve witch has clusters connected to controls that can be moved so the user can choose how the arm looks, then have a command that places joint on the vertex's of the curve and parents them together to get the arm joints.
Also ive been naming the bones with an archaeology approach as its the best way to get a details name for each joint. Fore example instead of fingerA01 or something like that ive now used the name "bn_r_proximalPhalanx_5_01" Where "bn" tells me (or later a mel script) that its a bind joint (so a joint to skin with). Then "proximalPhalanx_5_01" tells me that its the start of finger 5, using 5 instead of index or ring finger is because this rig will eventually be designed to morph into other creatures, so if this was to become a fin or wing there wouldn't be a ring finger but there would still be a proximalPhalanx_5.
Monday, 19 December 2011
Thank god the spine is almost all the same :D. After making one part of the spine i just duplicated it and re-shaped it for the rest. Jsut getting a rough overall scale for the spine and then ill go back in and fine true the rest to the right size.
Took some working but the pelvis is done to a standard im happy with. the topology want hard to crack but getting it to look correct took some time, still think the loop around the hole at the bottom still looks a bit "chubby" so might change it later but for not im happy :)
Tuesday, 6 December 2011
For work im currently working with some extremely talented animators (and friends) Pauls, Dave, Arran, Ravi and Jason. Were doing an animation about an eye exam which has been a fun experience working on a real project and finding out what's needed. My main roll is rigging and set modelling but im also animating one shot which at first I was worried about but came to like. With animation I still think ive a lot to learn so Im going to try more small animations later on this year.
But the main thing this month is to get things sorted so I can spend Christmas with my amazing girlfriend Zoe, family and friends :)
Hope people have a great Christmas :)