Tag

Technical Art Rigging Progress

Advanced Features

By | Technical Art Applications | No Comments

Along the way I have also been tidying up the rig. Most controls have now had selected attributes locked and hidden. I’ve disabled scaling on almost all joints and some joints are unable to be translated where they are only used for controlling the orientation of a joint. This overall improves usability and readability of the rig and where possible prevents the user from breaking the rig.

I’ve added a few advanced options here and there. First up are the feet which have a number of added attributes such as roll, twist and lift options for the heel and toe. To do this a number of groups were created within each other, each controlling the rotation at an appropriate pivot point. These were then connected to the attributes using the Hypershade connection editor.

While all the functionality is there, the deformation isn’t too great. The skinning isn’t the main problem rather it is the way the joints rotate. I think this is a similar problem to the issue I was having prior to adding IK solvers. Rotating with small values gives the correct result but when you push the rotation the joints move in weird ways. This is something I was unable to correct through troubleshooting and if I had more time would focus on correcting this but I feel this would need to be edited right back at the joints, perhaps their local rotation axis or placement.

In addition the skinning isn’t perfect on the shoes due to the complex mesh and the deformers aren’t perfect either.

I wanted to do a little bit more with my blend shapes. To access them before would require you to open up the blend sheet window and the sliders would be easily accessible from there. This method wasn’t entirely user friendly and would probably be missed as its not obvious they exist. To combat this I’ve added an extra controller that follows the head controller. This new controller holds all the blend shape deformers as attributes which can be edited just as you could with the blend shape window.

I figured I didn’t have the time to look into creating a floating user interface but this would do the job pretty well. In addition to this there is also a face animation camera, accessible through Panels > Perspective > MeryFaceCam which is locked to the head as it moves. The facial animation controller is located conveniently so it can be accessed while using this camera.

I also included an additional variable in the eyes controller which allows you to switch between following the head controller or locking it to the master controller’s world space (with the help of this tutorial). This allows you to move the rig around and the eyes will stay locked in one place. This is something I’d also like to add to the hand controllers if time permits.

Finally I’ve added some functionality in the wrist designed to help it deform better when rotated. Also using the connection editor I fed the rotation from the wrist controller into another joint located within the forearm. As the wrist controller rotates, the forearm joint will rotate 50% of its value. This has proven to work well while skinned.

Skinning – Continued

By | Technical Art Applications | No Comments

Skinning is definitely a time consumer. Not exactly difficult but it requires a lot of focus and tedious detailing to get the whole thing looking great when its animated.

Thankfully I found out about the ‘Mirror Skin Weights’ which has helped out a whole bunch with repetitive tasks. The only area that required editing after mirroring was the other hand as the joints weren’t exactly identical on either side (can’t remember how, think it was to do with pole vectors moving them) but that was sorted too.

The hands themselves have been quite a lot of effort on their own compared to the rig as a whole. On the whole the skinning is fine on them but not perfect. I’ve been unable to correct my weird thumb rotation axis thing and its not looking right at all when bending. Skinning was fine on it although not as easy as on the other fingers but the set driven key I put on it earlier is not working out for it at the moment with the thumb doing some unnatural movement. Set driven key took so long the first time I did it I’m unsure if I’ll be able to attempt a correction on it. Like the feet, rotating small values is fine but pushing it results in unnatural movement.

One thing I am happy with is the skin weights on the jaw. I’ve managed to fix this right up with the lips deforming much smoother and the neck moving better than it was before. I’ve also attached the teeth to the appropriate joint (although for some reason the upper teeth would not show its faces, had to re-import this part of the mesh). Of course there’s always room for improvement, I’d like to add more influences on to the cheek and upper lip to get it looking better.

I also got some decent deformation in the pelvis both where the legs bend and when the spine bends. Not getting volume deformation in the buttocks and making sure the spine didn’t go bumpy required a lot of time with the smooth brush to get a good result.

Most of the recent tweaks have mostly been going around with the add brush and adding low percentage influences on one joint to a neighbouring joint in order to achieve some more realistic movement that there is an influence of one joint to the other.

