From the day we were given the brief to hand in, I really enjoyed the module. The process of working with a company added a new and interesting dynamic to the creation process, as well as also providing a great insight to what the industry here in Northern Ireland is like. Getting feedback and direction from our company was also incredibly valuable as i feel like I have learned a lot as a result. I am a little bit disappointed that we didn’t get the final outcome we were looking for in the end but its something that will be finished in my own time regardless. I was on the ball for most of the project until I spent a large chunk of time on a personal project (modeling a car) which set me back quite a bit, so time and project management is something I still have to work on. But i’m happy with the result for the time being. I worked with some really awesome people from whom I learnt a lot from which is great, and had a great time working on the project.
Earlier on in the production process Double Jump Studios suggested that instead of rigging faces onto our characters, we use a method of exporting the Maya camera from After Effects and compositing 2D animated facial animation over our footage.
This would supposedly save us time and help us get a better grasp of what tools After Effects has to offer.
I found this really short and simple tutorial on how to at least import the Maya camera into After Effects.
- With your scene created which includes a camera, go to:
Edit —-> Keys —-> Bake Simulation
- After which you must save it as a Maya ASCll file
- Render Out the sequence as you normally would
- Open up After Effects, import the Maya ASCll file
- Import image sequence.
- The Camera has been successfully imported from maya to after effects.
Really simple and straight forward process, but it would be interesting to if it works differently when render layers are implemented, but overall looking forward to giving this a go!
With our project in the render stage we asked our lecturer Alec for some advice with how to go about rendering out our stuff, and he suggested breaking it up into layers including colour,light,Occlusion, specular and reflection passes.
This as a result would potentially cut down our render time and help us achieve the plastic/cartoony look we were going for.
Setting up Specific passes in maya:
Before I started looking into the juicy bits of the tutorial I wanted to remind myself how to set up specific render passes within maya.
For example to set up a colour pass, you would select the relevant layer, right click and select attributes.
Then under the layer attributes, open the ‘Render Pass options’ tab to reveal several options such as colour,shadow,specular,beauty and diffuse.
In this case I selected colour.
After reacquainting myself with the process I continued on with the tutorial to gain abetter understanding what we’d need to do when rendering out our stuff.
- The colour layer, It renders out the flat colours and textures within you scene, in this case Alec had included an ambient light, with it’s ambient shade value turned to to a value of zero. which gives the following result, flat colour, no shading.
- The light pass is similar to the colour pass, with the exception of the light source and the ’emit specular value turned off in the attribute editor. This will give us hard shadows to layer over our work as seen below.
- With the Occlusion pass, a new material was assigned to all the objects within the scene and a surface shader was applied to that material, after which a ambient occlusion node was plugged into the out colour attribute of the surface shader.
- If no bump or normal maps are being used within your scene the surface shader method proves to be quicker. For a high definition occlusion change the samples value to 100 or above.
- With the specular layer, a layer override was created in the colour attribute which was then assigned the colour black. This in turn will pick up the specular value from the render.
- The anisotropic material with give you a sharper highlight for a better effect. and the material reflectivity turned to zero.
With the reflections pass, the emit specular value was turned off on the light source and and a layer override was created for the the reflectivity value which had a value of 1 (all the way up).
I thought the tutorial was really useful, i’ve worked with render layers in the past but from taking notes on this I can see that there’s way more to learn when it comes to setting up pass layers in maya, i’m looking forward to sitting down and applying these techniques to my own work, hopefully cut down on those render times as well.
In the next tutorial, Alec went over the compositing process within after effects, taking the layers set up in maya and basically putting them together to create a final comp.
Comping: Method One
Colour layer – base layer, mode set to normal blending mode
Occlusion layer – set to multiply blending node (however multiply can give an undisired grainy look to you comp)
Reflection Layer – Set to screen blending mode, opacity to 40%
Specular layer – Set to screen blending mode, opacity to 75%
Light pass layer – Set to normal blending mode, 40%
Comping: Method Two
- Create a pre-comp for the ambient occlusion which includes the colour, light and occlusion passes.
Colour pass – normal blending mode
Occlusion pass – Multiply blending mode
Light pass – Add blend mode, 40 percent opacity
Although the end image is slightly brighter than what you you get in maya the get a more appealing shading result in the final outcome.
When referring back to the feedback given on week 12, its was clear that I need to improve the animation of the characters.
- More offset on the robot movements perhaps (maybe one is doing something different i.e. robot dance)
As a result I spent a bit of time ironing of the character animations, specially the TV bot characters.
Getting them to feel alive was incredibly important, so opposed to having them standing completely stationary, I added a little bit of vertical movement to the legs and torso in an attempt to emulate breathing.
In addition to the breathing I also added a bit more life to the reactions of the idea. These reactions ranged from simply rising to attention to jumping for joy at the idea, I wanted to create a bit of variety with the movement so each character would stand out a bit more from one another.
Also the addition of of the little dancing was important due to the fact:
- Direct feed back
- I think the shot is much more appealing and amusing as a result
When it came to dance animation references I found this little gem. It’s nothing over complicated, in fact its simplicity is one of the reason why I liked it so much. But I also thought it fitted our animation, due to it’s appeal and humour.
As a result, having taken the feedback on board I came out with the following result:
But in addition I also improved the overall flow of the animation in general. Which Double Jump were really happy to see.
Rigging the TV Bot
I found that rigging the TV bot character has been the most difficult process so far, I’m not a particularly confident rigger at the moment, however I was able to get help from one of my lecturers Alec Parkin.
Initially I sent him a rig similar to the one seen below, however the joints hadn’t been skinned to the geometry and there were joints in the upper arm, fore arm,wrist and fingers.
- I think you can do without joints in the arms and just use fk controls parent constrained to the geometry
- The legs broke up the geometry in the left leg, this will be easier to skin later (100% weight values to different joints)
- Also I had to fix the joints as they had been rotated, and i’ve put in a ik handle.
Based off the feedback I rigged the arms by parent constraining the fk controls to the geometry in the arms. This would enable us to achieve a robotic look from our character’s arm movement.
Alec then sent me a series of Autodesk tutorials that cover how to set up a reverse foot rig on the character, they’re part of a larger series of rigging tutorials which I intend to work through soon.
The first tutorial looks into working on a IK foot with the addition of a reverse foot rig applied. Despite being very useful, towards the end of this specific tutorial, it states that there is a better and more effective way of setting up a reverse foot rig for our character. However I still thought it was important to record the multiple methods and come to a conclusion in the end.
Rigging Method One – Creating A Character Rig – Part 19: Reverse Foot Rig
- A reverse foot rig is: A rig component that gives animators complete control over how the foot moves, including its four positions:Contact, Down, Passing and up positions.
- Start with 3 locators to begin with and rename them appropriately, in this case: Heel_LOC, Ball LOC, Toe_LOC
- Snap the ball locator and the toe locator to their respected joints (using Middle mouse + V) and move the Heel_Locator to the base of the heel.
- Parent these locators to the left foot control (in this case), then parent the ball and toe locators, in addtion to all the ik handles under the heel locator.
This will enable the ball and toe pivot spaces to rotate when the heel lifts.
- However, in order to create a foot roll, the ankle needs to move up when the ball rotates up. To create this effect, re-parent both leg IK handles and the ball IK handle under the ball locator.
- In addition, we need the foot to be able to roll onto the toe tip, we do this by parenting the ball locator under the toe locator.
- Parent the knee Joint under the Ball Locator.
- The locator will determine the position of the leg’s IK handles preciously in comparison to the foot control.
- Re-parent the IK leg locators under the ball Locator also.
Adding custom attributes to our foot control
- Select the foot control and add three attributes:
(ATTRIBUTE EDITOR —-> EDIT —-> ADD ATTRIBUTES)
This will open up the ‘add attribute window’ (shown below)
In the ‘Long name’section add three attributes under the name of, heelLift, balllift and toe lift.
- To wrap up this rigging method, use the connection editor to connect the rotate X attribute of each pivot locator to the appropriate custom attribute.
As mentioned previously the method described above will allow us to achieve the effect we want, whoever we lose a bit of control over the rig as a result. The following two tutorials (part 20 & 21) allow us to achieve the same effect and maintain a superior level of control over the rig.
Rigging Method Two – Creating A Character Rig – Part 20: Small Foot Roll
- Create three Attributes
(ATTRIBUTE EDITOR —-> EDIT —-> ADD ATTRIBUTES)
- With the ‘Add attribute’ window open, under Long name, add the attributes for:
Roll – our primary method for rotating the foot.
BendLimitAngle – (Will add limitations to the Roll value attribute) Will be lower than the Toe straight angle since the foot will bend at the foot first and straighten once its vertical.
ToeStraightAngle – (Will add limitations to the Roll value attribute)
- In the ‘Add Attribute‘ window under ‘default‘ assign the values of 45 degrees for the BendlimitAttribute and a value of 70 degrees for the ToeStraightAngle attribute. (Shown Below)
- Due to the fact we never want the foot rotating downward below our control we only want it to accept negative values, this will guarantee the heel is either straight or pointed up. We can achieve this effect using a Clamp Node in the node editor.
- A clamp node returns a value only within a minimum or maximum range.
- With the foot control and heel locator selected open the node editor
- Create a Clamp node: rename it appropriately: LeftHeel_rotClamp
- Feed the ‘Roll’ value of the LeftFoot_CTRL into the input R value of the clamp node.
- Since we never want the heel’s rotation value to be greater than 0 the max R value should be 0
- Assign a value of -90 to the Min R value, which will give a realistic rotation limit, even when exaggerated.
- Feed the ‘Output R‘ value of the LeftHeel_rotClamp node in the ‘Rotate X‘ value of the Heel locator.
- Now if we assign a negative value to the ‘Roll’ attribute we see that the foot lifts on its heel. In relation to this, if we assign a positive value to the roll attribute the foot clamps at zero and the foot remains straight as a result.
- Repeat this process the the ‘Ball’ node, except in this case, limit it to a positive range.
- Now a positive ‘Roll’ value pivots the foot at the ball but a negative value pivots the foot at the heel.
- To ensure things are keep tidy, instead of having an actual rotation value of the rotation itself, we want the percentage that the ‘Roll’ value is between the ‘Bend limit angle’. We can do this using a set range node.
- With the set range node selected, add a value to its Min X (zero) and Max X (one)
- This has remapped the ‘Roll‘ value to a percentage from the bend limit angle to the Toe Straight Angle.
- Depite working out the percentage value, we still have to apply the value to the rotation space. This is achieved by using a multiplydivide node.
- A plusminusaverage node has the ability to add/subtract/average single values as well as vectors.
This was the end result of my Node editor.
This efficient method of rigging provides greater ease for the animator.
Having gone through the process of creating a better rig that gives the animator more control over the the movement of the character it was time to do a bit of clean up, adding complementary foot controls etc.
Creating A Character Rig – Part 21: Complementary foot controls and clean up.
- We need our foot to have the ability to tilt side to side, we can do this by using the rotation pivots, similar to what was do with the heel and ball and toe Ik handles previously.
- Create two new locators and rename them ‘innerFoot_LOC‘ and ‘outfoot_LOC‘
- Position both of these locators the locators at either side of the foot, where the geometry is at it’s widest around the toe area.
- Parent the innerfoot_LOC to the outer Foot_LOC, then parent them both under the heel_LOC.
- Reparent the Toe_LOC and LeftToe_handle under the innerFoot_LOC
- This allows us to tilt the foot by rotating either of the two locators.
- Adding a custom attribute under Tilt gives the animator more ease when working.
- This can be achieved by using set driven keys, where the left foot control will act as the driver and the inner and out foot locators as driven.
- Then I added the ability to lean the foot on its ball and spin it around its toe as well as a toe wiggle using the connection editor.
Finally to wrap it up I was having trouble with the arm of the character, in some cases they would move with the body but not the controls, like so:
With feedback from my lecture Alec, It was a case of unbinding the arm geometry, and because he is an absolute legend he also helped me put with master control, adding a scale attribute to it.
Below is the fully functioning Rig:
Rigging the Message ‘Alert’ Bot
Rigging the meesage bot was quite simple (see below).
I created two Nurbs curves to act as my controls after which I parent constrained the inner nurbs curve to the geometry which would give more control over the bot itself in terms of its translate,rotate values.
Then I used the larger, outer nurbs curve as a master control for the rig.
Message ‘Alert’ Bot
In previous versions of my animatics, there was a little floating screen object which displayed the mail icon to symbolise the arrival of the brief. Shown below:
However the more I worked with and developed the scene, the more bland it became in comparison to the colourful and cartoony look we were going for.
As a result I decided to turn this message alert object into a character, that responds to the set and other characters in a more life-like way.
I wanted to keep it simple, making sure the screen was still the main object of focus. So I did a bit of research looking into other TV head based characters, excluding my own and came across and blog under the name of wnjmn.
This individual had made some incredibly cute and appealing looking character with heads, resembling that of TV screen which was exactly what I was looking for:
Work by wnjmn.
As a result, I based the message ‘Alert’ bot design off off these character, adding a little siren at the top and modified the little speaker shapes at the side.
Script Writer Bot
With regards to the script writer bot, it’s original design changed very little over the course of the project.
Referring my concept design from earlier on in the project.
Half way through the animatic stages, I started to polish and refine some of the assets required for the final output. I this case I started with the creation of out TV bot character.
So I refereed back to some of Pauls earlier concept designs as a starting place and looked at how they could potentially be developed further to match the look we were going for.
The things I took away from Paul’s work was that the characters were simple, cartoony and very appealing. Which was exactly what we wanted, so developing upon the previous work it was incredibly important to keep these features in the final outcome.
In addition, I looked in multiple places like pinterst and tumblr for more designs and inspiration that could be added to our own work.
I found these designs to be the most useful in terms of what I’d like our TV bot character to resemble.
- Otamemo’s little (Japanese styled) bot character was a really interesting piece for me to work off, although somewhat over detailed in some areas from what we’re going for, it thought the over all design and form of the character was spot on in terms of appeal and use of colour.
- Sony’s little playroom robots we’re also great references to work off, with a similar colour scheme used with Otamemo’s bot (which could easily be modified to match Double Jumps style) the simplified appearance and design, specifically the head design and pix elated treatment for the eyes.
- Disney Pixar’s EVE design was also useful due to the simplified form and facial design.
Below is my first model (work in progress) of what I thought the character could look like taking particular influence from Otamemo’s and Sony’s work.
Using image based lighting (hdrlabs) to get a quick result combined with Mental ray pre-set materials: Glossy Plastic and Solid glass.
After posting these images for feedback, Double Jump’s response was as follows:
- Really good modelling displayed
- Exaggerate the forms.
- Simplify everything.
- It looks very realistic – needs to look a bit stylised and fun.
In addition to the feedback this design was given as a rough concept with where to take the proportions.
So as a result, I made it more cartoony by exaggerating certain proportions like the torso to leg ratio, trying to make it cuter and more appealing, in addition I also played about with the mental Ray material value’s, turning down the reflectivity of the glossy plastic pre-set whilst keeping the glossy value, and adding matte plastic material into the mix to create a bit of contrast.
In relation to the rough concept that was submitted with the feedback I also tried out a different colour scheme that matched the rough concept. (reminds me of an old 1990’s gameboy)
- Go with the white and blue one, the accent colours work well and suit the brand.
- Add a smile to the face.
- Proportion is still realistic – try and squeeze the body segment down a bit.
- Add the double Jump logo to the character
With the feedback recieved, I went into learning how to apply the Double Jump Studios logo to the character, I thought the most appropriate place to put it would be the chest, where it would be easily visible.
I started off by uv mapping the relevant piece of geometry on the body, in my case, it was a simple planar map on the z axis due to my scene orientation. which gave me the following:
This was plenty for me to work with, however how to texture it was the next step. I looked into adding the colour and logo to the uv entirely in Photoshop however felt like I was loosing some of the material’s appealing value as a result, so I opted for having a mental ray material on the geometry and layering the logo on top of it.
I found this tutorial to be really useful when trying to achieve the effect I wanted.
- The layered texture node does not directly support the mia material
- However we can use a surface shader to act as a bridge between the mia material node and the layered texture node.
- Plug the result of the Mia material into the out colour of the surface shader, this calculates the mia material render result value and plugs the value into the surface shader.
- A surface shader does not calculate lighting information.
- With both materials connected to the layered texture node via surface shaders, create a third surface shader and plug the layered texure node into the out colour of the surface shader.
- Create/use a alpha map (reads black and white information, white- shows the top layer, black shows the bottom layer.
- With your alpha map texture obtained, plug it into the alpha value of your top layer.
View of my hypergraph editor:
I managed to get the Double Jump logo form the website, after which I gave an alpha channel, (in photoshop) and saved it out as a targa file for file optimisation.
Below is both an image of the alpha channel and the texture that will be layered on top of the mental ray material.
Alpha Map – Visible logo, white (will show through the geometry. Non visible background – black (wont show through the geometry).
This method of texturing gave me the result I was after, where the loosing any visible values from my mia material whilst having the logo clear and visible.
For an additional bit of feedback I sent images of the current TV Bot to my lecture, to which he suggested that I re-address the proportions of the body as they seem unbalanced.
Sending me these as references and guidelines.
I thought these were really cool because of their cute and cartoony appearence and after using these images to experiment with the proportions and changing the arms and hands to look less ‘crab like’ I got the final outcome below.