ScriptSpot

Script

Realtime Spring

By harrisyu · Credited author: Harrison Yu · 2007-03-10

Version
1.4
Version requirement
max8,max9
Other software required
tested on max8,max9,may not work in lower version
Date updated
2007-07-04
Votes
188
Download
Download
Description

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:harrisyu@tom.com

Additional Info

Just watching the video (find download link in Description)

Tags: Animation, spring, delay, lag, realtime, dynamic

Comments (30)

wow good script

neul · 2020-01-15

I have found an amazing script. I am animator student.
Can you please send me.

gksmf5749@naver.com

thx :D

need a good tutorial

nigelmerle · 2019-11-17

Hello can you please send me some tutorial by email
nigelmerlin@hotmail.com

cheers

RTSpring -> Max2012?

omphf · 2012-08-30

anybody get an fix for max 2012?
THX for help and time

Michele71 · 2011-01-03

Excellent job! One point to you :)

thank you

xyjiang · 2010-11-26

i like this.

br0t · 2010-11-25

This script is soooo cool for fish animation or general wavy secondary motion

One thing I noticed: I created a bone chain, selected the first bone and hit "create chain" in the script. so far so good. when I moved the bone, nothing really happened. The "realtime" preview in the viewport does only work for me, when Autokey-mode is OFF, and when the first bone of the hierarchy is parented to any control object. If I then move/rotate that control object, the realtime effect is visible in the viewport, just to note for anyone having the same problem.
Cheers

fix for 2011

orbital101 · 2010-11-16

Any fix for max 2011 or something simular?

thx

great work!

waterfromdust · 2010-11-08

thanks harrisonyu, for uploading this script. i originally found it on another site and, since i'm using max2010, it wasn't compatible.

so thanks to suvakas for editing the script!!

you guys rock and have really helped me out.

-jimmy

Love this

lsdinc · 2010-10-28

Loving this, I got to animate a prehistoric whale that moves like a sort of eel and this works beautifully.
Thanks a mill

Send some tutorial

A.K.Gandhi · 2010-10-19

Hi Harrisyu all the videos are corrupt.can u send me some tutorial brother?
I will be very thankfull to you!

br0t · 2010-10-15

harrisyu: thanks for creating and sharing!

suvakas: thank you for convertig to make it work in max 2011!

suvakas · 2010-04-18

Update for Max9 - 2011 ...

Hey all, I needed to do some fish animation and this script is just an awesome tool for that. Thank you Harrison for writing it!
Since the script used old ActiveX controls, then I converted it to dotNet instead. I hope the author doesn't mind? It should now work in Max versions 9 - 2011.

I uploaded it to my site. Maybe someone else finds it useful too:
http://www.jastudio.ee/failid/maxscript/RealtimeSpring1.4Max9-2011.ms

Take care,
Suvakas

3Drako · 2010-09-15

Hey Men, Tnx!!

Hey Man

A.K.Gandhi · 2010-10-19

Can U send me some tutorial on
my E-mail:akgandhi1011@hotmail.com.

W DIGITAL · 2010-10-20

hi gandhi,
the video works, but its chinese,
the main thing is that u build a chain of objects, with parent-child hierachy, use my parentize script to do this quickly and automatically,
then you select the first parent of the chain

run the realtime script

and hit
build chain

now start moving the object!

you can click FORCE UPDATE so it constantly updates itself, then it becomes alive!
its really easy to bake the animation if u need to,
but playing with it in realtime is even more fun! :)

Hi MINDFLOW

A.K.Gandhi · 2010-10-28

When I add key frames and move the spring nodes it doesn't work properly.And how to bake the animation.

savascetin · 2010-02-01

Any plans to update this script for max 2010 64 bit?

capcaverna · 2009-11-27

have any version this to max 2009 x64?

W DIGITAL · 2009-09-17

can anyone rewrite for max2009?

Gspoutnik · 2009-05-18

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 · 2009-03-03

thank you Harrison Yu
very useful

i downloaded script
it works
but video link :(
if you can reupload it please

thanks

euroanim · 2008-09-13

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 · 2007-11-14

thank you!

i was thinking about it like this too.

so impressive~

lalamax3d · 2007-05-15

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 · 2007-05-16

Of cause,you can use this script and modify it for your use.But please keep the author information.

euroanim · 2008-09-13

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.

JohnnyRandom · 2007-03-13

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

Thanks,

John

lalamax3d · 2007-05-01

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

harrisyu · 2007-05-02

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)