Monday, 3 May 2010

Evaluation / Reflection

0 comments

Experiences

Overall I personally feel that this assignment of 3D Character Animation was well received and I particularly enjoyed learning how to use the Morpher Modifier to simply animate a character’s facial expressions. The learning experience as a whole has been exceptionally challenging  especially regarding the sheer extent of 3DS Max’s animation tools which are first were intimidating but gradually comprehended.

 

The main downsides I experienced was the complexity of adjusting the envelopes and vertex weighting in an attempt to help the mesh to deform properly according to each of the bones. This was perhaps due to the detail and subsequent number of polygons the created character model consisted of. In addition prior to this assignment I have had limited experience regarding character animation and believe that with hindsight these problems could have been avoided by creating a simpler mesh for example.

 

Final Animation Review

Despite all of the hard work devoted to creating, rigging and skinning my Ice Skater character I was extremely disappointed with my final animation which was hastily conducted after a limited production time  imposed by other projects. Severe problems within 3DS Max crippled my animating capabilities as I was unable to even preview the animation within the application which was very unresponsive due to unknown reasons beyond my control. For this reason the final animation was also split into 4 separate parts which made the animating process slightly more manageable.

 

Improvements

Looking back if I was to repeat this project a simplified character would have been created to avoid potential technical problems during the skinning stage of adjusting bones envelopes and applying the necessary weight to vertices. I originally intended recreate a typical figure skating performance incorporating the associated body language of concentration and emotive facial expressions however this was inadequately achieved which is rather disheartening.  Despite this though key skills were gained regarding how to use a range of animation tools which I believe will prove beneficial in future projects.

Animating

0 comments

Pose to Pose Animation

Pose to pose animation is a technique used within Character Animation to rapidly transit between complex poses using natural motion, limiting the need to manually manipulate each individual limb of a character to create a new pose by key-framing.  Subsequently numerous poses were created to simulate body shapes and movements typical of Figure Skating, these poses were determined via watching the earlier researched video of which screenshots were then taken.

 

To start with the default stance of the Ice Skater Character in T-Pose was set at Keyframe –10, then for each Keyframe leading up to 0 different Poses were created ensuring that “Auto Key” was enabled to record each bone position.

 

Pose recreated from Research Video

Posing01[1]

 

 

 

Created Figure Skating Poses

T-Pose[1] Pose01[1] Pose02[1] Pose03[1]
Pose04[1] Pose05[1] Pose06[1] Pose07[1]

(Click each thumbnail for Full-Size)

 

Animating the Character

Before proceeding with the animation process, essential principles of Character Animation were considered to enhance the potential quality of the final animation. Firstly all human movements occur in a natural arching motion rather than in a straight line i.e. from A to B. Additionally when a person raises their arm it will go slightly higher than intended then move back into position for example. This is known as “Drag” and significantly helps to add realistic flowing motion to an animation. The previously created pose frames were copied and distributed along the animation timeline within 3DS Max. Between these poses arching movements and Drag effects were implemented where possible to improve the realism of the Skating animation whilst Auto Key was enabled.

 

Animating Ice Skater Spin

AnimationProcess[1]

(Click Here for Full-Size)

 

Issues…..

Conducting the animation stage was exceptionally troublesome as 3DS Max became unresponsive due to an unknown reason. This made the animation process virtually impossible to implement as the character motion could not be smoothly previewed by scrubbing along the timeline. Consequently the character’s movements were approximated as I was animating almost blindly. Due to this the final animation dramatically suffered and I’m extremely disappointed based on all the hard work dedicated towards modelling the mesh, fixing the envelopes and creating strong  poses. Additionally pose to pose animating didn’t work correctly,  therefore smooth transitions between poses were not achieved resulting in sudden changes and jerky movements. In some cases alterations were made to the character’s position for example, but were not recorded once the file was saved and re-opened, this wasted vital time as poses had to be remade or even scrapped.

 

Final Character Animation

Morphing

0 comments

Creating Morph Targets….

