Friday, 18 March 2011

Post 10 - 3ds Max: Alternative Spine

In order to broaden my knowledge of the possibilities of bones in 3ds Max, the training / reference DVDs provide a different way to create the spine. The basic premise is the same for the original spline, but the first spine was unable to stretch and could only create curves using the spline controls.


This spine has been created by making a spline line. A series of spine bone were then created. point helpers were constrained to the spline line at even points. The bones were then position constrained to the helpers and a look at constrain was applied to each bone. The bones were then orientation constrained to both a spline controller, and another helper (small green cross). The linking was shared between these two (same as the first spine) so that it was a smooth transition of poses. This method allows for more control over the spine as it allows for the same poses by rotating the controls; but allows allows for the spine to be stretched and repositioned. This is great, but the only downside is that there is a lot going on in the scene and so many of the helpers need to be hidden (such as the helpers connected to the spline line).


As seen in the image, primary work has also been done to create an arm.


IK Spline spine clip - LINK

Post 09 - 3ds Max: legs and feet

The next area I created using 3ds Max bones are the legs and feet. These were done using two separate bone hierarchies (one for the leg and one for the foot) and then lining them up together. The leg was given a HIIK Solver (History Independent Inverse Kinematic), which allows for it to be controlled in a reactive way. The foot was given a controller, and then a series of custom controllers were created using MaxScript. It is possible to create menus using the menu creator, but this allows for the menus to be edited at a later date.

One series of 'spinners' and 'sliders' were created for the foot, which was then animated and keyed in a series of pivot extremes. This data was then connected by assigning a 'float reactor' controller. This allowed to connect the motions to the corresponding control. These were then wired using wired parameters and resulted in a foot which can be controlled in the command panel.



Here is the Max Script for the controls ($ = currently selected item):

ca=custattributes.getDef $.modifiers [1].footControls
attributes footControls
redefine:ca
(
    parameters params rollout:footR
    (
    footRoll type:#float ui:footRollSp
    toes type:#float ui:toesSp
    knee type:#float ui:kneeSp
    )
    rollout footR "Foot Controls"
    (
        local range=[-90,90,0]
        group "Foot Controls"
        (
                spinner footRollSp "Foot Roll" range:range
                spinner toesSp "Toe Wiggle" range:range
        )
        group "Leg"
        (   
                spinner kneeSp "Knee" range:range
        )
        group "Keying"
        (
                button resetAll "Reset All"
        )   
        on ResetAll pressed do
        (
                footRoll=0
                toes=0
                knee=0
        )
    )
)
--custAttributes.add $.modifiers[1] ca

The knee on the IK leg currently was determined by the starting point of the end joint. This was changed by telling the IK goal to be the nub of the ankle. This means that the knee now points in the same direction as the foot. However, this was also given an override spinner in the same control panel as that of the foot. Using a 'Float Expression', the leg was also given the ability to stretch (in the event of the animator needing extra flexibility in a scene). This also means that when it is skinned, the mesh would not break.

An important consideration that Paul makes in his DVD is that when making a set of bones with the intention of applying an IK Solver on it, that the rotational position of the two bones are unaltered and straight. If this is not the case, then the IK Solver would want to bend in two different directions (triangle effect). This will be also applied to the arms later on.



: NOTE - CLICKING ON IMAGES WILL GIVE A FULL SIZE OF THE IMAGE FOR CLOSER VIEWING




IK Legs and feet clip - LINK

Post 08 - 3ds Max: Spine Bones

I have started to construct a rig from custom bones with the help from a training DVD series titled 'Intermediate Rig Set', by Paul Neale. This set of training DVDs gives handy advice and methods for creating a detailed and high quality rig. So far, I have created an IK spine. This was created using the bone tools, then refined by the 'Edit Bones' panel. The spine itself cannot be repositioned as the various sections of bone have been linked up the various controllers, which dot around the model. These controllers were simply constructed by creating a spline circle, then duplicating it twice on the other axis. These were then grouped together, resized using the Xform modifier and then converted back into a spline shape.


Each upper most and lower most bone sections have been directly linked to their corresponding controller using orientation constraints (and so will only rotate when the controller is rotated). But for the two middle bones, these have been linked with more than one controller. When this is done, they share the influence from the controllers and evenly distribute it along a series of bones. As one will be effected %65 to a movement, another may be effected only 35%. If the highest spine controller is pulled, the upper area will be affected more then the lower back area, and visa versa.  This allows for a very flexible and yet controlled bone hierarchy. The head bone is directly linked and orient constrained to the controller above it. This results in the ability to control the spine, whilst the head (or eye line) remains intact and unaltered.

The controllers were then linked to the waist control (spline circle). This allows for the whole of the rig to be moved without disrupting the positions of the bones. Advanced versions of this allow for all but the hands to be moved in this fashion. This is good for when the character is required to hold onto an object, but the waist needs to be moved. The hands would remain in the same spot.

FK Spine clip - LINK
Intermediate Rig Set DVDs by Paul Neale - LINK
Paul Neale Wensite - LINK

Tuesday, 15 March 2011

Post 07 - Topology Consideration One: Joint Edge-loops


One thing I have come up against during the biped rig was deformation of the model around joints that require significant freedom of movement. For example, the shoulders and legs joints would become deformed and stretched when rotated an excessive amount. This was an issue I was previously aware of but until I saw how each area reacted to this, I could not act on it.

The solution to this was the need for extra edge loops where joints were to be manipulated. By adding extra edge loops, around these problematic areas, the envelope's surrounding the biped and model were able to be manipulated correctly. The vertex weighting could be more evenly spread on the surface and so created a much smoother (less stretched) result. This was edited in 3ds Max and will be the model used for future rigs, in both 3ds Max and later on Maya.

