View Full Version : Node based fingers and stuff
JamSession 05-19-2006, 11:25 PM Lately I have heard a lot of people mention that their rig is node based no SDK's. For the most part I can understand why especially since it is a way around not using expressions. I can't find why people are using "nodal facial rigs", "nodal body" and not SDK's
How would you go about setting up the fingers to an attribute without an SDK?
How would you setup the face only using nodes.
Thanks in advance
Jam
|
|
ephemeros
05-20-2006, 07:47 PM
you can use only driven keys, constraints, blend shapes, etc, but it is a pity as you have the cool mel and expressions at your hand :D
darkjedi1929
05-20-2006, 09:03 PM
So you want to know how to drive finger rotationsusing nodes? Simple. Create a custome attribute on your controller object, just as you would do with an SDK, and then instead of SDKing it, connect it to te joint's rotation using the connection editor :)
JamSession
05-21-2006, 05:27 AM
Thank You DarkJedi
That is what I was thinking, add a multiplyDivide node so I can still do a 0-1 attribute so it would go 1 * 65 = 65 deg rotation. When everyone talks about it they make it seem that it is impossible and only the best of the best know how to do it. So that is why I wanted to ask. It just seemed too easy for people to hype up so much.
Now nodal facial rigs are much more complicated in the fact that they also have corrective blendshapes, So I was also hoping someone could shed some light on that too.
lucille
05-27-2006, 04:13 PM
there is no real benefit in replacing sdk with multiply divide nodes in hand set ups--I've done
both and both are easy to script. I used to think there was a performance difference--but I can't see it. I always have my script prefix or suffix the set driven key curve
"SDK_" so its clearer in the hypergraph.
Robken
05-27-2006, 08:12 PM
you don't really even have to create multiplyDivide nodes. you can just use the unitConversion node maya creates when connecting floats to rotations for instance. just set the conversion factor to something else, and you get the exact same effect as an MDV node. that's another umphteen nodes you just saved ;)
JamSession
05-27-2006, 08:20 PM
I am going to give that unit conversion node a try. Never heard of that before, but if it works then it will really help out some of my other techniques. Thanks for the awesome tip.
can i create it in the command line? createNode unitConversion; ??
Robken
05-28-2006, 01:45 PM
yes, you can create it that way, in cases where you want to feed one type of data to a different type. (ie, rotation to translation, time to translation, time to rotation...etc) maya creates a unitConversion node by itself
you just need to turn the display of those nodes on in the hypergraph, I'm not sure how you do that, but it was something with rightclicking the connection (the arrow) and then there should be an option for displaying otherwise hidden nodes :)
hf
niralrajani
05-30-2006, 12:51 PM
Hi
I always use node to drive almost all of my attr...is fun amd for fingers is sometimes use Ikhandles .. to give manual as well and multiDiv connected curl attr....
through this u can keep on layering attr.
And this is good way to make rig for mocap-maya hybrid rigs.
Niral
animationrigs
05-30-2006, 09:21 PM
One good reason to replace an SDK (set driven key) is to clean up the graph editor. I"ve seen many situations where an animator accidentally deletes/unlocks and deletes something and broke the rig. Most cases an animator isn't crusing the graph and randomly deleting nodes.
Oh and the whole "what about ease in and out that you can get with SDK" vs on and off of nodes. Take a look at remap value nodes. They can be used to create the same effect as an SDK (ie a smooth curve controling a value).
JamSession
05-31-2006, 05:53 AM
One good reason to replace an SDK (set driven key) is to clean up the graph editor. I"ve seen many situations where an animator accidentally deletes/unlocks and deletes something and broke the rig. Most cases an animator isn't crusing the graph and randomly deleting nodes.
Oh and the whole "what about ease in and out that you can get with SDK" vs on and off of nodes. Take a look at remap value nodes. They can be used to create the same effect as an SDK (ie a smooth curve controling a value).
I have had that problem alot with animators trying to take a short cut and completely break the rig or SDK and then come back to me saying I didn't rig it right.:argh:
I am a little lost with the on and off nodes and using a remap value. Could you please explain it in a situation or in more detail.
Thanks for all the great input. Just when I started to get the hang of rigging, the complexity increased exponentially and I feel like a noob all over again.
animationrigs
05-31-2006, 07:51 AM
I wouldn't call the use of a remap value node common, but I've used it on occasion for exactly that (getting rid of extra curves in the graph editor). It hasn't caused problems yet and I've been using them for a while. Example, you have an elbow cluster or corrective shape you want to drive. You could use an SDK that turns on gradually as the elbow hits 90 and more intensely thereafter.
With a remap value node you can specify the input min and max and what those values map to, the cool thing is when you look at the attribute editor for a remap node there is a "graph" node that lets you add points to a curve (with tangents) to "map" the mapping...
the following creates a remap node that drives a blendshape based on the rotateX channel of some node.
$rmpv=`createNode -n ($node + "_rmpv") remapValue`;
setAttr ($rmpv + ".inputMin") 0.0;
setAttr ($rmpv + ".inputMax") 85.0;
setAttr ($rmpv + ".outputMin") 0.0;
setAttr ($rmpv + ".outputMax") 1.0;
connectAttr -f ($node + ".rx") ($rmpv + ".inputValue");
connectAttr -f ($rmpv + ".outValue") ("xxx_C_pants_cbs.xxx_C_pants_L_leg_cbs");
ashishdantu
05-31-2006, 02:27 PM
hi ppl,
i generally prefer to lock my sdk graph nodes..so no mistakes can lead to breaking ur SDKs..
this code is what i use to lock all the SDK curves in the scene: make it a shelf and BAM !
string $rotSkd[]=`ls -type "animCurveUA"`;
string $tranSkd[]=`ls -type "animCurveUL"`;
string $sclSkd[]=`ls -type "animCurveUU"`;
string $allCurveNodez[];
appendStringArray $allCurveNodez $rotSkd (size($rotSkd));
appendStringArray $allCurveNodez $tranSkd (size($tranSkd));
appendStringArray $allCurveNodez $sclSkd (size($sclSkd));
for ($each in $allCurveNodez)
{
lockNode -lock 1 $each;
}
cud be done more simpler ? pls tel me..
hope this helps,
underearth
05-31-2006, 03:10 PM
hi ,
thanks ashish that really helps that script will be handy to me.
sunny
animationrigs
05-31-2006, 03:34 PM
hi ppl,
i generally prefer to lock my sdk graph nodes..so no mistakes can lead to breaking ur SDKs..
this code is what i use to lock all the SDK curves in the scene: make it a shelf and BAM !
cud be done more simpler ? pls tel me..
hope this helps,
Ashish,
Gave your code a go and so far it doesn't work for me. It finds the curves but locking them in this manner, they still show in the graph editor. Actually I can still edit it. hmm
Also, locking and hiding the channel will not work either. When you pick the object the curves still show in the graph editor. If you lock and hide the channel and then make sure the animators use "Show->attributes->keyable" from the graph editor that would work (ie sdk curves won't show).
This all seems crazy, but it can be a pain to "Revive" broken SDK's.
ashishdantu
06-01-2006, 07:15 AM
hi animationrigs,
uumm.. that lock of nodes will ensure ur SDKs r not broken...in a referencing environment..we r using referencing.......but yeah, they do show up in the graph editor...but in dotted lines and referencing keeps animators from touching ur SDK curves !
but i too wonder how u can lock the keyframes of an animCurve ! wud love to know how to do that...if u find out, pls tell us...
-rgds,
Andimation
06-01-2006, 08:37 AM
You just need to lock each keyframe on the animCurve.
setAttr -l 1 pCube1_translateX1.ktv[$key];
So just query how many keyframes there are and then interate through, locking each one. This wont be foolproof as you can still add keys.
But as you have said. It makes little difference if your using referencing.
Btw I also have a lock/unlock nodes script that I use. It has a little ui and colored widgets to know whats locked/unlocked.
ap_LockNodes.mel (http://www.andy-phillips.com/mel/ap_LockNodes.mel)
Andy
ashishdantu
06-01-2006, 12:11 PM
hi andy,
thanx for that tip.. how do other people make ur rigs fool proof ? would like to know....
is'nt there a way to tell graph editor, to not show specified or tagged SDK curves ?? or am i asking too much ??
-rgds,
CGTalk Moderation
06-01-2006, 12:11 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.
vBulletin v3.0.5, Copyright ©2000-2012, Jelsoft Enterprises Ltd.