Monday, 25 October 2010

RE: mel. Place loc on Joint

Update to previous post now ive had chance to test script, so couple of minor changes.

//script to place a locator at position of every joint in scene (if nothings selected) or at the position of every joint in heirachy underneath selection and rename to match joint.
string $mySel[]=`ls -sl` ; string $joints[]=`ls -type joint` ; if(size($mySel)==0) for($i=0;$i<(size($joints));$i++) { float $jntPos[] = `xform -q -ws -piv ($joints[$i])` ; string $loc[] = `spaceLocator -p $jntPos[0] $jntPos[1] $jntPos[2] -n (($joints[$i])+"_loc")` ; for($b =0; $b<(size($loc)); $b++) { select ($loc[$b]) ; CenterPivot ; } } } if(size($mySel)>=1) { select -hi ; string $selJoints[] = `ls -sl` ; for($a=0;$a<(size($selJoints));$a++) { float $selJntPos[] = `xform -q -ws -piv ($selJoints[$a])` ; string $loc[] = `spaceLocator -p $selJntPos[0] $selJntPos[1] $selJntPos[2] -n (($selJoints[$a])+"_loc")` ; for ($b =0;$b<(size($loc));$b++) { select ($loc[$b]) ; CenterPivot ; } } }

Sunday, 24 October 2010

mel. Place loc on joint

just thinking bout speeding up my productivity led me to just write this little script to place and rename a locator at the position of every joint in the scene (if nothing is selected) or just on the current heirachy of the selection. (i havent even tested this as im on the laptop with no maya :( ) all just from top of me head :)

its not a global proc as its meant to be assigned to a shelf button, but may include into rigging toolset currently WIP (as is an animation toolset and modelling toolset - latter already has a beta version i use at work often already, so the v01 release wont be too long and will be found on here, my website - once finished - and
//script to place a locator at position of every joint in scene (if nothings selected) or at the position of every joint in heirachy underneath selection and rename to match joint. string $mySel[] = `ls -sl' ; string $joints[] = `ls -type joint` ; if (size($mySel) == 0) { for ($i =0; $i<(size($joints)); $i++) { string $jointPos[] = `xform -q -ws -piv ($joints[$i])` ; string $loc = `spaceLocator -p $jointPos[0] jointPos[1] jointPos[2] (($joints[$i])+"_loc")` ; //rename (($joints[$i])+"_loc") $loc ; } } if (size($mySel) >= 1) { select -hi ; string $selJoints[] = `ls -sl` ; for ($a =0; $a<(size($selJoints)); $a++) { string $selJointPos[] = `xform -q -ws -piv ($selJoints[$a])` ; string $loc = `spaceLocator -p $selJointPos[0] selJointPos[1] selJointPos[2] (($selJoints[$a])+"_loc")` ; //rename (($selJoints[$a])+"_loc") $loc ; } }


so, besides some heavy rigging and rigging tests (including some awesome FK tails made from IK splines switching to scalable and controllable auto-tails), ive started to learn python (to later move on to pymel) and i still cant click with it yet... nether the less, i've also still been helping few people out with mel.

managed to pull off my first scriptJob too, after few minutes reading up on it and bout 20 mins playing with tests. its fairly simple and really powerful, just dont want to get too caught up in using them too much.

it was as simple as creating a global proc to update two opposite curves with position and apply to the others limit (to use them as a min and max) then with one scriptJob line to run on a new selection, it worked perfectly, including setting it into the startup expressions with the relevant file (the only problem was cancelling the bugger when its not needed automatically as the "if (objExists ("object") ==1)" loop didnt seem to work :( still though its something i think i'll implement to the rigs with scripts to run on selecting certain controllers etc.

its all good fun...

Sunday, 26 September 2010

Mel and QT

I've kept on scripting on the side of rigging and pretty happy with progress, thought i'd share a couple of useful tips...

as most know, Maya 2011 uses QT for its interface now and makes things far, far easier and quicker to create UI's for it, however full use some QT functions are a little difficult to command with mel. However the benefits far outway the cons as you replace a 500 line code with as little as 5 lines and have full docking capabilities and a good 2hour scripting slog for the UI with 5 minutes in QT Designer...

first things first, plan ahead -
the hardest bit i find is not the scripting at all, but knowing what i need to "connect" etc to get the desired effect/control, so as Milan pointed out, make a flow chart so you can see what needs to drive what and so you avoid cycles.

be experimental -
most of the progress i've made with QT was just playing around.

QT Designer is more flexible than you might think... for example to assign a global proc to run on a button click, you add a new dynamic attribute with a "-c" (or "-command") and then put in the proc name. Simple. but you can take this further, say with a list view, if you want to add a double click command you add a "-dcc" and then the proc name, or if you want to cut down your script size and don't particularly having an entire global proc for one line , write the script in the command line in QT instead, as once the button's pressed in Maya it runs whatever is in the cmd line anyway.

if your not sure how to perform and action with mel, try turning on "Echo All Cmds" and watch how maya performs the task.

use maya help!! (and check the flags for commands) it really is there for a reason :)

one final note, im annoyed atm with a major bug with maya 2011 and even traces of it in 2010 - where gimbal has seemed to become default with no recovery. this has appeared to have come on in the last week or so in various companies and were still waiting to hear from autodesk about this.

Sunday, 8 August 2010

been a while

found a spare few seconds to update...

now working as Maya rigger (and probs animator) at Dinamo Productions (Grandpa in my pocket :) ) and it is awesome.

learnt ahellover lot in last few weeks, brains on overdrive so will have to post up some personal projects and ew hints and tips to rigging laters on :)

