Realtime Spring
After watch a few rigging reel using xsi or maya,I think that it would be much easier in animating if the rig has realtime delay effect.
But I was confuse how to do in max until I got a sample scene from zhangy(www.zhangy.com).
After study that scene,I wrote this script.I give a name:realtime spring.But it doesn't have the "shake" effect,I mean when the dynamic object reach the driver object's position it would stop.So it actually make a delay effect.
a demo video shows how to use it: http://www.seageo.com/Product/maxRTSscript/videotour.rar
and 2 video about making loop animation:
http://www.seageo.com/Product/maxRTSscript/makeloop1.avi
http://www.seageo.com/Product/maxRTSscript/makeloop2.avi
A fish swimming scene(max9): http://www.seageo.com/show/UPLOAD/fish(max9).zip
It's preview animation:http://www.seageo.com/show/UPLOAD/fish.rar
My english is bad,so I recode the video in chinese,hope you understand the usage.
I am not good at R&D too,so it has much more space to improve.
Maybe someone would make it better.
ps:script tested in max8 and max9.
Thanks to:
Zhangy(make the basic idea)
Mingyu (for testing ang making fish example scene)
update version 1.1
fixed:error when the scene has biped object.
update version 1.2
fixed:script controller error in max8.
update version 1.3d
*add filter fucntion to manage spring node by comment.
*loop before bake:loop animation few times before baking,get stable action in loop animation
*bake animation speed,when you get good movement with different animation speed,use this funciton to bake it.
*subsample,use "bake with subsample frames" button to do more percise calulation.
update version 1.4
*press esc key to exit when baking
*make it work in max8
update version 1.4g max8
*fix some bug in max8,and take away the "force update" function.
http://www.seageo.com/Product/maxRTSscript/RealtimeSpring1.4gmax8.zip
My email:[email protected]
Just watching the video (find download link in Description)
Comments
hello and thanks for this
hello and thanks for this magic script.
Is it compatible with 64bits???
All are ok with my 32bit vista but i have a runtime error with my 64bits "activeX: MSComctlLib.ListViewCtrl "
Thanks
thank you Harrison Yu very
thank you Harrison Yu
very useful
i downloaded script
it works
but video link :(
if you can reupload it please
thanks
Hi Lala, Could you please
Hi Lala,
Could you please share the modified script.
Realtime Spring is one of the very useful scrip.
Unfortunately its not working in 3DS max 9 or higher version.
I guess it is becouse of activeX / dot net issues.
It is not working in 3ds max 9 ?any work around?
regards
animator,
Euroanim.
Hi, Realtime Spring ..its
Hi,
Realtime Spring ..its one of the very useful piece of script I ever used.
Unfortunately its not working in 3DS max 9 or higher version.
I guess it is becouse of activeX / dot net issues.
Do you have a work around to use it in in 3ds max 9 ?
or Could you please update the script compatible in 3ds max 9 or higher?
regards
animator,
Euroanim.
thank you! i was thinking
thank you!
i was thinking about it like this too.
so impressive~
Of cause,you can use this
Of cause,you can use this script and modify it for your use.But please keep the author information.
http://www.seageo.com/Harrison/
hey, thanks man!...
hey, thanks man!... description is helpful....
can i use your script / definition and modify this for my use.? actually sometimes i need this functionality to embed in a rig so animator can change only certain controls >> ??
thanks again for helping and support..
regards
lala
regards
lala (http://www.lalamax3d.blogspot.com)
Hi!Lala:It was inspire by
Hi!Lala:It was inspire by Zhangy's sample scene,so it took me some time to understand.And here is a small explanation:
if this.enabled then (
--*I add a custom attributes to the script controller,so every time the script controller execute,current vector speed of the node whould store in a custom attributes "v".
--"df":damping factor;"-this.v*this.df":faster speed cause more damping effect and it's in nagitvie direction
--"sf":spring factor;"(DrvNode.pos-this.cValue)*this.sf":bigger distance cause bigger spring effect.
this.v=-this.v*this.df+(DrvNode.pos-this.cValue)*this.sf
--the following happened when speed is too faster
if abs(this.cValue.x)>=10000 then
(
this.v=[0,0,0]
this.cValue=[0,0,0]
)
--the following calculate the time duration since last evaluate of this script
--with this the spring node movement would sync to the time
cTime=timestamp()/320 as float
diff=cTime-this.oldTime
this.oldTime=cTime
if diff>0.1 then diff=0.1
if diff<0 then this.cValue
else this.cValue+=this.v*diff
)else(DrvNode.pos)
http://www.seageo.com/Harrison/
very nice and imressive
very nice and imressive work.
i wish someone just wrote a float spring controller for max as a plugin.
ne ways.. this will a lot as well. specially if you could provide little document / notes about spring controller parameters you added to script controller and how they all work
because i was kind of stuck at same level after watching those maya and xsi rigs :)
thanks and regards
lala
regards
lala (http://www.lalamax3d.blogspot.com)
Mind reader, I was just
Mind reader, I was just thinking about something just like this to attach a camera too!
Thanks,
John