/* */

Tuesday 23 February 2010

Creating a UI with formLayout

Form layout offers the programer a bit more control when designing Ui layout. Each control ie Text Fields, Buttons, Input Text are positioned in relation to each other by stipulating in the code which edge you want to join with the other.

Similar to a jigsaw puzzle - you can't float a piece on a table, it has to be connected to the surrounding pieces.

Good Flags to Use:

formLayout myForm;

This will create a form layout called "myForm", naming is very important in order to refer to it later.

formLayout -e

The -e field allows you to edit the command, can also use a -q to query it. The commands keyed under formLayout -e will determine the positioning of its components. This should then be closed off by ;

-attachForm (-af)

// Attaches the component to the form. This should be followed by two strings (the name of the component and the edge you wish to attach) and an integer (the offset from that edge). Typically should look like:
-attachForm component name 0

-attachControl (-ac)

//Attaches control to another control. Requires four arguments string, string, integer, string. Typically should look like:

-attachControl control top 0 second controler

All these commands and fields are listed in the Maya help guide which also provides an example of the correct syntax.

Procedures

A procedure is a group of MEL commands that are activated by thei name.

Useful MEL Commands - Loop Statements

Loops (also known as iterations) allow you to repeatedly execute statements as long as a statement is true.


Different Types of Loops
1. While-loops, work like an if statement, except it will continue to evaluate until the condition is satisfied/exceeded.


The parameters are stipulated in the scrip, so for instance you could tell it to repeat a process (such as create a poly primitive) 20 times. When that process reaches 20 it stops.

MEL Commands

To comment a line out - usually a good idea to describe what the code is doing eg:

//This line will (purpose of the code)

Any line preceded by // will not be evaluated when run, and is a good way of stating the scripts funtion clearly, for debugging purposes.

Always terminate (end) a line with an ;

Variables and Data Types
Variables act as dynamic containers that acquire and store information according to the command assigned to it. Always preceded by a $ sign. Variables yeild different data types, eg (MEL equivalent in brackets)

1. Integers (int) - whole numbers
2. Floats (float)- Numbers with decimal places
3. Vectors (vector) - values derived from three numbers - such as position x8, y9, z4
4. Strings (string) - a collection of characters (words and numbers) eg psphere1
5. Arrays ([]) - Variables with more than 1 object are given a number (eg [1]) and can be reffered to. As seen in Nodes such as MultiplyDivide Node where more than one equation can be attached to the same node. I recall being stuck for days on a tutorial because it didn't have enough array slots, then I realise the only way of doing this was to add an array using MEL.

Variables allow for dynamic content, so their contnt will update accordingley.

//To write a variable:
$MyVariable

//You can give a variable any name it wants but it cannot start with a number eg:
$10Variable

*/This would be incorrect, the variable however can contain numbers after the first letter eg: */
$Variable10

Precede the variable with the data type eg:

int $myVariable - Variable can only contain whole numbers
string &myVariable - Variable can only contain characters (name of object) and must be encapsulated by "" eg "psphere1"
float $myVariable - Variable can have any number (including decimal places)
vector $myVariable - Variable contains a value that requires 3 numbers to delineate it eg colour (RGB) or position (xyz). Vector variables are storred within <<>> brackets. eg:
<<12, 87.59, 43>> Maya will automatically turn these values into float values eg:
<<12.0, 87.59, 43.0>>