that is all.

Friday, 9 July 2010

mel auto scripts

i've been developing a couple of mel scripts that will be developed further for practical use.

the first was a ballOverlap script which was developed to be applied to a tail or pendulum etc, but after somethought, it could be developed as a cheaper alternative to Ncloth for specific tasks, such as a hanging sleeve or the tails on a characters tux.

this second script was the start of my auto rig script. It rigs a flexable and stretchy spine that will bend in FK and translate in IK, with an advanced twist too.

After the development of this flexable, almost toony, rig, i've sketched and researched into creating a hyper-realistic bipedal character rig and a completely cartoony character rig (which will use a more developed version of the ribbon spine technique).

I am hoping to move onto quadropedal rigs after this and then developing auto rigging scripts that are strong and flexable enough for the user to decide how many arms, legs, heads and torsos they would want to be setup.

Friday, 4 June 2010

Wednesday, 26 May 2010

cars... (cont...)

heres couple of renders of the finished car for Ken Ghann's film...

comments welcome.


finished (questionable) my film, will be up soon, been helping few people out and collaborating still, got little bit behind so went up a notch - already had base model and designs but managed to finish the modelling, texture, rig and quick anim test for the car.

will post renders once happy.

Saturday, 8 May 2010


heres the quick shot of the granny flash shot, was initially a test to get the cloth to deform without an influence before its grasped then being able to key the blend simply.

Thursday, 6 May 2010

More Ncloth...

had a go trying to get paper falling with a bit of wind...

Rig Reel Snippet

heres a quick look at the main rigging i've done for Short Film. Includes Face Rigging and Ncloth setup.

Sunday, 2 May 2010

Picking Up Object Tutorial: Shortened version

ok, heres the shortened version for previous post...

Automated script for tutorial here. Download

1. create 3 locators, one for hand, object then prone.
2. add a 'Grasp' attribute for hand locator, float, scalar, min 0, max 10.
3. shift-select hand, prone then object locators in that order add a default Point and Orient constraint.
4. with driven keys, set 'Grasp' as 0 (Driver), and object_pointConstraint, Hand W0 and Prone W1 (Driven) with Hand W0 value at 0 and Prone W1 with 1 and add key, same for oreintConstraint, then reverse with 'Grasp' at 10 (so pointConstraint - Hand W0 is now 1 and Prone W1 is now 0 and same again for orientConstraint).
5. position and Parent Hand locator to characters hand and prone to wherever and then group and parent the object picked up to the object locator.

