/* */

Sunday, 19 August 2012

wing extension

So to get things kicked off, lets examine the wing in full extension - ie

avian home

I am 99.9% certain when God created the bird wing, he never intended for it to be recreated using 3d software.

I have been through literally reams of pictures, books, footage, X-ray's, textbooks in the hope of shedding some light on this illusive subject. At the moment I really believe I could write a book on modelling and rigging a bird wing. More to the point how not to and if you read my book you too would be enlightened on the errors of my ways. 

Don't for an instant believe at this point I have cracked it - I just feel now is a good time to divulge the fruits of my labour. So I will approach it's documentation in the same way I have approached the problem; by splitting it into chunks. 



Thursday, 16 August 2012

Mr Arnie

Mr.Arnold, Lab Cat 

On the odd occasions, during my journey home I have previously chanced upon a bit of avian road kill lying in state. While the bird’s fate is unfortunate I find it important to ensure it did not die in vain. I have often toyed with the idea of picking it up and taking it home, but always bottled it at the last minute as it is a bit gross.



Following a protracted Rat incident involving Mr. Arnie the other Sunday my faithful Lab Cat returned home after one of his evening expeditions with a poignant piece of anatomy hanging out of his gob. By retrieving the wing of a pigeon he had inadvertently answered my prayers. I quickly rescued the remaining carcass from his jaws, thanked him profusely (I must point out it wasn't Arnie who made the kill, the carcass was a good couple of days into decomposition), donned my latex gloves (very important) and set about the bird biopsy.

At this point my research had left me a little short of understanding. I had ample photo's and video's but they can only tell you so much; you can observe these creatures in the wild but they move so quick and travel so much distance you have to be David Attenborough with a high speed camera to capture any meaningful footage - that I am not!

So I still had a few blanks to fill and after 15mins playing with the wings mechanisms, I had learnt far more about the folding process than all my previous endeavours.

For ease of reference, I think it would be best to break my findings down into separate posts. I will try and relate my images to illustrate the incorrect assumptions I have previousley made.

Saturday, 14 January 2012

Parent add shape

Really useful technique for adding ctrl curves to a null Group.

1. Create your null Grp position, freeze trnsfrms etc, etc.
2. Create your Ctrl Curve and move it into position.
3. Select the curve shape (important to select the shape node by pressing down arrow key)
4. Select Null Grp
5. Type following code:
         parent -s -r

Done! Selet the curve, move it about, it now controls the null group. Select the curve in the hypergraph, delete it - the curve in the viewport is still there, it's connected to the group.

Tuesday, 10 January 2012

UV Driver

For use in ball joint areas such as shoulder and hip joints. Involves referencing the UV coordinates of a nurbs patch to drive a corrective blend shape or influence object.  

Create a nurbs patch:
Make sure its twice as wide as the upper arm joint
1 linear surface degree
X axis pointing down
1 U patch
1 V patch

Snap it to shoulder joint

Create Locator:
Point constain it to the elbow joint
Geometry constrain it to the nurbs patch
Now when the elbow joint moves, the locator translates on the nurbs patch


Create a "closestPointOnSurface" Node, name it cpos:
MEL code: createNode closestPointOnSurface -n cpos;

Open Connection Editor:
Load "cpos" into the inputs
Load Nurbs patch shape node (select and press down arrow for shape)
connect World position (patch shape node) to cpos input surface

Select Locator:
Load it into Outputs of the connection editor
connect its translate into the inPosition of the cpos Node

Select cpos in the channel box (under locators outputs)
load it into Outputs of the Connection Editor


Create new node - a point on surface Node:
MEL code: createNode pointOnSurfaceInfo -n posi;
Load it into Inputs of Connection Editor
Expand "result" under cpos
Connect its parameter U to posi parameter U
Connect its parameter V to posi parameter V

Reload Nurbs patch shapenode into Outputs
connect its worldSpace into the inputSurface of the posi Node


Set Driven Keys:
Now we'll create an object that will have an attribute driven  by the U and V parameter of the posi Node.
select it, go to Animate - set driven key
select the "posi" Node, load it as driver
In this example we'll control the scale Z of the sphere with the U Parameter and the Scale Y
with the V Parameter.
Select the "Parameter U" in the right hand column of the sdk window
Select the "Scale Z" of the nurbsSphere1
Hit "key" button to set default
Translate IK handle so its U position is at 0 on the patch
Scale the nurbsSphere1 in Z to whatever size you want it (I went to 2)
Hit "key" button
Translate IK handle so its U position is at 1 on the patch
Scale the nurbsSphere1 in Z to whatever size you want it (I went to 0.5)
Hit "key" button


Now when you translate the IK back and forwards, the nurbssphere's scale Z will change in
accordance with the U value of posi. This could be used as an influence object, alternatively
could be used to drive a corrective blend shape.

Sunday, 8 January 2012

simple window

Simple bog standard window to get the ball rolling, which begins with an if statement to check the window doesn't already exist. If this is the case, a deleteUI command is called to get rid of it.

if (cmds.window(myWindow, exists=True)):
    cmds.deleteUI( myWindow)

#Checks the window doesnt already exist, if so, it'll go ahead and delete the window and start from #scratch.

myWindow = cmds.window(title = "Slider Window", width =100, height = 200)
cmds.showWindow(myWindow)

#Creates a window withe title "Slider Window", width/height 100/200 respectively. Show window is #essential to display it on screen.