Tag Archive: Mesh


Usable Rig (at last)

So yesterday, I finally got the elephant rig to a point where it could be referenced into the animator’s files. One of the major things I worked on was updating all of the controllers so that they are clearer and fit the model nicely. I foolishly assumed this would be easy, but I hadn’t reckoned on the awkwardness of the curve creation tools in Maya. It took me quite a while of just repeatedly trying to create shapes and deleting them as they failed to work. I think my determination to create things that were perfectly symmetrical possibly did not help the situation, but an assymetrical controller just doesn’t look as neat and clean in my opinion. Eventually I hit upon the idea of using the snap to vertex tool and using the edges and vertices of the elephant to help me create controllers that fit nicely to the contours of the elephants body. Having drawn a selection of curves I needed to then join all the individual curves together into a single item. This involved reparenting the individual curve shapes a single curve node and then deleting the rest of the empty nodes. Frustratingly I could find no way to tell Maya to actually combine all the shapes nodes on each curve into one single curve, but each controller selects the entire item wherever you click it, so it still works, its just not as clean as I would like it to be. I then scaled the controllers out from the body slightly and coloured them. I had hoped I could then parent these new shapes to the controllers already in existence (as I had with each individual curve to make the new controller), but every time I tried, the new controllers were rotated strangely and moved away from the body. This was due to the difference in positions of the pivots of the old and new controllers. Hoping I could avoid having to reposition each new controller I decided to instead break all the constraints and set everything back up on the new controllers. It turns out I still had to reposition the pivots, and so rearrange the shapes, but at least I knew I didnt have to spend time trying to delete the shapes of the old controllers, I could just remove the entire item.

I did, however, forget to redirect the spine rotation to the new controllers, so I had a bit of a scare later in the evening when I created a global control and tried to check that everything moved as I wanted it to. When the elephant rotated 90 degrees, the spine flipped, presenting a problem I had first encountered in my 2nd year when rigging a quadroped in 3ds Max. I panicked for a while that my IK spline spine was in fact broken and I would have to come up with a completely new set up. However after I checked the IK I realised that in creating the new controllers, I had not told it to use them to decide the rotation of the spine. Thankfully, this fixed the problem.

IKspine03a

I also needed to update the rig with the new low poly model that Paul had altered for me. I brought the mesh in and whilst trying to work out how to load the skinning from the old mesh to the new mesh, I found an option that instead replaced an old mesh with a new mesh. I tried it out and it worked brilliantly. The old mesh changed to the new mesh. However, I now had two versions of the new mesh, one that was skinned, and one that was not. Assuming that the unskinned mesh was no longer needed I promptly deleted it. A couple of hours later, when testing some other part of the rig, I discovered my mesh no longer seemed to be moving with the bones. Confused I saved the file under a new name, closed it and reopened it. To my horror, the mesh was now invisible. The outliner still showed all the various parts of the mesh, but I couldn’t get them to appear.

MissingMesha

I hastily opened my previous iteration only to discover that that file suddenly had exactly the same problem. Desperately hoping I hadn’t somehow broken every single version (and so lost all my skinning) I tried the next step back. To my relief the old mesh was there and skinned and working absolutely fine. I had simply lost my day’s rigging work, but nothing else. Deciding that replacing the mesh clearly wasn’t the best method to update my rig, I started working on saving off the skinning so that I could load it onto the new mesh. Frustratingly it seemed Maya was only giving me the option to load each bones skinning one at a time. It was doable, but a bit pointlessly time consuming. Fortunately, I knew one of my classmates, Joe, had successfully, and easily, loaded skinning onto new meshes during his project. I asked him about it and he showed me a quick and easy method. It involved skinning the new mesh to the bones (but not editing it at all) and then telling the new mesh to look at the old mesh for the skinning values. Maya can load the skinning in a variety of ways, by volume, by UV map etc. It was brilliant and loaded the skinning onto the new mesh perfectly. I didn’t even need to tweak it, though Joe had warned me I might need to. This is great to know as I now know I can quickly skin the high poly elephant to the rig (and tidy it up afterwards) as soon as it is ready. I will not have to go through the time consuming process of skinning from scratch again.

The last thing I needed to build was dynamic tail. Having already gone through the long process of working out how to do the trunk, it was simple a case of repeating the method on a much simpler chain. The dynamic output curve became a blendshape for the spline whilst the controls affected the dynamic input curve. Again, unfortunately, the rig doesn’t update its position until the animation is played, but, to my current understanding of dynamics, there is no way around this.

I also created a control for the tail that will rotate all three FK controllers at the same time. I actually created three of these for the trunk as well, so that an animator can control the entire tail (or a section of trunk) without having to select a whole bunch of controllers. Every controller I create is parented to a group (with the suffix _SDK) and that group is then parented to another group (with the suffix _0). The _0 group becomes the null group, which provides a 0 point for position and rotation. The _SDK group allows me to create batch controllers whilst still making the individual controllers able to tweak the bones position. I simply wired the rotation of the batch controller to the _SDK groups of the relevant individual controllers. When the batch controller is rotated, each _SDK group wired to it also rotates. The individual controllers parented to the _SDK groups also rotate (due to the parenting) and so rotate the relevant bones. However, because the controls are not wired to anything, the animator is still able to tweak the position of the bones individually at any time.

 Tail01a