Simple Picking Up and Object in Maya Tutorial

Real Easy Pick-up-Object Tutorial for Maya  EDIT: Please see following post for shorter version

This tutorial is now scripted.
Get the script here - Download

Simple Tutorial i've picked up to solve alot of problems with getting a character to pick up an object and to put it down again or throwing etc. Its almost exactly the same as the original found at

1. Create 3 locators equally spaced apart and name (left to right);




The locator name siginifies what role the locator will have.

2. Add a new attribute to the 'Hand' locator (select the 'Hand' Locator, in the channel panel click 'Edit' - 'Add Attribute')

Name the new attribute 'Grasp' and select 'Float' and 'Scalar', 'minimum' as 0, 'maximum' as 10, and leave 'default' blank (you actually have two options for creating the 'Grasp', this one creates a blended attribute so you can blend the object between the hand and prone position which is recommended but if you want an 'Off' and 'On' function, instead of selecting 'Float' choose 'Boolean' and no need to enter maximum or minimum values).

(or if you want to be a smart-arse about it select 'Enum', click on 'Green' under 'Enum Names' and rename 'Prone' and rename 'Blue' to 'Hand').

Then click ok.

3. You want the object to be receive its 'position and rotational information from the two other locators by way of constraints', basically shift-select 'Hand', 'Prone' and then 'Object' in that order. The press F2 to select the Animation Toolset and under 'Constrain' click 'Point' - 'Options' - 'Edit' - 'Reset Settings' then 'Add' then immediately do the same for 'Orient'.

Both constraints from both 'Hand' and 'Prone' Locators are fully influencing the 'Object' locator now, well need to be able to control the influence with the 'Grasp' attribute we made using 'Driven Keys'.

4. Select 'Hand' locator and press F2 again (need to be on the Animation Toolset) and select 'Animate', 'Set Driven Key', 'Set'. A new window pops up, and with the 'Hand' locator still selected click 'Load Driver'. 'Hand' then appears in the top section along with its attributes, we'll use this to blend between the locators, so then open the 'Outliner' under 'Window' and expand the 'Object' locator and select both the 'Point' and 'Orient' constraints that appear.

Then with them both selected on the 'Set Driven Key' window click 'Load Driven'. So the 'Hand' locator and its attributes should be in the top section (Driver) and the 'Point Constraint' and 'Orient Constraint' should be in the bottom (Driven). You need to decide the value structure will be for the 'Grasp' Attribute, but ideally when 'Grasp' = 0 the object will not be held and will be controlled by the 'Prone' locator and when its 10 it will be controlled by the 'Hand' locator.
Click on the 'Grasp' Attribute in the 'Set Driven Key' Window and make sure that the attribute is 0 (or 'Off' or 'Prone').
Then select the 'Object_pointConstraint1' and then select both 'Hand W0' and 'Prone W1'.

Click on the 'Object_pointConstraint1' to select the object and in the channel editor on the right change the values of 'Hand W0' to 0 and 'Prone W1' to 1.
In the 'Set Driven Key' window, click 'Key'.

Repeat for 'Object_orientConstraint1'.

Dont close the Driven key window.

5. We've told 'Object' locator to be controlled and to be in the place of the 'Prone' locator now, and so we need to do the same for the 'Hand' locator.

So, select the 'Hand' locator and set 'Grasp' to 10 and in the 'Set Driven Key Window' select 'Object_pointConstraint1' again and then 'Hand W0' and 'Prone W1' and in channel editor change values of 'Hand W0' to 1 and 'Prone W1' to 0.