Before and After


- Image one is the original model. 
- Image two has had added edge loops around the shoulders.




Thursday, 10 March 2011

Post 06 - 3ds Max: The Biped


One method of creating a rig is the Biped rig. This is a pre-fabricated rig, inside of 3ds Max. Additional digits such as the number of fingers, toes and 'knuckle joints' can be added. The user would then scale and fit the rig into the appropriate model. Other basic options include the ability to plan out a walk or run cycle using 'foot prints', which the rig would then follow.

I applied the biped to the ZBrush model. This was scaled to fit inside the model and then attached (or 'skinned') using the 'physiques' modifier. The main method for attaching a rig is known as 'skinning' and usually is done so using the 'skinning' modifier (in other words, the physique modifier is used less and isn't as well known). Once applied, each limb and joint has what are known as 'envelopes', which are pockets that surround the limbs and determine the amount of influence the corresponding limb or joint as over the model (skin to bone). These then had to be tweaked and manipulated in a variety of ways in order to get the desired result (such as parent and child blending, plus positioning and scaling of the envelopes).

When using the biped rig, it is very easy to have an unwanted skin deformation, which looks messy and is certainly not of an industrial quality. 'Fall off' and editing of the vertices' weight would usually reduce this issue, but it was very difficult to irradiate this completely when working on a biped rig (this can be seen mostly on the hip joint connecting the legs). The resulting rig is the first rig I have successfully made and applied to a model. The following is a list of what is controllable for position and rotation:

Head, neck, all fingers and thumbs, hand/wrist, lower arms, upper arms, clavicle, chest, spine (four joints), hip, thighs, lower legs, ankle, heal and toes (toes all move together).


This rig however has only a small amount of IK (inverse kinematic) components; so as a result of this can be awkward to animate. For example, when rotating part of the spine, some parts of the rig are affected by this and other parts are not so much. In addition, there are no controls assigned to the rig, so manipulating the rig is done by freezing the model, so that selecting parts of the biped would allow control over it (although controls are something that I will be covering in due course).

This is a very basic rig and has very little in the way of features. However, as this is my first rig, I am happy with the outcome as it has allowed me to demonstrate one method of rigging. This rig would be most suitable for a very basic/simple biped character, which didn't really need a lot of time spent making every aspect of it perfect. Examples of this could be audience or spectator characters in a racing / tennis game where the attention is not on them, but on the main happenings of the game. The biped rig has been included with 3ds Max for a considerable amount of time, so it can be said (as mentioned earlier) that it is quite dated and isn't particularly used in the animation or games industries. However, in reference to the difficultly and production time, it was very quick to create and size up. The envelopes and skinning took a little longer but overall it took a matter of a couple of days, so this was beneficial and would suit a situation that required a quick mock up or visualisation.

As a result of making this biped rig, I have learnt how to make, scale and skin in 3ds Max on a basic level. I have also been introduced to some useful tools such as the ability to copy joint positioning coordinates and mirror them onto the other side (left leg to right leg, etc). In addition, I have also began to understand the importance of envelopes, as well and vertex weighting and how to manipulate them. The video below shows the skinned rig, although it is quite clunky and is very basic. It also demonstrates problem ears such as the back of the legs, the pelvis-leg join and the arm joints.

Biped Rig / Skin clip - LINK

The next stage is to look into custom bone systems in 3ds Max using the DVD: The Intermediate Rigging Kit by Paul Neale. as reference.

Here were a couple of web links I used to get started with rigging (namely, biped rigging).

3ds Max Rigging Tutorial - LINK
Second 3ds Max Tutorial - LINK

Tuesday, 8 March 2011

Post 05 - 3ds Max: Bones First Attempt


Character Rigging Workshop PDFs.


My first introduction to rigging began by attempting to follow a set of three tutorial PDF files provided by Joe Russo. These were aimed at teaching how to make and eventually skin an intermediate rig using 'bones'. This featured twist bones, IK (inverse kinematics) joints, and use of layers, freeze tool and bones attributes. I also started to look into creating custom bone controls.

I got as far as I could, but unfortunately I struggled as it is an intermediate tutorial and felt that I was slightly out of my depth. Two areas that I began to fail were as follows:

- Creating twist bones, which were supposed to be over-laid over the original forearm bone.
- Custom control pivot points: altering the pivot point of a control and linking this to a joint, so that it is possible to control a joint positioned at 'A', but with the control's pivot point still residing at Position 'B'. At my current level of rigging knowledge, I was unable to continue on with this.


However, when solutions become apparent, I will address these problems in a later post.


Tutorial PDF - LINK

Post 04 - Proposal Submission

The task one - NSD proposal has been finished and submitted. I feel confident that it is a good piece of work and includes a realistic weekly planner. I will attempt to follow as closely as possible (but I am aware that aspects and areas may change or time).

The next phase is to start following the weekly planner and start to learn the basics of rigging, what is available in the listed software packages and what useful sources and teaching aids there are.

Basic pipeline so far will be:

3ds Max

Biped / CAT / Bones (also bone rigging for face, once Maya rigging is complete)

Maya

Joints / Blend Shapes (facial)

I want to start looking into the various techniques avaliable in 3ds Max, but I am aware (trohugh my research) that Maya has a large presence in both CG film and games industries. For this reason, I wish to look at 3ds Max initially, then move onto joints systems of rigging in Maya. I have chosen to look into facial bone structures in 3ds Max and blend shapes in Maya for a couple of reasons. I wish to look at the two different systems and I want to look at the different methods, so it is an attempt to 'mix it up' a little.