The “Morpher” modifier within 3DS Max is a powerful tool ideal for character animation especially regarding Facial Expressions. The Morpher can be used to recreate emotions such as Anger through “Morph Targets” which are clones of the original mesh that are manipulated to represent intended expressions. Multiple Morph Targets can be applied at once using the “Channel Mixer” under the Morpher Modifier menu. Generally Morph Targets are best used when animating dialogue for example different Phonemes can be created to aid in animating a character talking. Considering that the final animation is intended to reflect the body language of a figure skater based on movements and facial expressions, dialogue is not deemed necessary and therefore will not be implemented. However a limited number of Morph Targets were still created to provide the ability to portray facial expressions during the end animation.

 

The first Morph Target created was that of the character smiling, this was achieved by creating a clone of the existing mesh and all unwanted polygons including the entire body were hidden to focus attention on working with the face.Vertices either side of the mouth were moved upwards to simulate the rising cheeks typical of a human smile. The mouth itself was also transformed into a natural smile shape, arched backwards slightly to compensate for the teeth which would be present behind the lips. Two more Morph Targets were also created to enable the ability for the character to blink, therefore one was made with the left eyelid closed, the other with the right eyelid closed. These Head Morphs were then added as Targets to the Morph Modifier where they could be dialled in & out using the Channel Mixer when later animating. The Morph Targets were then hidden by assigning them to a separate layer so that they would remain out of the way during the animation process and additionally improved the FPS performance of 3DS Max as less geometry was visible.

 

Facial Morph Targets

MorphTargets[1]

(Click Here for Full-Size)

Skinning

0 comments

Applying  the Skin Modifier….

In order to actually animate the character the previously created skeleton has to be attached to the mesh so that it can deform according to the bone placement. Firstly it was ensured that all earlier created bones were in the correct positions and centred inside the character mesh. A “Skin Modifier” was then applied which automatically assigns envelopes to each bone, i.e. vertices of the character mesh surrounding each bone are assigned to the bones movements. A similar modifier called the “Physique Modifier” could also have been used for this process, its advantages over the Skin Modifier are often debated however it is said that the Physique Modifier offers greater control when adjusting the envelopes and includes different features such as Bulge & Tendon editors. [1] 

Given more time both of the modifiers would have been tested for their apparent benefits, however due to time constraints and other module commitments this was not conducted.

 

Initial Palm Envelope (Too Big)

InitialEnvelopes[1]

(Click Here for Full-Size)

 

 

Envelope Adjustment & Vertex Weighting

From the example image above of the initial “Palm Bone Envelope” it can be seen that the envelope is far too big, engulfing most of the fingers and wrist rather than focusing on the palm area.The colour gradient ranging from blue to red signifies how much “Weight” is on each Vertex, in other words how much the bone is linked with them. Consequently each of the bones envelopes within the entire skeleton had to be adjusted to affect the appropriate parts of the character mesh. To aid the workflow of this process basic animation was implemented by enabling “Auto Key” on the timeline and each joint / bone combination was moved to preview the effectiveness of each envelope.

 

Testing Envelope Assignment with Basic Animation

TestingEnvelopes[1]

(Click Here for Full-Size)

 

 

To fix the palm envelope for example all the unwanted vertices over the fingers and wrist were selected and then disassociated with the envelope using the “Exclude Selected Verts” button found under the “Weight Properties” rollout menu of the Skin Modifier. Similarly Vertices that were left behind once the bones were moved had to be weighted with the corresponding bones using the “Include Selected Verts” button. Adjusting the weight on each Vertex was immensely time consuming however it was necessary to improve the quality and realism of the end animation. Major problems were experienced during this phase as the rather complex character mesh made it extremely difficult to sufficiently weight and adjust each of the envelopes. Consequently the end animation is likely to suffer slightly, although it was felt that an reasonable effort was made in an attempt to fix these issues based on limited experience with this complex process.

 

Weighting Properties / Vertex Exclusion & Inclusion

WeightPropertiesMenu[1]

 

 

Morphing Gizmos – Joint Angle Deformer

Another tool however was used to help the Weighting especially regarding overlapping/folding sections of the mesh around the knees, elbow and armpit areas. A powerful feature under the Envelope adjustment menu is called “Gizmos” and consists of three specific Morphing tools which are designed to fix these types of issues. The one that was implemented in this case was the “Joint Angle Deformer”  which adds an editable Cage surrounding a selected group of Vertices allowing them to be pulled outwards to rectify the shape of each major joint in the mesh. These were applied to the knee, armpit and bicep joints to marginally reshape the mesh between bones when it is deformed by movements.

 