Click 'Key' and repeat for 'Object_orientConstraint1' again.

If everything went as it should then when you scroll the value of the 'Grasp' attribute on the 'Hand' locator, you should see the 'Object' locator blend between the two.

6. You can now put this into your scene to use to pick up a cup or throw a ball. Just parent the 'Hand' locator to you characters hand or whatever, parent the 'Prone' locator to wherever you wan the object to start from and then on the object you want to pick up/etc, select it, press 'Ctrl' + 'g' to group and parent that group to the 'Object' locator (we group it because parenting causes the object to inherit its parents vales, which can cause problems so easier to avoid that by parenting a group instead).

Personally, when animating a character, instead of animating the locator 'Grasp' attribute which involves finding and selecting the locator, its easier to select my characters hand controller, add a new attribute called 'Grasp' (and has exactly the same values as the original 'Grasp' attribute) and setting driven keys for the new 'Grasp' attribute on the characters controller to control the 'Grasp' attribute on the locator.

Hope this helps, I know its a bit lengthy and if you know what your doing it could be cut down to a couple of sentences but its supposed to be in-depth.

Anyways, have fun you crazy kids.

Saturday, 24 April 2010

Scene 02...

a quick shot from short film still in production

and a tweak on the cloth coat

Thursday, 22 April 2010


Here's a taste of a little side project I've been collaborating on with an amazing 2D animator...

Original version...

Revisited version after chat...

Still low-poly WIP...

Saturday, 10 April 2010

Useful script

found a fairly useful script for creating poly grass (much quicker than using the fur preset, and far less daunting for someone not very tech savvy.

only problem is they made a few mistakes with the generate script, so copy the script to your script folder, restart Maya and in MEL write the following;

source generateGrass;

generateGrass long low 20 0.1 1 0.1 1;

thats it, might need to run it a couple of times with different values then combine the polys at the end.

Texture-wise, create a new Lambert, add a RAMP node to the colour output, set bottom colour to a dark brown, middle colour to a dark green and the top colour to a light green. you could go further and add a transparency RAMP, delete the bottom colour, set middle colour to black, move it closer to the top colour and set the top colour to white.

This is a very basic image but gives an idea of whats possible with 5 minutes to spare.

Monday, 5 April 2010


havent post any of my actual work in a little while, thought i'd do it in big chucks (animation soon to be posted)

heres how I got on with Maya's Ncloth

Test 001

Test 002

Test 007

Test 010


Thursday, 1 April 2010


been doing some work recently involving some photoshop stuff...

here's one of the bits so far, for Tattoo Studio in Kent...

(still WIP)

Thursday, 25 March 2010

Monday, 22 March 2010


... in addition to last post, my new rig is about 90% Ncloth now  :)


after the last post i made regarding the coat finally working, well unfortunately, even though it worked 'well' had a major issue with conflicting constraints etc, so even though it would have been fine for any movement other than opening its coat, its not very helpful...

Spent most of last night and today completely re-rigging the coat, so instead of the coat skeleton/rig been split about under different blendshapes to allow me to blend inbetween a whole body skin to the coat open rig, i've had to build and constrain the entire rig on the low-poly coat on the rig itself, which is exactly what i didnt want to do as it'll make things hader when deforming the body...

and as usual after spending all the time re-rigging it, after a short walk into Cardiff i realised the ideal way to rig it instead, and after an hour of re-re-re-rigging, come up with a 'sucessful' (questionable) flash.

working flash test from Lee Dunham on Vimeo.

I'm fully aware thats its a hidious example of animation and theres problems all over the place, but the final foundations are there and also, the way its now rigged i can finally start working full time on animating it (and part time on making it pretty :)

Saturday, 20 March 2010


finally... after what seems to be years, I've finally got the entire rig to work as it should...

Theres still a few tweaks to be made to get the type of cloth i want and to add the belt, tags etc, but it works!!!!

