Realtime Spring

188 votes
Version: 
1.4
Date Updated: 
07/04/2007
Author Name: 
Harrison Yu

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]

Additional Info: 

Just watching the video (find download link in Description)

Version Requirement: 
max8,max9
Other Software Required: 
tested on max8,max9,may not work in lower version
Video URL: 

Comments

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
Gspoutnik's picture

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

shady sobhy's picture

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

euroanim's picture

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.

euroanim's picture

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.

enjys77's picture

thank you! i was thinking

thank you!

i was thinking about it like this too.

so impressive~

harrisyu's picture

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.

lalamax3d's picture

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 

harrisyu's picture

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)

lalamax3d's picture

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

JohnnyRandom's picture

Mind reader, I was just

Mind reader, I was just thinking about something just like this to attach a camera too!Laughing

Thanks,

John 

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.