I would say that I’ve fixed most volume loss issues and each joint deforms as it should. I had to do many test animations to identify problem areas. The wrist skin weights were particularly tricky but having gradient influence from the wrist all the way up the forearm solved this.

The neck and chest didn’t require much editing but the clavicles were hard to work out. I’m not entirely satisfied with the movement the clavicles are giving but I think this is more from the way I connected up the joints and would want to spend time editing this either by adding in corrective joints or adding translation controls into the control shape. More skin weights influence from the upper arm into this area wouldn’t go a miss.

As of right now my biggest concern with the rig is actually with the wrap deformers. I was confident from my earlier testing that it would work fine but this is a problem I wasn’t able to foresee. With wrap deformers on all the necessary objects the rig is considerably slower to manipulate, there’s some noticeable lag. This disappears when the wrapped objects are hidden so I’ve added an attribute to the master controller that turns the visibility of these meshes on and off, just so you are able to take a look at the (naked) rig with no lag issues. It’s frustrating that this was one of the last steps in the rigging process and it was one that had a disappointing result with so few time to correct it. I have tried most of the different settings in the wrap deformer as well as combining meshes and wrapping those but I’m not getting any better results. Unfortunately my slightly laggy rig will have to do as I am unable to get any better results without drastically changing how the clothes are implemented into the rig.

Skinning

By | Technical Art Applications | No Comments

Now that each limb is rigged I have connected the hierarchy for the the rig. Making sure that each limb goes with the correct body part it should do. After that I began the process of skinning.

(Incoming mini rant, skip to after bullet points for actual important stuff)
I encountered a major problem at this stage which prevented me from moving on to the skinning for a few days. The paint script weights tool did not like me and would refuse to show joint influences on the model. I tried different skinning options on different computers on different versions of different models (also resetting all maya settings). I also messed around with every available option in the tool and checked all display options available to me in the scene. Not only that but even the lists of joints was unresponsive and would sometimes show and sometimes not. I tried troubleshooting this via the internet and it seems like a very common problem but no one method of fixing it. A lot of people had got it working through re-skinning it, or toggling an option on and off but I couldn’t get it to work.

But after a lot of playing around I had discovered my method to fix it which I noted down so I would remember for future uses:

  • ‘Smooth Bind’ with ‘Normalize Weights’ set to ‘Post’
  • Open ‘Paint Skin Weights Tool’
  • Set ‘Normalize Weights’ to ‘Interactive’
  • Select vertex on mesh
  • Select ‘Show influences on the selected verts’

Then the influences would magically appear. The weirdest method ever but if it works I’m not complaining. Unfortunately the colour ramp options were broken for me and would only appear in orange but at least I had something.

The above picture shows the result of the initial skinning, as expected. I have went through the joints and flooded out influences where not needed and fixing any major “you shouldn’t be there”s. By keeping normalise weights on means I was able to avoid any “jumps to the origin” or unexpected movement.

I have done some work on fixing volume issues such as on the knees and a little bit on the spine. The skinning progress as it stands right now is each part of the body is moving with the part of the body it should be and that there are no crazy deformations. Volume loss is still present on the elbows and wrist twist. The feet don’t bend so great right now and more time is needed to fix up the smoothing on the rather detailed mesh.

The head and neck are pretty much fine but the jaw is moving a lot of what it shouldn’t and not deforming naturally. I’ve used a surface soft select to get the lips separated but I’ve not went into any detail fixing it yet.

I’ve tested using wrap deformers on the clothes to make sure they bind and move with the mesh and it seems to work as expected, even covering up some of the bumpy work I’ve got on the spine joint influences (but that’s cheating).

Moving on from here is simply fixing up anything I’ve mentioned so far as well as trying out as many poses as I can to make sure every controller is deforming the mesh correctly.

Blend Shapes

By | Technical Art Applications | No Comments

As my character rig is for animated films rather than games, I will be using a blend shape system for facial controls over a joint based system. Blend shapes work a bit like keyframes, where you set multiple poses on different faces, then on the main face controller you can blend between them.

