PDA

View Full Version : New Animatable Pivot controller for 3ds max


phoelix
08-07-2009, 05:08 PM
Hi there,

Some time ago i was working in a animatable pivot rig, and i came up with a solution programming a controller in C++, it is actually a constraint that enables any object to use the position of other object as pivot. well... actually it has a linking behaviour, but it enables an easy way to offset the pivot object from the main object to make a sort of animatable pivot effect.

I invite you to take a look at this controller, you can download it from here: http://www.joleanes.com/scripts_plugins/animatablePivot.html.
And you can also watch a video tutorial about this controller here: http://www.joleanes.com/tutorials/animPivot/animPivot.html.

I'll be glad if you can give some comments about this, and if you like new ideas about improve it. Thanks, bye.

Polimeno
08-07-2009, 10:35 PM
hey Felix, well done.
what i liked most is the fact about been a list controllers (constraint).

is it stable under complex riggings - e.g characters hand/foot/spine - or hierarchies (parent/child) ?

what does TRANSFORM button do ?

iŽll be glad if you share the concept behind it.

seeya, congrats again !

Ruramuq
08-07-2009, 11:22 PM
Very nice Phoelix!
you're method looksvery similar to the one I did.
there is something I noticed, perhaps its normal:

$.scale.controller = bezier_Scale()
-- Unknown property: "controller" in [1,1,1]

phoelix
08-08-2009, 12:05 AM
hi thanks guys,

polimeno, well, yes this controller were designed to work within a hierarchy and can be used to build up that kind of rigs, but the main object only inherits transform from the pivot object, so if you need to put it within a hierarchy you should link the pivot object instead. The controller has 2 subcontrollers, one is a bezier position that controls the pivot offset regards the object and the second controller is a matrix3 controller that holds the transform of the object itself, if you press the trasform button it will show the parameters of the transform controller below, if you press the pivot button , it will show the pivot controller properties instead (i forgot to mention that :P). Both objects, the main object and the pivot share the subcontrollers. but both controllers are diferent, the both were need to make functional the method.

Ruramuq, well, i think that was not suposed to happen , i need to check that, but meanwhile, you can use:

$.controller.transform.controller.scale.controller=bezier_Scale()

that should do the job, in this case i'm writting the full path for that scale controller, the problem has something to do with the fact that the transform controller that holds the scale controller is a subcontroller of the pivot constraint

Polimeno
08-08-2009, 12:25 AM
yes this controller were designed to work within a hierarchy and can be used to build up that kind of rigs, but the main object only inherits transform from the pivot object, so if you need to put it within a hierarchy you should link the pivot object instead. The controller has 2 subcontrollers, one is a bezier position that controls the pivot offset regards the object and the second controller is a matrix3 controller that holds the transform of the object itself, if you press the trasform button it will show the parameters of the transform controller below, if you press the pivot button , it will show the pivot controller properties instead (i forgot to mention that :P). Both objects, the main object and the pivot share the subcontrollers. but both controllers are diferent, the both were need to make functional the method.


thanks a lot !

by the way,
is there any chance to make via MXS by its API function ? e.g.


test = felix_AnimPivot()
test.Pivot $someNode
test.translate_pivot = true
test.pivot_keys_in_step_mode = true
test.state = transform


so we can script your script =P

phoelix
08-08-2009, 12:42 AM
yes polimeno all that can be done through maxscript. And thanks for asking :D, i have added a full description of the properties and methods that can be accessed in maxscript:

http://www.joleanes.com/scripts_plugins/animatablePivot.html

Ruramuq
08-08-2009, 12:53 AM
$.controller.transform.controller.scale.controller=bezier_Scale()
that should do the job, in this case i'm writting the full path for that scale controller, the problem has something to do with the fact that the transform controller that holds the scale controller is a subcontroller of the pivot constraint
yes, I see, well not exactly, I noticed the problem, because of a tool I have to reset tracks by rebuilding them, it's suposed to work on transform controllers that include pos rot and scale tracks, I think Max expect that behaviour from transform controllers, otherwise it wont be compatible with freeze transforms,etc.

··

Polimeno
08-08-2009, 02:48 AM
yes polimeno all that can be done through maxscript. And thanks for asking :D, i have added a full description of the properties and methods that can be accessed in maxscript:

http://www.joleanes.com/scripts_plugins/animatablePivot.html

great !
and again, thank you for sharing it.


OFF TOPIC

tried to download your chainsTools_1.32.zip and didnŽt work...the link is down...=(

phoelix
08-08-2009, 03:58 AM
Ruramuq, yes you're right, and thanks for noticing, i have already fix the issue, but i have only been able to compile the 9-2008 and 2009 versions with the fix (already on the website), i dont have access to the 2010 sdk until monday :(.

polimeno thanks for noticing that, now that's is fixed too XD

IkerCLoN
08-08-2009, 09:38 PM
Wow, Félix, this is very interesting and useful. Gotta try it! Thanks for sharing your knowledge again, dude :)

phoelix
08-09-2009, 06:07 PM
hey Iker, i'm glad that you like it :D, hope that you can find it useful

Duncs
08-11-2009, 12:52 PM
This looks too good to be true - thanks a million for sharing!!

CGTalk Moderation
08-11-2009, 12:52 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.