View Full Version : Succesive breaking of joints through wiring??
robmaxwell 02-16-2003, 08:01 PM I am trying to accomplish a succesive breaking of joints through expressions.
I am wiring bones together for an fk style of spine animation. I want to rotate the base bone and have the children follow at twice the rotational value of the parent. The rotation works fine with basic wiring, but how do you get the childs rotation to happen at a later time than the parents?
I would like to offset each childs animation to take place 2 to three frames later than the parent's. What kind of expression do I need to do this in the wiring parameters box?
Any help would be greatly appreciated.
|
|
BrandonD
02-16-2003, 08:13 PM
Go to the MAXScript help file and look up "on time" or "at time" commands.
gaggle
02-16-2003, 09:25 PM
Hi robmaxwell,
Could you be so kind as to post your result when you get it working? I worked on something like that a while back, which resulted in a sort of catastrophic slowdown of MAX, the rig was completly unuseable. Some sort of transformation-calculation bug in MAX I suspected.
Anyway, when you get things working, I'd be very happy to hear if you end up having something that works, and how you made it work. Either via the forum or via PM.
.. actually if it's not super-bothersome I'd appriciate a PM so I don't accidentally end up missing it :). I looked high and low back then, and it would be real nice getting some closure on that case. At any rate, hearing how your solution fares would be super-cool.
And best of luck!
robmaxwell
02-16-2003, 09:44 PM
Thanks for the interest John (gaggle). I have it working great through wiring except for the time offset. I did the maxscript reference search like BransonD suggested, but it is confusing. I didn't see an example that I thought was useful to what I was trying to do.
If I don't find something out here I may go to Michael Comet's forum and post. I am sure someone there (if not Mr. Comet himself) will be able to help me. I mean, this really shouldn't be anything complicated. I don't have any kind of programming background, so I really do need a little push in the right direction to get this solved.
Come on guys, there should be one of you out there that knows how to offset time through the wiring dialogue box. It is so easy in Lightwave with the follower plugin (comes with Lightwave). Do you want Lightwave to outdo Max? The challenge has been set!:beer:
robmaxwell
02-17-2003, 03:12 AM
Okay, Still no solution.:thumbsdow
Tried Reactor to get the proper rotation for the spine, but still looks like no easy way to offset the timing.
Anyone have any suggestions on how to get the time to offset with Reactor? Actually looks like it would be easier to do within the wiring box. I dont' see anywhere you can use expressions with Reactor.
Any ideas? I would really like to get this one figured out.
Thanks:D
chepe297
02-17-2003, 05:10 AM
I made a character with parametric wiring for the hands where you can using sliders to curl each finger or make a fist, rotate the hand, etc.
This is what I did...
1) Create a dummy point which is the "hand control". The IK of the hand is parented to this "hand control".
2) Add custom attributes to the "hand control" (i.e. Animation -> Add Custom Attribute)
3) Assign Euler XYZ controller to the bones' rotational controller.
4) Assign float reactor to the desired rotational controller, which reacts to the custom attributes you just built for the "hand control" (this is the wiring part).
5) Use F1 to figure out how to do the wiring for float reactors (too complicated to put in words). Sorry...
6) While in the reactor Parameter dialogue box, use the "falloff curve" to adjust the "lag" you want.
I am using 3DS MAX 4 by the way and for further details, refer to "Mastering the Art of Production with 3DS MAX 4" by Jason Busby and Michele Bousquet. It doesn' t have step 6 though, which I figured out myself. Not sure if this is much help to you, but good luck anyway. :wavey:
Mahlon
02-17-2003, 06:03 AM
Still not exactly sure how you want it to happen. Are you saying you have, say, 4 bones in a chain. you rotate the parent bone over 10 frames; now you want the first child to follow until frame 3 without rotating and then start rotating on frame 3 and continue to rotate, and so on, successively down the line?
Mahlon
Reality3D
02-17-2003, 12:23 PM
I would use a Script controller instead of wiring. And the way to go is something like this
---------
dependsOn $parentobjectname
timelag=sliderTime-offset
at time timelag
(
rotemp=$parentobjectname.rotation.y
)
rotemp
---------
Basically you get the rotation of the parent at previous time(actual time represented by sliderTime var and a custom offset) and then put the value to our child object
CGTalk Moderation
01-14-2006, 10:00 AM
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.