Notifications
Clear all

[Closed] [betatest] Timewarp plugin

I’ve just finished the first version of a new free scripted plugin called “Timewarp”. I would like some feedback and suggestions before releasing it to the general public.

Basically it does the same as the ‘playback graph’ from the point-cache modifier but then for an entire node, it creates a sort of ‘local time’ separated from the main time. It can be used for bullet-time effects, retiming a camera movement, speeding up/slowing down or freezing part of an animated object with a nice curve, reversing, etc…

This video shows it in action and explains it visually, it all looks a bit slow but that due to the recording software, it very fast (just make sure timewarp is the bottom most modifier on the stack)

http://vimeo.com/27355664 (should be done in about 10 minutes after posting this)

The way it works is it animates the object’s keyframe positions (yes read that again ) so that at the currentTime it matches the time value given by the plugin’s time graph. If you disable the modifier it places all the keys to their original position so you can edit them as normal. Enabling the modifier start the timewarp effect again.

I’ve attached the script (after evaluating it in the editor it should show up in the modifier list, or place in a ‘script/startup’ folder for permanent installation). And the sample scene (max2012) from the video is included as well, just enable the modifier on the stack to see it in action.

The source is fully documented so make sure to have a look at how it’s done!

A few know limitations for now: Instancing the modifier it is a bit flacky at the moment so just use it on one node at the time. Also nodes that share keys trough animated materials etc will all get affected…

9 Replies

does the EasyCurve not do the trick?

Do you mean the ease in/out curve? Just try to retime a very complex animation with lots of keys, controllers and curves…

The reason I wrote this is for a animation project of a construction process, they want some parts fast and have a bullet-time slomotion effect of a number of important parts.

I just do the animation at a constant speed, then use this to slow down / speed up certain parts… it’s easier to tweak and adjust a single curve compared to a lot of objects with all different keys.

I can freeze it, swing the camera around and continue… those kinds of things

1 Reply
(@denist)
Joined: 11 months ago

Posts: 0

no, i don’t. search mxs help for[b] addEaseCurve

[/b]i made several animation tools based on easycurve usage. so i know the subject.

if you add the same EasyCurve to all animated controllers it will do time re-map for whole scene using only one curve.

What the… since when has that been in max?

it was in max 6 for sure… maybe sooner.

Allright… did I complete rewrite using the EaseCurve functions, much better new script version attached.

  1. Just animate some objects, transforms, modifiers etc…
  2. add the timewarp modifier
  3. press ‘(re)create curves’ button, this sets up the EaseCurves for all animated controllers
  4. Animate timewarp variable and see effect. Ths variable is the master control for all the easeCurves

(max demo scene included in zip)

-If you disable the modifier on the stack the timewarp effect stops as well so you can modify the object as normal, enabling it reactivates the timewarp again.

-If you add a new animated controller to the node after creating the timewarp effect it isn’t affected yet, you’ll have to press the ‘(re)create EaseCurves’ to include it in the effect.

-pressing ‘remove EaseCurves’ does just that.

edit small bug: effect doesnt update when object is not selected, I’ll fix that

update 2.1 attached

Much better performance when uses on multiple objects and some bug fixes…

Hey man! Really cool! Thanks for sharing it