no intersection problems that cant be solved, and I've also got a fully functional coat with controls coming out of its ears (not literally)... heres the actual first working deform test (ive put it through much more rigorous deforms too) and im just taking a break from it, then will post up a full flash deform...


Stretchy bones tut...

almost sorted the coat, thought i'd show how I made the stretchy bones for it from a couple of bones with an IK Spline, clusters and a NURBs  circle controller.

oh and the mel I type after i select the IK Spline curve ( at about 2:20) is 'arclen -ch 1;' (it allows you to select the curve info node)...

Thursday, 18 March 2010


... unfortunately, i wasnt able to show another finished character (Minus Texturing) last night due to yet another setback, but to save myself time later on, I've added a couple of new additions and fixes to the automatic eyebrow animation seen earlier on the Gran rig... just trying to make things easier and quicker in the long run.

Tuesday, 16 March 2010

Teaser 2...

As promised another character...

having alot of problems with main rig atm, hope to fix them soon!!!

Monday, 15 March 2010


Heres a teaser for one of my characters in my new film...

Lost most of the texturing and a few misc controls that might not need to be added, bust she works!!

Check tommorrow for another character!!!

Damn buggy thingys...

...great, got home and started testing for breaks on Gran rig and came accros huge problem I encountered before. Most of the facial controls wouldnt set keys and everytime I scrolled the timebar it would deselect anything selected... luckly im the sort of person who manually saves to a new file every 10-15 mins now, so I went through the last few days worth of files and tested each one for the issue and found it to be caused from pre-maturely rigging the cloth to the character, tried to sort it on latest but wasnt having it so had to spend most the evening re-doing the work from the past 3 days... just great...

making more work for myself...

... had been plagued with figuring out how to add Ncloth to my characters coat, solved that, then how to control the coat, solved that, how to rig the characters faces, solved that... Now im up against putting it all together, as its not as easy as the tests showed. For them I used a simple 4 bone setup to control the coat as it opened and the Ncloth is attached to the coat mesh and the final coat is attached to both the mesh and the cloth...

Thing is i cant really use a direct bone setup on the coat mesh due to having to skin the coat to the bones of the original rig, and so any extra bones added would just cause fighting over who controls what...

I've created a setup to conrtol the openeing of the coat the same way I've rigged the face, using Clusters and blendshapes and then blendshapes and driven keys to fix and intersecting etc, but i've also just started sketching a more complex, but better controllable way which is the create stretchy bones, spline IK and FK, clusters, blendshapes and driven keys... Just hope it works...

Will post if solved, if not, i've got backups i'll post/use.

Thursday, 11 March 2010

think, think, think, part 2

think i've sorted some form of messy solution for a part of the issue i was having to do with driven keys and animating the sections too...

