Well, yesterday I finally received my high poly elephant from my artist. 9 days later than promised, and almost a month overdue. There are no words to describe the panic and dissappointment that went through my mind when I opened that file. I saw the sculpt in zbrush and it seemed usable. This model though, is really not what I was expecting and has not met the requirements that I gave my artist.
I will admit to having wasted a bit of time worrying, panicking and wondering what the next steps I should take are. There is relatively little time left on this project now.
Thankfully, another student has offered to create a new high poly elephant for me, working from the original low poly. His work is seriously impressive and Im excited to see what he can produce in just 5 days. I have informed him I can push back starting rendering until Monday, but thats the longest I can wait. This delay means I absolutely have to drop the majority of the scenes with the elephant. Ill just have to aim to get the three most important ones completed.
So, I finally got around to watching The Hobbit – An Unexpected Journey tonight. Unsurprisingly, the scene I loved most was seeing the Eagles of the North. All I could think about as I watched them soaring across my TV screen was how much I’d love to see the rigs and learn how to create something that could be animated so beautifully. Plus, those feathers… just wow. I can only assume there was dynamics on them, and I’d be fascinated to know how that was done too. Hopefully one day, I will be working for a company that helps bring that calibre of film to life and I will be involved in the rigging, and then I won’t just know how it worked, I will have been involved in building it!
I uploaded an early deform test of the face now that I have finished the skinning. Im not entirely sure why the background of the still image is so pink. The whole thing is grey when it plays… YouTube is strange sometimes.
When I first tried to add the face controllers as extra influences in the skinning I discovered it seemed to be completely confusing everything. I repeatedly got an error that one of the nose controllers already existed. Everything except the main nose control and one nostril controller disappeared from my list of influences. If I tried to look at the list alphabetically all the influences beginning with R_ were missing from the list.
Eventually I established that it seemed to be the main nose controller causing the issue. Maya didn’t seem to like that the nostril controllers were parented to it. I un-parented them and used a parent constraint instead and the problem was solved. I could add all my facial controllers and get to work skinning the face.
Most of the skinning was fairly simple, and it didn’t take long to get the deforms looking fairly reasonable.
However, getting the skinning smooth around the mouth without any stray verts being caught by controllers on the opposite lip was pretty time consuming. Once I thought I had the mouth correctly skinned I realised that the mouth wasn’t closing correctly. The corner controllers had too much influence and due to the shape the mouth was initially modelled in, I was left with an open space at each end. To fix this I simply spread the influence of the nearest controllers on the top and bottom lips so that they would close the corners better.
I bought a new domain to host my own website! I’ve finally managed to get it up and running. If you find any errors or problems please let me know either with a comment or by filling out the contact form.
So, my artist promised me the high poly elephant would be with me on Sunday. Its the middle of the week now and I’ve heard nothing from him and not seen him in university. I was pretty frustrated to discover that hes actually gone to FMX and hes not even in the country. I dont have a problem with people going to such a major event in the animation world. I would love to have gone myself! What I do have a problem with is an individual knowing they have work to give to others and disappearing with no word on where they are or why the work has not been finished.
I am seriously unimpressed. Its looking very unlikely now that I stand any chance of getting every scene in my original edit finished. Im going to have to just pick the most important scenes, the ones that still tell the story and prioritise them and see how much I can get rendered and composited for hand in.
The final set of controls left for me to build were the face controllers. Unlike the rest of the controllers these needed to be placed very close to the mesh. I felt that the thin lines of the curves I had used for everything else would not be very obvious or easy to select for the animator. Instead, I used the top of a NURBS cylinder as this provided a small filled in circle which was much easier to select.
I wanted the mouth shape to be really flexible for the animator, so I placed a controller for each corner of the mouth as well as three along the top lip and three along the bottom lip.
I also wanted the animator to be able to easily move the position of the entire mouth, so I created a simple curve shape that I placed a small distance away from the mesh.
The nose was slightly simpler. I created two controllers that would allow the animator to flare the nostrils. I then created another simple curve that would allow the animator to move the nose about the face.
Finally I created three controllers for each eyebrow and a simple position controller for each eyebrow. I also decided to change the circles from the yellow as I felt it was too bright and distracting when looking at the face. I changed them to a dark blue instead.
Once I had built all the controllers I needed to start parenting them to the correct things. The nose and eyebrows were extremely simple, as the heirarchy was fairly obvious. However I had a lot of trouble finding something that would work for the mouth. I obviously wanted the controls on the bottom lip to move when the jaw was rotated. However I also wanted them to move dependent on where the mouth position controller was. Eventually I came up with the idea of creating two locators that were aligned with the jaw bone pivot point. I parent constrained one to the head and one to the jaw. I then point constrained the locators to the mouth controller. I could then parent constrain my individual mouth controllers to the relevant locators.
Unfortunately, the parent constraint on the locators clashed with the point constraint, so that when the jaw rotated the locators moved slightly and the mouth controllers disappeared into the mesh. It took me a little while to track down the problem, but once I had found it I decided to just replace the parent constraint to the jaw with an orient constraint and this fixed it.
Now that the first hand in has been and gone, I’ve been finishing off the rigging of the monkey. There were a few bones in the face that I had animated for the deform test that weren’t actually rigged. Firstly, I created some curves to control the ears and the two tufts of hair on the monkey’s head.
One of the most important things I still needed to create was some eye controllers. I wanted each eye to be controllable individually, but I also wanted the animator to be able to easily control them together. As such I decided to create two text curves (R and L) and aligned them with the eyes. I then used an aim constraint so that the eyes point at the controllers at all times. I created a third controller that would move both R and L together.
I also wanted the animator to be able to control the size of the pupil, as I have always found this to be a particularly effective tool to portray emotion when animating a “toony” character. Unsure of whether the animator would want to be able to control the pupil size from the individual eye controllers or from the dual controller. I decided to give them the ability to do it from either. I added an attribute to R and L for pupil size, and two attributes to the dual controller. I then wired these attributes to two plus/minus nodes. I have set the nodes to addition and as soon as I have the eye textures, I will wire the nodes to the scale of the texture.
Rigging the tongue was slightly frustrating as I really struggled to create controllers that could be selected whatever position the tongue was in. Initially I created simple curves that sat above the tongue. However, when the tongue was rotated upwards, the top curve disappeared into the back of the mouth.
As such, I decided to create some loops that went around the tongue and combine these with the curves above the tongue.
Yesterday was the deadline for our first hand in. Its a chance to collate everything we have done so far and hand it in to the tutors to get some feedback before the actual deadline. Obviously nothing is finished, because we still have three weeks of work left to do, but its nice to be able to show the progress so far.
When I hand in the final versions of these I will be adding text to explain the rig demos and make them a bit clearer.
Whilst I was skinning I discovered yet another mistake with my leg (and arm) rigging. When constraining the three tibia joints so that they would always stay the right distance from knee and ankle, I used a parent constraint. I had thought this would mean they would twist nicely when the foot was rotated. What I had not thought about was that this would of course affect their rotation in all three axes, and not just the one twist axis I wanted. When I started working on the leg and looking at the movement during deform tests, I realised my mistake.
The joints were rotating and so rotating the leg mesh on an axis that the leg shouldn’t be able to rotate. I had to delete all the tibia and femur constraints (including the parenting to the deform skeletons) on the IK chains. I also had to delete all the skinning I had done so far, as the deform joints were also out of position.
I used the FK joints to reorient them correctly and then used a point constraint rather than a parent constraint to control their positions relative to the knee and ankle. I then wired up the ankle and wrist controller’s on the twist axis to drive the limb’s rotation. I simply wired up each of the tiba/femur joints to have 0.25 of the twist rotation of the ankle/wrist. Combined with the cumulative rotation of the parent chain, this caused the three joints to rotate 0.25, 0.5 and 0.75 of the ankle/wrist rotation.
Then I just had to parent constrain the deform skeleton once more, wire up the various switches and I could start skinning again.
Suffice to say, lesson learnt. I will be thinking much more carefully about which constraints I use in the future.