PDA

View Full Version : Paul Neale´s Maxine autopsy


pyruss
01-02-2006, 11:48 PM
Hi
I´ve recently put my hand´s on Paul neale´s maxine rig and have been trying to understand the concept behind this master piece
and despite i consider myself a farely good rigger i feel like a baby when trying to mentaly deconstruct this rig
expecially the scrips behind them

does someone outhere as the maxscript´s knoledge to understand the purpose of
this script (used in the bicep tricep forearm) and explain it to me like if i was a 3y old baby?

x=normalize(targetNode.pos-upnode.pos)
z=upnode.transform.row3
y=cross z x
z=normalize (cross x y)
matrix3 x y z upnode.pos

also why does the right and left calves have diferent transform controler options?maybe to show diferent techiques for the same result?
Thanks in advance

eek
01-03-2006, 02:51 AM
Here are some clues, i know what its for but ill let you think on it for a while.

x is a distance i.e its a vector.
z ,y and matrix part is for orientation.

The opposition side difference is due to left/right handedness. If your still stuck yell!

eek

pyruss
01-11-2006, 10:03 PM
"If you want to help an starving man , dont give him food,teach him how to fish"I really apreciate your atitude :) (I think it goes something like this)

despite i´m a big zero in maxscript , with a litle push from you i´ve been digging a bit about ; normalize,cross ,matrix3 ,and comparing the effect of the script vs the usual strechy bones method (position contrain,lookat) and i´ve manadge at least to get the feel of the script in order to reapply it in other circumstances,and that was what i really needed
for that i´m very thankful

one other issue

is there a way to access (via maxscript listener) the maxscript behind and atributte holder?
i.e- study the maxscript behind arm options -autoclav,wrist lock .. or hand controller?

Thanks

Pedro

eek
01-12-2006, 04:25 AM
Ok,

What it is just a custom look at - it has nothing to do with stretch.


normalize(v1-v2) is a normalised vector of the point positions
z=upnode.transform.row3 is the third row of 'upnodes' transform (upnode is an object) and using it as a vector for the overall matrix. Pretty clever i thought.
y is the cross product of x and z (x and z are vectors) i think cp works out the length of the unit point from x z - i forget.
Then z again does a normalize on y and x again.

Basically there all forming parts of a matrix transformation.

Yes there is Paul has got his own 'Atrribute Editor' script, so you can edit CA(custom attributes), theres a whole chunk in the maxscript on CA,parameter blocks, how to access them etc etc.

eek

pyruss
01-12-2006, 03:08 PM
Thank you :) i´ve got a mutch clearer picture now.. i now realize that the stretch/compress on the muscles that use that matrixscript is done by reaction controller,and that the script alows a very good flow (lookat) bettew the twist of the bones.. it does pop at very extrem angles (applied to biped arm twist)

pedro

eek
01-12-2006, 03:29 PM
The twist problem snap is virtually impossible to fix, basically once you reach 180 with most constraints, lookat etc it'll flip. Its due to the issue of multiple axis'. As paul put it nicely in XYZ x is parented to y and y to z. So rotating x alone is fine, but then rotating y is also rotating x and then rotating z is rotating both y and x. Euler axis' dont really exist there just better representations. Until some math guru works out a better system for rotation were stuck.

Now with this matrix, you could you it in the construction of a muscle bone, just by parenting the parent bone to the lookat node (ie the one getting the matrix transformation), and constrain its child nub bone to base point positionally.

Stretch in a way is a side affect of bone hierachies , its the same in maya, stretch is created by move the childs bone in x or the axis that goes down itself.

You dont need reaction controllers for muscle bulging - reation controller basically triggers events from other events, eg, turning on a switch (rotating it in x), turns on a light (its multiplier) In fact to use reaction controllers on muscle bones would probably be counter productive and too heavy.

eek

pyruss
03-15-2006, 12:36 AM
this as probably a very very easy awnser
how could one implement a Transform script via maxscript?

im trying to implement the "custom" lookat expression

x=normalize (targetnode.pos-upnode.pos)
z=upnode.transform.row3
z=normalize (cross x y)

via maxscript so i can "paste it " in multiplebones without having to alwas change the targetnode and upnode on the transformscript "floater"

probably it must have this component

$.transform.controller=transform_script()
but were and how do i put the "lookat" expression? within ()?

any help would be apreciated :)

pedro

eek
03-15-2006, 12:48 AM
something like this?

txt = "x=normalize(v1.pos-v2.pos)\n"
txt += "z=v2.transform.row3\n"
txt += "y=cross z x\n"
txt += "z=normalize (cross x y)\n"
txt += "matrix3 x y z (p)"


tscript = $.transform.controller = transform_script()
tscript.script = txt

pyruss
03-15-2006, 10:03 AM
Wow thanks for the fast reply

you are a life saver :)

PEN
03-15-2006, 01:56 PM
Glad that you are ripping apart Maxine. Just so that you know the reason that I'm writting my own lookAt controller using script controllers was just to test the speed of them. The character wasn't nessesarely constructed to show the best methods for rigging but possible methods for rigging. I was testing speed of the new systems and I was trying to break them by over loading script controllers with unnessesary math. As it all turns out it didn't get over loaded and worked fine so I just left it the way it was. I would normaly use lookAt controllers instead of writting my own but it is fun to learn.

As for the clavs having different controllers well...I don't remember doing that:S. Again this character was a test of Max 8 more then anything. It was decided that it would be included in the release just so people could see what possible methods you could achieve. As for the custom attribute defs Charles is right in saying that there is a tool on my site called PEN Rigging Utils that will allow you to read the CA def and mess with it. Also on my site there is a help file for how to use weak references that I have used for storing the nodes in the CA def. This is nessesary for speed and name independance of the tools. In other words you can change the names of all the objects in the system and it will not break the tools. The tools are node based and store references to the nodes using weak references. Stores nodes as nodes in CA defs on the character has the effect of slowing every thing down because you are forcing updates on nodes that don't need to be updated.

Thanks Charles for anwsering the questions about this. I don't check the character rigging forums enough.

CGTalk Moderation
03-15-2006, 01:56 PM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.