Will Lambert 3D-Rigging 2014-2015
Monday, 15 December 2014
3D Rigging Systems: Wk12-Final Skinning and weights painting
Skinning a rig to a mesh is the process of binding the skeleton under the mesh or skin to actually influence and control the mesh's position, effectively animating the mesh. this is a fairly simple process and requires that one simply select the join hierarchy the mesh together and conduct a smooth bind operation which also applies a set of basic skin weights.
Painting weights, as it turns out, is one of the most pain staking and frustrating processes I have yet to encounter in 3D modelling and pips UVing at the post in this regard. The reason for my disdain is the fact that the entire process feels so imprecise and each action taken to correct one issue then creates more issues elsewhere. Its an unfortunate case of one step forward, two steps back. Skin weighting is essentially granting influence to certain certain joints over vertices on the mesh. It is similar in a sense to blend shapes except that it is far more complicated. In essence each joint must have total control over its own area of the mesh as well as a smooth decrease in influence away from the area as to not create sheer drop off points that look unnatural and ugly, on the other hand having too much of a smooth gradient will result in either insufficient influence over certain areas or over influence in areas which it has no business influencing. It is a delicate balance and something that is never truly finished, only that you get to a point where it works well enough for your purposes.
Painting weights, as it turns out, is one of the most pain staking and frustrating processes I have yet to encounter in 3D modelling and pips UVing at the post in this regard. The reason for my disdain is the fact that the entire process feels so imprecise and each action taken to correct one issue then creates more issues elsewhere. Its an unfortunate case of one step forward, two steps back. Skin weighting is essentially granting influence to certain certain joints over vertices on the mesh. It is similar in a sense to blend shapes except that it is far more complicated. In essence each joint must have total control over its own area of the mesh as well as a smooth decrease in influence away from the area as to not create sheer drop off points that look unnatural and ugly, on the other hand having too much of a smooth gradient will result in either insufficient influence over certain areas or over influence in areas which it has no business influencing. It is a delicate balance and something that is never truly finished, only that you get to a point where it works well enough for your purposes.
Friday, 5 December 2014
3D Rigging Systems: Wk11 Blend Shapes
There are two main methods of doing facial rigging, the first is using bones and SDKs in a similar manner to the hand and makes for a far more dynamic rig, however you can also use Blend shapes to assign quick emotions or basic controls to a face, since that is what we are aiming for the blend shapes seems to be the logical choice. Blend shapes work by moving vertices between two points, one is the default model position and the the other is the maximum extreme of what ever control you are attempting to make, for example when getting the eye brow to move up and down using a blend shape, the extreme point would be the highest point the eyebrow can move to, the blend shape then assigns all points in-between on a slider accessible in the Animation editor window in Maya.
One issue with blend shapes however is that by default a blend shape has influence over all vertices in a mesh, this means that when getting multiple blend shapes to act simultaneously, for example opening the mouth and raising the eyebrow at the same time. One or both of the controls will bug out and either not work properly or cause some horrific geometrical errors in the mesh. To solve this issue there is a tool called the membership edit tool in Maya that allows the user to deselect certain vertices from a blend shape control, for example removing the influence of the eyebrow control from the vertices controlling the shape of the mouth and vice versa.
One issue with blend shapes however is that by default a blend shape has influence over all vertices in a mesh, this means that when getting multiple blend shapes to act simultaneously, for example opening the mouth and raising the eyebrow at the same time. One or both of the controls will bug out and either not work properly or cause some horrific geometrical errors in the mesh. To solve this issue there is a tool called the membership edit tool in Maya that allows the user to deselect certain vertices from a blend shape control, for example removing the influence of the eyebrow control from the vertices controlling the shape of the mouth and vice versa.
Saturday, 29 November 2014
3D Rigging System: Wk10 further SDKs
Soon enough it was time to break out the old SDKs again, this time in positioning the fingers and thumb on the hand. It required the addition of several new attributes on the wrist controller, one for each finger and two for the rotary motions of the thumb and then positioning each joint in the finger and keying them at the maximum and minimum of their rotation, or in the case of the thumb the translation as well.
This process needed to be done for each joint and by the end each attribute controlled between 2 and 4 individual joint positions. The end result was enabling individual control for each finger and culminating in a clenched fist. This task was long and tedious but had to be done for each hand, it is becoming clear to me however that with practise a lot of these processes become very quick and easy to do, which is a bonus.
Friday, 21 November 2014
3D Rigging Systems: Wk9: Rigging with Bone, controllers and IK Handles
When starting work on the character it quickly became apparent that this task was far more complicated than initially anticipated. It required a keen eye and a general sense for anatomy, who skills that I struggled with initially. Luckily enough the model was provided for us and the exaggerated proportions made identifying the locations for certain joints far easier. While theoretically complicated, practically the task of assigning bones was rather simple and required naught more than simple clicks in places that joints should go using the Joint Tool within Maya.
Soon enough I had a decently rigged arm and it was time to add an IK handle and a controller. The IK handle is designed to allow joints to have influence other other joints, for example in the arm the IK handle links the shoulder joint to the wrist and allows the wrist to have influence over the position of the elbow and shoulder joints. A controller was added and were point and orient constrained to the IK node in the wrist to give a full range of motion for the wrist and the arm joints. Finally a locator was added with a pole vector constraint to the elbow, which in essence controls the position of the elbow.
Soon enough I had a decently rigged arm and it was time to add an IK handle and a controller. The IK handle is designed to allow joints to have influence other other joints, for example in the arm the IK handle links the shoulder joint to the wrist and allows the wrist to have influence over the position of the elbow and shoulder joints. A controller was added and were point and orient constrained to the IK node in the wrist to give a full range of motion for the wrist and the arm joints. Finally a locator was added with a pole vector constraint to the elbow, which in essence controls the position of the elbow.
Friday, 14 November 2014
3D Rigging Systems Wk8: Finishing touches and locked attributes
Locking attributes is the act of locking certain functions of an object to prevent them being manipulated accidentally or intentionally in an undesired manner, for example I have locked certain controller attributes to prevent rotating controllers being translated and vice versa for translation controllers.
I also introduced limitations to the controllers limiting the amount that they could rotate or translate where appropriate, for example the bonnet should be unable to rotate negatively in the x axis or the wheels should be unable to rotate at all in either the z or y axis.
Finally I created a parented move control placed at the top of the outliner hierarchy that allows the entire car and controllers to be selected and moved as a group.
Finally I created a parented move control placed at the top of the outliner hierarchy that allows the entire car and controllers to be selected and moved as a group.
Thursday, 30 October 2014
3D Rigging Systems Wk7: Expressions and Set driven keys
Expressions are a more advanced method of rigging and involve a basic knowledge of scripting, it is generally only used when the desired effect can be accomplished by no other means or for more complicated interactions between controllers and objects.
For this model I will be using an expression to control the front and rear suspension of the car body, I will use a controller and the translation of said controller in the Y axis will drive a rotation in each respective axle in the car. For example the Front suspension controller will rotate around the rear axle to cause the nose of the car to go up and down and vice versa for the rear suspension.
A set driven key is a similar device as an expression but can be used solely for allowing an attribute of one object to influence another. For the car I will be using a Boolean SDK to toggle the visibility of a set of spotlight objects hidden in the headlights of the car using a controller.
For this model I will be using an expression to control the front and rear suspension of the car body, I will use a controller and the translation of said controller in the Y axis will drive a rotation in each respective axle in the car. For example the Front suspension controller will rotate around the rear axle to cause the nose of the car to go up and down and vice versa for the rear suspension.
A set driven key is a similar device as an expression but can be used solely for allowing an attribute of one object to influence another. For the car I will be using a Boolean SDK to toggle the visibility of a set of spotlight objects hidden in the headlights of the car using a controller.
Subscribe to:
Posts (Atom)