The ‘MikeAndTina’ and rig I’ve mentioned previously uses blend shapes combined with a floating interface for interacting with these blend shapes. For now I’ve built the control shapes and will consider any user interface as an advanced feature later on.

As the mesh for my characters face is included in the mesh for her entire body, I had to extract the head from the body to be able to use as a blend shape. I used this YouTube video to work out how to extract the head. I discovered an issue with my character model that was seemingly unique to this model whereby when I cut the head from the body using ‘Detach Component’ the skin shader would seemingly trip out and produce a strange pattern. I tried troubleshooting many ways to fix this including removing all shaders, applying new ones, changing display modes and looking at vertex colouring but there seemed to be no fix. I had to re-import the skin mesh from another exported version of the character model for it to work. Thankfully it did work out in the end but I still haven’t worked out where the issue came from.

Once my the head was detached and duplicated, I re-combined the original meshes (making sure to do so correctly without changing the vertex names) and merged the vertexes back together on the joint. The duplicated head would not be a blend shape itself but would be a base mesh for blend shapes to come off from that. The base head would then connect itself to the main mesh so to transfer the blend deformations over when used.

Blend shapes is another thing that a lot of time could be spent on. Many rigs that use blend shapes have a comprehensive selection of deformations that can be controlled. As my time was limited and I wanted to move on to skinning I decided to create a selection of blend shapes that would cover most facial expressions but that may not be as extensive as other rigs. However if time was given, creating more blend shapes from the base head is always a possibility.

In total I have 14 blend shapes that control the opening of each eye, the raising of each eye brow, mouth raise on both sides, a pout and wide mouth position, and a few more.

The soft selection tool came in handy here, in surface mode it was useful for opening the eyelids as well as deforming the shape of many facial features.

If I were to add more blend shapes I could add more deformers to the eye brows to change their shape, controls for cheek muscles, more mouth deformers, nose deformers and more eye lid deformers. All of these take time so I will consider adding more later if time permits.

Spline IKs and IK Solvers

By | Technical Art Applications | No Comments

My rig’s skeleton and control shapes are progressing well but I’ve fallen behind on adding in IK solvers. I’ve taken the time to set these up before moving into the advanced features and setting up the hierarchy of controls.

I should mention I have now set up my spine. This uses a Spline IK connecting the bottom and top of the spine joints. Clusters are added to control three different parts of the spine. The middle controller automatically positions itself between the other two controllers.

Using the connection editor I’ve also added twist and roll setup to the spline controllers for additional functionality.

I had some trouble with this whole procedure having to re-do the process when I didn’t correctly position the control shapes. I almost had to re-do the procedure again but using freeze transformations on the controllers (which had somehow again de-positioned themselves) I was able to avoid that. This is something that could be automated easily for a scripting tool. I may want to consider that if it decides to break again.

I’ve had to return to IK solvers as somehow was unable to build them when they were discussed in class initially. I think this has to do with how long it took me to do the set driven key (which is quite tedious) and learning the ropes about building control shapes.

Its been a while since IK solvers were mentioned so I’ve looked over the documentation on them and brushed up my knowledge on how to build them. I’ve now added IKRP solvers on the legs and arms, and two on each feet to stop them from rotating when I move the legs. These extra IK solvers will be used when I add advanced attributes to the feet later on.

Another issue to mention here is that my character model’s feet point out to the side a bit instead of straight ahead. This along with the joint orientation means when adding in a pole vector constraint the leg tends to rotate out of position. I was initially unable to fix this (others had this problem and scripts were being used) but I just translated the rotator along and it rotated the foot back into position (although not back in the exact same position, I remember this is not entirely necessary, it was good enough). It does mean my knee locators are not located in front of the knee but instead are a little bit off to the side. But if the feet are not pointing forwards then the knee isn’t either so I am happy this will be fine to work with.

I had the same issue with the wrists snapping out of place when adding a pole vector constraint but learned that adding an orient constraint between the joint and the wrist first before adding the constraint meant no joint movement occurred.