Knee Joint “Before” Joint Angle Deformer

KneeBeforeJointAngleDeformer[1]

(Click Here for Full-Size)

 

 

Knee Joint “After” Joint Angle Deformer

KneeAfterJointAngleDeformer[1]

(Click Here for Full-Size)

 

 

Mirror Mode – Pasting Bone & Vertex Weights

Up to this point only one half of the character mesh was Weighted as effectively as possible. The other half of the bones still required envelope adjustment; to save having to repeat this involved process again a convenient tool known as “Mirror Mode” was enabled to copy the Weight and envelope properties to the other side of the skinned mesh. Once this button is activated each half of the character’s  mesh is highlight either blue or green. Either colour represents each half of the skin modifier based on a chosen axis, defined by using the “Mirror Plane” dropdown selection box. Additionally the threshold of this mirror feature was adjusted to ensure all of the desired Vertices either side of the Mirror Plane were selected. The two paste tools were then used to copy both the Bone Envelopes and Vertex Weights from the left side of the mesh to the right, namely the “Paste Blue to Green Bones” and “Paste Blue to Green Verts” buttons found under the “Mirror Parameters rollout menu. The results of this mirror process can be seen in the images below, represented by the green and yellow halves of the character mesh. Yellow being the previously adjusted envelopes / weighted verts and Green displaying the affected half pasted to.

 

Mirror Mode Menu

MirrorModeMenu[1]

 

 

Pasted Blue to Green Bones

MirrorModeBluetoGreenBones[1]

(Click Here for Full-Size)

 

Pasted Blue to Green Vertices

MirroredVerts2[1]

(Click Here for Full-Size)

 

 

Although the Mirror process was somewhat successful it did not conduct a perfect job as either side of the mesh was not exactly symmetrical therefore some of the envelopes were marginally off. Another annoyance was that the Joint Angle Deformers were not mirrored and these therefore had to be recreated for the right side of the mesh which exhausted valuable production time. The skinning process overall was extremely frustrating especially regarding the character’s hands which were hard to rectify in terms of Weighting and Vertex association due to their intricate composition. Due to this the final animation will not look as realistic as originally intended, which is rather disappointing as a considerable amount of time was exerted towards these tasks.

References

1. 3D-STUDIO.ORG, 25th November 2009, 2009-last update, Physique vs. Skin. Available: http://3d-studio.org/Peachpit.Press-Inside.3DS.MAX/0735713871/ch15lev1sec3.html [May/03, 2010].

Bones & Rigging

0 comments

Skeleton Creation

Since the character has now been successfully modelled as well as fully textured the next step before implementing the animation stage was to insert the necessary bones and helper controls. Prior to creating a skeleton, it was first debated as whether to use a pre-made biped or custom bone system. The later was chosen as it offers a complete control of how the final character will animate, rather than being limited to the biped’s specific movements. The only downside however is that custom bone systems take comparatively longer to setup than the biped but should benefit with more precise character movements and body language.

 

Leg Bones

To begin with the bone tools were accessed under the “Systems Menu” of the “Create Command Panel”. Given the fact that bone chains operate on a parent / child hierarchy the first bone created was the hip bone for the top of the character’s left leg. From this another bone was angled forwards in the side viewport for the thigh and then another angled backwards in the opposite direction for the shin bone. These angled bones pointing towards the knee joint are not biologically correct, however producing them in this method will aid the IK chain to detect which direction the leg should bend. Constructing the legs in a purely vertical fashion could cause the leg to bend backwards which is obviously undesired and can prove problematic to rectify. Leading on from the shin a small nub bone was left for the heel and only one bone was created for the actual foot, this was purposely done considering the fact that the Ice Skater Character is wearing ice skates which are rigid and prevent the ball of the foot from bending. This whole bone chain was mirrored for the right leg and both were linked to a central master bone protruding outwards through the character’s pelvis area. All subsequent bone chains were linked to this Master bone which will allow the whole skeleton to be moved at once, for example dragging this master bone down would cause the character’s skeleton to crouch. This is extremely useful as it prevents the need from having to manually transform each bone chain which would be time consuming.

 