... heres the notes I made and a vid showing it working... (I know its not pretty atm either, just figuring a way to make things look abit nicer and UF...


Create eyebrow as separate object, 'Parent' it to 'R_Brow_CTRL', create separate clusters for sections of eyebrow object, 'Parent' all those clusters also to 'R_Brow_CTRL' create seperate controllers for each cluster, select the controller then shift-select the corresponding cluster and select 'Parent' CONSTRAIN, then 'Parent' the individual controllers to 'R_Brow_CTRL'. now when you move the 'R_Brow_CTRL' it'll move the eyebrow as well as the clusters and the individual controllers that you can move and key seperately also.

Now the aim was to be able to use the 'R_Brow_CTRL' to move the eyebrow as well as the skin but also to have driven keys so parts of the brow stick to some form of realism.

I do understand you could also have simply created a low poly version, parent each one to a bone, set a driven key to the bones and them 'wrap' deform the actual brow mesh to the low poly version, then finally created clusters and controls on the actual poly mesh for the extra control, im simply exploring all means. (and you could also create blendshapes of the brow and set driven keys to them with the 'R-Brow_CTRL' and had extra clusters and controllers on the final brow also)

So this particular (and complicated method) now needs for you to create a single bone for each cluster, (not parented to each other), select the bones and finally the brow mesh and smooth skin.

This then gives you 3 levels of control over the eyebrows, one of which you can set driven keys to and still have another set of controllers that can controller seperate sections of the brow.

So far this would only really work with simple meshes and try to stay away from having any more that 4 or 5 sections of brow to control otherwise when you skin the bones, it'll be more work than its worth.'

Wednesday, 10 March 2010

Something for our generation...

give them a go, a good laugh and nostalgia...

Tuesday, 9 March 2010

Spider in the Bath!!!

Who remembers this?!!!

think, think, think

... i've come to an annoying problem whilst rigging (well I actually found it a month or so ago, but I just left it be). Ideally for my facial rig, along with individual controls for the face (R_eyebrow_01, 02, 03 etc), I would have a single controller to the side of the face with custom attributes for 'Smile', 'Angry', 'Sad' etc and driven keys onto the ready placed controllers, so in theory, I would crank the 'Smile' att to 10 and the driven keys would tell the individual controllers to place themselves appropriately the make the character smile...

... however such that is the annoyance of driven keys, am I'm still trying to find a simple method to do this that avoids mel scripting (don't have the time, perhaps after uni I'll spend a few weeks cracking it properly), as once you set an object to 'driven' with the driven keys, it immediately becomes non-keyable, however if you thought you could simply parent it to another controller and set driven keys on that instead, hide the parent and still be able to animate the original, because if you parent an object (or even create a new group from it) to another, and move the parent, the child object will still have values of 0, as if it was never moved and therefore wont affect the mesh with the cluster/blendshape setup...

... haha, I wanted to avoid 'geeking out' too much and keep it simple, hahaha...

... anyways I was also thinking about perhaps using parent/point/orient constraints, but then I know that using the constraints will render the object immovable anyway, grrr, think I'll just have to have a go every now and again, and keep working on making my rigs better and more animation. Will post as soon as I crack it...


Grr, sodding blendshapes in Maya, forgot how to creat in-betweens so started playing about and wrote it down. Finding it really helpful nowdays im getting old...

"Adding in-between blendshapes

To create inbetween blendshapes for say opening an eyelid you'll want an in-between to get a nice slide over the eyeball instead of going through it,
this is because Maya will transition between the base and the blend through the shortest route.

Select your ending blendshape and then shift-select your Base object (that the blends will be applied to).

If its your first blendshape on this object you'll wanna go ''Create Deformers - Create Blendshape - Options', name the group of blendshapes under the
'Blendshape node', make sure envelope is 1, local origin and check topology (should all be Defaults anyway) and create.

If its not then go 'Edit Deformers - Blendshape - Add - Options and select 'Specify node' with the correct node selected and check topology. ('Add in-between
should NOT be checked at this point). Click 'Apply and close'.

You'll notice under 'Window - Animation Editors - Blendshape you'll have a new node you created and if you slide up, your object will transition
between your original object to the object you set as a blendshape.

To add a blendshape in-between the two states you created, create and mold the object for the in-between, select it, shift-select the base object
then select 'Edit Deformers - Blendshape - Add - Options', click 'specify node' (it tells Maya what node this will be placed under)