Anything within `` marks (for instancel: `modelpanel -q -camera ($whichPanel)`;
means it will be evaluated.



Condition Syntax:
(other wise known as "if" or "else" statements)

< : less than
> : greater than
== equal to
!= not equal to
>= greater or equal to
<= less or

Thursday 18 February 2010

Overtime

Dir. Oury Atlan, Damien Ferrie, Thibaut Berland France 

Really nice bit of skinning on the "Kermit" style characters - good deformation considering there's a fabric texture applied to the character. With it being black and white, helps make it look realistic - i was only sure it was a cg animation when the dead guy came in.

<< 1 2 3 4 5 6 >>


Animation short by Julien Bocabeille, François-Xavier, Olivier Delabarre, Emud Mokhberi, Thierry Marchand, Quentin Marmier (from college "Gobelins L’Ecole de L’Image") and featured on the EA Sports website in an article called "Which are the best Animation courses in Europe?".

Really like the narrative - vey simple, but draws emotion from the viewer immediatelty, and brings you into the story quickly and simply.

From a rigging perspective, there's quite a bit going on. The Octopuses for example pose an ik challenge - probably overcome using a spline IK, with great emphasis on the twist control (which may be achieved using the locator technique illustrated in the "Awesome Spine" video).

Lots of "squetch" setup in the tentacles - gives them a rubbery feel, nice deformation and volume control - makes the stresses in the material seem believable (looks like they may snap when he/she's clinging on to the back of the van) and enhances secondary animation.

Octopuses walk cycle - octopuses don't walk naturally, so reference material would have to be sourced from less obvious resources, and then figured out by the animator to give the sense of urgency and anticipation. The van's engine enhances the tension - there may be hope for the octopus. This is a rescue story, and the stakes are raised from the moment the octopus is snatched.

Like the prop and set design, validates the story and gives it better flow - tropical environment, loads of outdoor swimming pools that are instrumental in the escape. Also using the Octopuses ink jet to escape the bipeds clutches.

Biped character has a straight forward riggig set-up, and what is apparent is the necessity to be able to lock limbs down to props. When the bipedial character is leaning out the vans window, he's clinging on to the roof. The animator will have a control that is parented to a spot on the van and will adopt its translates, but leave the rest of the rig free to animate.

Poly Smooth and Edgeflow


Maya - Intro to Smooth Proxy from JohnSka7 on Vimeo.


Been playing with this usb man model, and trying to find the best way to achieve a nice smooth mesh that appears like its been made in a machine. The head piece comprises of two attached spheres, but getting it to look smooth has posed a few problems regarding edgeflow. I need a solution that doesn't require moving the cv's around too much as this will create bumps in the mesh and make the whol thing look like its been in the wars.


This is pretty elementary in terms of modelling but the simplicity of this model gives me a good opportunity to try out a number of techniques and hopefully weavel out the most efficient workflow.

Tuesday 16 February 2010

Useful MEL Commands - ik Spring Solver

Following useful in the rigging process, explanation underneath:

ikSpringSolver;
Will add the spring IK solver to the list of IK handles you can use - useful for limbs with more than two segments, ie insect legs

Arachnid Rig



Nice arachnid rig, appears to do everything it should, but its control curves could do with being labelled a little more clearly. If you examine he setup there's a lot of non-discript circles that don't connotate their function.


I like the creatures folding mechanism, which operates nicely on a GUI slide, but i think the GUI window takes up precious screen space - some of the controllers are a bit bigger than they need to be.


Apart from that, theres obviously a lot of thought gone into the actual mechnanisms of the creature that woks well.

Spine Rig setup



"awesome spine" fonund on:


http://faithofthefallen.wordpress.com/awesome-spine/


Very similar to the Jason Schliefer tutorial - IK spline setup, with two skinning joints either side and a simple stretch mechanism implemented. In this example the rigger has duplicated the joint chain and connected each joint with ik handles. The handles ten parented to the spline joints so they follow the spline.


This twist mechanism implements a locator for each joint, connected to the joints using a multiply divide node, to achieve greater twist articulation control. In the Schliefer tutorial he uses the advanced twist controls implemented in the IK handle - seems to work fine, but gives you a uniform result. The ribbon spine's twist attribute can be adjusted by allocating different weight influence to nurbs vertex, so comes somewhere in between.


What is good about the Schliefer spine is the ability to control the volume of the distortion at different points down the back, using an animation curve. This provides good characterisation control for the animator and certainly help the shot look more interesting.

Sunday 14 February 2010

Eduardo Pili



TD showreel from Eduardo Pili, by the look of his impressive resume seems like he's been around a bit. Loads of things here to consider, the opening "quarternian" spine setup being notably impressive.

Looks like an "Isnerspine" setup which accomodates squash and stretch parametres by either adding an expression telling the joints scaleX value to adjust accordng to the curve length of the spline IK (by creating an Arc Len node).

Begins with a MEL window I assume Eduardo's scripted himself, that automates the spine rigging process - very handy because with two clicks of a button the spine is set up with squash and stretch parameters. Where this could be developed further is to add different spine setups to the script - perhaps a ribbon spine button, an Isner Spine button, a simple Spinewave rig, a Spline rig without stretch etc.


Notice the extra squash and stretch articulation achieved on the spine setup, this is called a "quarternion" spine, and in this instance uses widgets to control the volume in seperate area's. Very clever, and is done by creating a keyframe cache node (createNode frameCache). This node gathers numerical information from the timeline, so if you create an animation curve you can increase and decease the point position, which will increase the squash and stretch for that particular joint. The animator now doesn't have to go into the expression editor, they can simply alter the points on a curve - loads more interactve, intuitive and quicker to manipulate.

Good twist control - probably uses the advanced IK twist controls

Friday 12 February 2010

Wilkommen!

This is the first of what we hope will be many.
The FMP is a collaborative project, our objective is to design build and rig five characters, ready to be animated.