Leg Bone Chains

LegBones[1]

(Click Here for Full-Size)

 

 

Arm & Spinal Bones

Leading on from the top of the legs  four equally sized bones were created to act as the character’s spine, the arms were then created on the end of this chain. One bone was inserted for the shoulder/collar bone area then another for the bicep and a final bone for the forearm. Although humans have 2 bones in their forearm, consisting of the Ulna & Radius which cross over allowing the lower arm to rotate. This rotation was achieved by creating a single wrist bone which was assigned an IK chain with the shoulder to achieve the same effect.

 

Arm & Spinal Bone Chains

ArmBones[1]

(Click Here for Full-Size)

 

 

IK Solvers / Joint Control

IK chains were also created for the legs one from the hip down towards the heel and another from heel to the end of the foot. IK (Inverse Kinematics) Solvers are  a specific rigging tool within 3DS Max that dictate how joints should function, i.e. preventing limbs from bending too far or in the wrong direction. IK chains are therefore ideal for a characters legs which have a limited degree of movement and consist of a hinge joint at the knee area. IK solvers link all the bones in a chain between two specified points. Although these are useful for realistic bending motions they can heavily restrict the animation process restricting a character from moving their arms to pick up an object for example. Therefore in this scenario FK (Forward Kinematics) maybe preferred which allow for a greater degree of freedom concerning articulated movement. Given FK’s nature though it doesn't consider physical constrains and could look unrealistic if used incorrectly. To overcome this dilemma IK chains can quickly be disabled during the animation process by the click of a single button within the motion panel.

 

IK Solver Chains

IKChains[1]

(Click Here for Full-Size)

 

 

Hand Bones

Regarding the character’s hands, two different bone techniques were reviewed the first being regular bones with 3 bones for each finger and five for the palm connecting to each of these. The second method was chosen involving simple box objects, three boxes for each finger bone and one large bone for the palm. Both of these methods achieve the same effect however box hands were simply easier to manage and helped to visualise each finger joint. One large box for the palm is also easier to manipulate than 5 connected finger bones, however the only downside is that this technique prevented the palm from being able to bend, although this isn't an issue as the character does not require complex hand movements.

 

Box Hand Bones

02-BoxBoneHand[1]

(Click Here for Full-Size)

 

 

Wire Parameters

In order to ease the later process of making the character bend its fingers several helper objects were created. Each finger joint’s rotation on the Y-Axis was “Wired” to the same rotation of a helper object placed at the end of each finger. This was accomplished using “Wire Parameters” which are accessed by simply right-clicking on the selected bone.This was done for each finger, resulting in 5 helper objects which can rapidly be rotated to bend each finger preventing the need from having to manually rotate each joint within an individual finger. Again this should prove vital during the animation stage as it will dramatically decrease the time required to manipulate the character’s hands.

 

Wire Parameters on Finger Y Rotation

Wireparameters[1]

(Click Here for Full-Size)

 

Helper Objects

The last two bones to be created were for the neck and head which were attached to the parent bone of each arm chain. The last rigging process was the inclusion of additional helper objects at each wrist and underneath the feet which allowed each of these joints to be easily selected without having to enable “Wireframe” mode or hide the mesh to click on each bone. Additionally to aid the workflow each related group of objects was assigned to different layers allowing each to quickly be hidden or frozen.

 

Box Helper Objects

HelperObjects[1]

(Click Here for Full-Size)

 

 

Final Rigged Skeleton Structure

FinalSkeleton[1]

(Click Here for Full-Size)

Character Profile

0 comments

Female Ice Skater – Character Persona

Name:

Natalya Romanenko

Age:

22 – Born on 12th November 1988 (Scorpio)

Height:

166.9 cm (5' 5.7")

Weight:

61.59 kg (135.8 lb)

Nationality:

Русский (Russian) flag-13[1]

Birthplace:

Irkutsk, Siberia, Russian Federation

Eye Colour:

Light Blue

Hair Colour:

Blonde

Interests:

Figure Skating, Classical Music, Astronomy

Dislikes

Being ignored, Jellyfish & other sea life

Favourite Food:

Pelmeni (Bread), Blintzes (Pancakes), Pasta

Favourite Drinks:

Vodka, Coffee

Religion:

Christian (Russian Orthodox Church)

Dress Style:

Likes to wear leather boots and the colour red, often prefers to dress formally

NatalyaRomanenko[1]

Profile

Natalya Romanenko is a young Russian woman from Eastern Siberia in a region known as Irkutsk Oblast. She is extremely dedicated towards Ice Skating of which she has practiced for most of her life. In the last couple of years she has qualified as a Professional Solo figure skater and has competed in tournaments around the world. Her most successful achievement so far being a Gold Medallist in the national Russian Figure Skating Championships in 2009. In her spare time she enjoys gazing at the night sky through a telescope and loves classical music especially from the 19th century. Natalya’s friends see her as a rather shy individual, but at the same time has a caring and gentle nature.

 

Irkutsk at night

Irkutsk[1]

(Click Here for Full-Size)

Sunday, 2 May 2010

Week 8

0 comments

Ice Skater Character – Texturing & Eye Creation

Skin / Face Texturing

Now that all of the character had been modelled with exception of the Eyes, this week the main character mesh was textured using an array of custom created materials. The entire skin surface of the mesh was given a “UnWrap UVW” modifier which was flattened and exported as a  Jpeg. This UVW map of the character was given real skin and facial details using several images within Photoshop. This was then re-imported back into 3DS Max as a material which was applied to the character mesh to view the changes made within Photoshop in real-time. Retouching the UVW image to create a seamless skin texture was extremely time consuming, however the end result was particularly pleasing.

 

Flattened UVW Map & Checker Material Stretch Test

04-UVUnwrapping[1]

(Click Here for Full-Size)

 

 

 

UVW Map Texture Creation

05-FaceTexturing[1]

(Click Here for Full-Size)

 

 

 

Final Rendered Skin, Face & Hair

06-HairUVtestRender[1]

(Click Here for Full-Size)

 

 

Leotard Texturing

The previously created leotard was also textured using the same technique involving a UVW map. A Lycra type fabric material was made in Photoshop with grey for the top half and red for the bottom, similar to the colour scheme of the outfit worn by “Maria Butryskaya” the female figure skater from the earlier researched video.

 

Leotard UVW Map

01-LeotardUVLayout[1]

(Click Here for Full-Size)

 

 

Rendered Leotard

02-TexturedLeotard[1]

(Click Here for Full-Size)

 

 

Eye Creation & Texturing

Once all the texturing had been completed the last remaining section of the character to create was the eyes, these are a significant feature that help to portray emotions and personality. Due to this fact it was decided to create rather detailed looking eyes which would hopefully breathe life into the final character. In order to produce the eyes an online video tutorial [1] was followed as a guide and expanded upon. Firstly the a basic sphere was created this then had a concave section was made by deleting a large section of polygons to form the indented Iris area. A pupil was the produced simply using a circle spline which was purposely positioned directly over the concave area so that it intersected through the front of the eye. This spline could then be moved back and forth to simulate pupil dilation as required. The last portion of the eye created was the cornea / front lens which was achieved using a hemisphere in combination with a transparent and highly reflective material tinted a slight blue. This group of objects was textured then cloned for the other eye and centred accordingly in the eye socket.

 

Eye Creation

07-EyeCreation[1]

(Click Here for Full-Size)

 

 

 

Final Textured Eye

085-RenderedEye[1]

(Click Here for Full-Size)

 

 

The eyes were also tied to a “Look At – Constraint” which was applied to a green box “Helper Object”. This was done so that the eyes would rotate and follow the helper object, making it extremely be easy to control the direction in which the character is looking. This method also helps the eyes to move in unison and prevents the character from looking “cross-eyed” for example.

 

Eyes - Look At Constraint tied to Helper Object

08-EyeLookatConstraintHelper[1]

(Click Here for Full-Size)

 

 

Final Rendered Face

09-EyeUVTestRenderReflect[1]

(Click Here for Full-Size)

 

References

1. CG SWOT, 19th April 2010, 2010-last update, 3D Character Eyes: Video Tutorials Parts 1 - 4. Available: http://cgswot.com/tutorials/3d-tutorials/133-24-3d-character-eyes-part-1.html [May/02, 2010].