I then set up a switch for the tail to allow the animator to blend between dynamic and FK. Like the trunk I also set up some attributes to allow the animator to change the stiffness and flexibility of the curve dynamics if they wish.

Tail02a

Finally, I added some empty attributes to various controllers ready to be wired up to blendshapes when I have the highpoly mesh. I created them in advance so that it is less likely there will be any problems with the referencing when I update the rig later on. I wanted to make sure that everything that might be animated was already in place, and so it is only skinning and wiring and not controllers that will change in future files.

Advertisements

2nd Year Showreel

And finally, its all over. Im just collating all my files together ready to hand in. Can’t believe how fast the time shot by. Also can’t believe its almost time to be a 3rd year. Crazy!!

Anyway, here is the final showreel of my 2nd year work. Unlike the longer coursereel, this does not have the entirety of my work on it. This simply has the best of what I’ve done during this major project. Plus it has music. Woooo.

Leg Morphers

The skinning is finally almost finished, and I am now working on getting the deforms as smooth and natural as possible. One of my biggest problems has been the deformation of the back leg. When the knee twists away from the body, it causes the mesh behind the leg to sink into the body and form a large indent. There are several possible solutions to the problem. The best one would be to create an extra bone linked with the leg that the mesh is skinned to that can be animated to force the mesh back out when the leg twists. However I am already behind on this project and although it would be the neatest and most effective solution, I simply do not have the time available to experiment and get it working properly. As such, I have instead created some simple morphers that can be switched on and off to fix the dent when the leg is brought forwards/twists.

 

Major Project – Dragon Progress

Originally I had intended to only need to spend a day or two updating the original dragon mesh from the advanced tech project. However I hit a huge snag when I first started editting involving 3ds Max corrupting any file in which I tried to edit the dragon mesh. Its taken me about a week to track down the problem which seems to have stemmed from using a symmetry modifier, and collapsing it down during advanced tech once it was time to texture and rig. When I then tried to edit again at the beginning of the major project and add a new symmetry modifier Max just couldn’t cope and crashed, corrupting the file in the process.

This has unfortunately already pushed me behind schedule and leaves me scrabbling to play catch up. None the less, here is the finished dragon mesh, now with wings and a tidier back (which it did’t have during advanced tech).

 

 

So, I said weeks and weeks ago that I would upload a slightly slower version of the wasp turnaround. Here it is… at long last!

 

Soooo… the trouble with a busy, manic course is that there is no time around the work to actually keep this blog up to date. Looks like I may have to try and set myself a time once a week to sit down and make blog posts. However, since I have found an oppurtunity today, I shall take full advantage of it.

The rest of the first two advanced tech course works involved modelling a realistic hand in one week and then rigging, skinning and texturing it the next week. To practice skinning techniques we also had to rig and skin our bug in another 24 hour session. Needless to say, it was a pretty intense couple of weeks. Still, the modelling side of things turned out pretty well. I struggled at first while trying to get my head around the idea of “edge loops”. This basically means keeping the flow of the edges around polys moving nicely around the model and trying to ensure there are as few as possible, so that they actually just loop around and connect in various places.

Skinning and rigging the wasp turned out to be a real struggle due to a few mistakes made during my modelling process. As I had modelled the legs quite bent, it was impossible to make them straighten nicely with the rig. Also, thanks to a lack of edges around the leg joints the bends were very untidy.

Having completed the wasp, we moved on to rigging and skinning the hand. This went very well and I had it mostly completed on Friday before stumbling across an error. One of my tutors helped me to find a work around for the problem and a way to reload all my work on to the rig after the fix. This worked great on the Friday. However, I came in on Monday expecting only a small amount of skinning left to do only to find that the fix I had been shown on Friday had now deleted all my work and I had to start again from scratch. Unsurprisingly I was absolutely gutted and this seriously affected the quality of my skinning. There were several errors I failed to notice in my rush to get everything complete and I watch my deformvideo now with frustration that the deforms are so much poorer than my first attempt.

We also then had to texture the hands. Rather than using photoshop, we used procedural texturing, using various noise algorithms to create the random colour changes etc that you see on skin.

Finally, once the hand was rigged we also needed to pick a final pose and animate the hand moving into this pose.

A Bug In 24 Hours

So… with the usual throw you in at the deep end attitude that this course has, we were introduced to the basics of modelling within 3ds Max. It was a good lecture, very interesting as I have not really done any modelling (excluding the fruit bowl) within Max. So after a mornings lecture/demonstration of all the important modelling tools we were informed we had 24 hours to model an insect of our choice. Unsurprisingly the artists all coped reasonably well with this deadline, but us animators struggled to get going. None the less I battled on through and just about made the deadline… and then realised I had half an hours worth of rendering to do before I could hand it in. Whoops!! That will teach me to not think of these things earlier!

Anyway, I was rather pleased with my model, pretty good for a first attempt I felt. I provide you all with a turnaround to form your own opinions! The turnaround is currently extremely quick as I reduced the frame count somewhat to try and get it to render as fast as possible. When I get a chance in the next few weeks I will re-render it at a slower speed so that you can actually get a proper look before it spins away!!