Tuesday, 14 September 2010

Stretchy Bendy Rig

For main part -
3 chains - IK, FK & Result
Use Blend Color nodes to feed rotation values of IK/FK into Result Joints
Similarly use Blend Color nodes to switch between stretching of joints (feed into scaleX usually)
Generally for IK stretching, parent the IKhandle to some sort of control object. Point constrain the distance node locators to the control object and not the IKhandle. (remember dgdirty as well)

FKstretch for bendy is -

FKstretchFactor x length
Divide by number of bendy joints.
Subtract original translationX to gain offset
Add offset to whatever original translation X was (this part could be streamlined)


IKstretch for bendy is the same.

Point constrain top and bottom joints of bendy chain to appropriate result joints. Orient constrain appropriately too, so that middle joints will follow correctly when not bending.
For bendiness, drive translation Z or Y with a custom attribute, dividing by various factors to gain curve effect.
Would be worth experimenting with rotation instead of translation.


To do - make rigs scalable

Monday, 12 July 2010

modified locator -to- particle script... useful!

 Note to self - figure out why counter caps at 100?

// Nulls2Particles Script by Garry Runke

string $selection[] = `ls -sl`;                            // `ls -sl` = list selected, creates an array with all selected objectnames in it

float $counter = `particle -q -count $selection[0]`;    // Get the number of particles

for ($x=0; $x<$counter; $x++)                           // Schleife läuft sooft wie Partikelanzahl
{

    string $part = $selection[0]+".pt["+$x+"]";             // This line builds the string representing the current particle (important for the next line)
    spaceLocator;        // Creates a locator at position 0 0 0
for($i=0; $i<200; $i++)
{    currentTime $i;
    float $partPos[2] = `getParticleAttr -at worldPosition $part`;    // Get the coordinates for each particle
    move -a  $partPos[0] $partPos[1] $partPos[2];            // Moves the locators over the particles
    setKeyframe;
}
};

Wednesday, 19 May 2010

Note to self. Recently resolved resolutions.

At the beginning of the year I resolved I would post on the blog more often, I'd get to work on an indie game, I'd draw more & that I would travel a bit more.
So, after nearly 6 months how am I doing?

Posting on the blog started off well, but as always laziness took over.. It still functions well as somewhere to store handy Maya tips though.
Whilst I did start collaborating on two indie games, yes two, I've decided to cease work on both...just to maintain my sanity levels. I stare at 3d software all day long at work & it's incredibly difficult for me to load it up once I'm at home.
Have I been drawing more? Short answer, no. And travelling? Thus far I've been to Berlin & in a couple of weeks I'll be off to Italy for a friend's wedding. That travel target was rather easy to achieve :) There're even a couple of other destinations planned for this year.

In short, screw you Past Dave. I don't need your stinking resolutions.

Wednesday, 24 March 2010

More Maya hijinks

maya cycles eg,
parent constrain A to B, parent constrain B to A
breaks Maya.

Instead Constrain A to B, but turn off B's constrain to A
When you want A to control, turn off A's to B and turn on B's to A.

Use condition nodes and pair blends. Pair blends are generated when you set a key in such a cycle. Lock the pairblend nodes.
Its ok to delete keyframes AFTER you lock them.

Within condition node you need to use RGB to set states and values for certain nodes. In the case of A and B, you want to set the parent Constraint node to either 0 for normal, or 2 for blocked.
you also need to set the weight to 0 or 1. The final value is the pairblend  weight.

The downside/requirement of such a setup is you must keyframe every shape involved. eg you want to use A to move left to right, and B to go up and down, on keying you MUST key both shapes otherwise they override each other.

Monday, 22 March 2010

Surface Rigging a la Bungie (Fake Update #2324234)

Get object
Create Nurbs Surface that encloses plane of movement
Position bones with sufficient locus(?)
Geometry constrain, Normal constrain to surface
Point constrain bone to a locator for ease of use
Skin & Paint weights...

Tuesday, 9 March 2010

Michelin Man has been bulking up...



Not sure if I like this or not. Michelin Man has gone on the P90X regieme & become a proud American who fights large cockroaches. Perhaps its the horrible Sonic the Hedgehog style theme song.
IF YOU BELIEEEVE!

Friday, 5 March 2010

An anime show you've probably not seen before.



This is kinda awesome. Someone from Gurren Lagann is probably involved.

Animation Innovation Tokyo rustled this gem up sometime last year in the hope of raising funds to produce a fully fledged series. Probably won't see the light of day....
If you're not convinced on clicking play from my lack of description... it has a ROLLERBLADING DINOSAUR