then select 'Add in-between target' and under the 'in-between weight' select something like 0.5, and under 'Target index' you need to count
what blendshape this will be placed on, for example if the in-between will be on the 1st blendshape you made you need to type '1',
if its blendshape later down the list, count how many over it is and type its corresponding placement number. (you could always re-name your
blendshape objects before you add them as eg. '1_R_TopEyelid', '2_R_BotEyelid' etc.

if you now slide you blendshape, you'll notice the inbetween has been placed at the value you selected (0.5)."

Hope peeps find some of the stuff I post useful...

Monday, 8 March 2010

geeky geekerson

...heres the latest test from using bones to control mesh which controls cloth, basically trying to imitate a coat opening with the bottom half made of cloth, also hitting 'legs'...

heres the simpliest/briefest of notes i've made for myself to remember the steps i needed to follow;


start with 2 pieces of mesh with no visible joins, and creat skeleton to control them
skin - smooth bind top mesh

select bottom half as cloth - presets - heavy denim

select joining verts of cloth then shift-select joining verts of mesh and constrain with 'component to component'

add any 'passive' objects and animate."

these are the settings I used for the loose cloth belt (and like a sad geek decided to manually write all the values in just to make myself remember them, and then I CAPPED the values i frequently played with with a little description for myself so I could try to know what I was doing...)

added Ncloth to loose belt, mde sure doesnt intersect with anything, selected CV's of where cloth ends, then shift-selected CV's of where mesh ends and added 'component to component'. made anything that may touch belt as 'create passive'.

Works well, may not need as too much interferance with cloth coat...

if object fast moving, increase stretch resistance

is dynamic - on
PLAY FROM CACHE - N/A (until final V./animation made)
Bounce - 0
collision flag - Face
self collision flag - vertex face
max self collision iterations - 10000
rest length scale - 1
collision layer - 0
wind shadow diffusion - 0
wind shadow distance - 0
air push distance - 0
air push vorticity - 0
push out - 0.5
push out radius - 5.183
crossover push - 0
trapped check - off
point force field - off
point field magnitude - 1
self attract - 0
point field distance - 2
local space output - on
display color R - 1
display color G - 0.8
display color B - 0
compression resistance - 30.4
bend resistance - 5.149
bend angle drop-off - 0.371
restitution tension - 1000
restitution angle - 360
shear resistance - 0
deform resistance - 0
input mesh attract - 0
input mesh damp - 0.5
wrinkle map scale - 1
bend angle scale - 1
sort links - off
add cross links - off
stretch damp - 0.1
self collide width scale - 1
self crossover push - 0
self trapped check - off
incompressibility - 5
pressure damping - 0
pump rate - 0
air tightness - 1
seal holes - on
ignore solver gravity - off
ignore solver wind - off
wind self shadow - off
lift - 0.05
drag - 0.05
tangential drag - 0.102
lifespan - 1"

I found out today there was loads and loads of ways to creat stretchy bones in Maya, after using a long tutorial and a quick chat with Toke, I tried to find another easier way;

"create a single bone.

create 2 locators and snap them to each end of the joint.

rename the base joint to 'joint1' and the nub joint, 'joint2' and each corresponding locator as 'joint1_Loc' and 'joint2_Loc'.

select 'joint2_Loc' then shift select 'joint2' and add a 'point' constraint.

select 'joint1_Loc' then shift select 'joint1' and add a 'parent' constraint.

select 'joint1_Loc' then 'joint2_Loc' and add an 'aim' constraint, then vice versa as in;
select 'joint2_Loc' then 'joint1_Loc' and add an 'aim' constraint.

select 'joint1_Loc' then 'joint2_Loc' and add a 'point' constraint.

you should now be able to control the 'stretchy bone' with each corresponding locator (ie 'joint1_Loc' control will move entire joint,
and 'joint2_Loc' will control the nub joint making it stretchy.

i havent tested this out properly with a full rig, was just something i tried."

After creating the stretchy tongue, I found that I could only really control one section of the tongue at a time and I wanted to influence each section of the tongue with one controller (without using Driven Keys) and seeing as though I went through a slightly confusing tutorial using Nodes and the Hypergraph to creat stretchy tongue I felt adventurous enough to try on my own;

"add half influence from one object to another from an action (without using driven keys)

(eg tongue stretchy, 4 controllers linked to control 4 clusters on tongue. one controller doesnt affect any other clusters besides the one its parented too, when you want the tongue to stretch you want the other clusters/controllers to be influenced down the heirachy)

1. select all controllers you want affected, open Hypergraph and under 'Graph' select 'Add to Graph'

2. on Create Maya Nodes, scroll down to 'General Utilities' tab and add a 'Multiply/Divide' Node.

3. on the first controller (the one that'll affect the rest of them ie TongueTip_CTRL) click on the right arrow of the node, and select 'translate - translate Z' (dependant of character orientation, might need to see what axis the tongue will move 'forward') and connect it to, the 'Multiply/Divide Node - input1 - input1 Z (Z dependant on axis left controller from you just need to match them appropriately).

4. select the Multiply/Divide Node and under 'Attribute Editor' select 'Multiply' and change the value of input2 Z to something like 0.5 (dependant on how strong you want the 2nd controller to follow, 1 = 100% etc) and then on the channel box, lock the Input2 Z (you dont want that value to change to 0 ever, lots of badness.)

5. then from the multiply/Divide Node select 'Output - outputZ' and connect it to the 2nd controller under 'translate - translate z'

6. follow the same steps for each controller, keeping the same 0.5 value each time.

What we've just done is told Maya that whenever you move the 1st controller on the Z axis, the controller behind will follow it by 50%, and then the controller behind that will follow the 2nd controller by 50% and so on and so on."

phew, damn im boring and tbh, most of this is probably crap, but it's given me more understanding as i've gone along, no harm in sharing...

Maya Ncloth Results!!

... thought i might as well stick them on here, think i'll probs also post the very un-friendly notes i've been keeping along the way for various things i've noticed/picked up...

heres one of the original tests getting to grips with cloth as a cape...

heres one of the first successfully working full coat deform testing, with a few tweaks here and there... been a complete nightmare as I cant/couldn't find any tutorial's that dealt with a cloth or Ncloth controllable coat, only t-shirts, dress's skirts etc...

this is one of the tests made whilst attempting to make the cloth coat deform nicely to a walk-cycle. NOTE - HUGE mistake made creating the cloth as an extruded mesh and not a flat plane BEFORE setting it as cloth... (i am just learning by trial and error...)

will finally also post what ive managed to do with the whole mesh/cloth coat thingy...


... few of us travelled to Swansea Uni to have a look into Motion-capture software, how it works and have a little play ourselves.

It didnt go entirley to plan, but was still pretty damn interesting, and I did manage to fool about for an hour or so acting on some strange requests...

... also thought i'd post the models for main characters in FMP


also just uploading some cloth tests ive been working on, realising today how much of a tit i've been trying to do it solo, but efforts haven't been too bad, managed to get a nice formula for the main character to actually work nicely!!!...

Friday, 19 February 2010


... I had been spending hours and hours swapping back and forth between two types of facial rigging I've been trying for my main character, a mix of stretchy bones, curves and clusters and then a mix of clusters and blendshapes and driven-keys and bones for the tongue but due to too many problems with skinning with the bones and curves, I have had to settle with the latter method.
For good measure though, I had been advised to use stretchy bones for the tongue, and I tweaked the controls abit to add better deformation, a tutorial which i'll post up soon.
I'm also at the end of my teather with maya Cloth, I can get a very nice smooth cape, but a coat its just too much for the time I have left, and so I'm cutting out a weeks worth of work by scrapping it and spending the time catching up and finishing a nice coat rig instead...

Sunday, 14 February 2010

02/2010 showreel

whoa, its been a while...

...been working on final film, solving problem after problem with either facial rigging (using a mix of bones, clusters and blendshapes) or maya cloth and cloth/cluster-hybrid... grr...

anyways, had a visit from Dinamo so had to rush together some sort of showreel, needless to say most of my old works needs some serious revisiting, but its just finding the time with work now taking up 27 hours a week... fun, fun, fun.

anyways, will defo get round to posting up some semi-decent tutorial regarding the facial setup i'll be using (thanks to Matt Simpkins!!), hopefully someone might find it useful at some point...