Jump to content

Time Warp


Mario Marengo

Recommended Posts

...deep in production hell over here, but I thought I'd share a tiny insight from the trenches...

A couple of days ago I was faced with having to re-time a complex animation requiring playback time to ramp up and down with sections becoming almost "bullet time"... and of course with only a couple of hours in which to do it.

So I went into chops and tried several combinations of Stretch, Trim, Shift, Spline, Composite, Math, etc... couldn't get what I needed (then again, my chop knowledge isn't all that deep, so maybe I missed a pre-packaged solution). Long story short: I ended up rendering the sequence at the slowest rate, and letting the inferno artist do the time-warp over there (motion blur is all wrong of course, but this was for a test anyway), hoping to buy some time to figure out some solution for the real render.

As I sat there watching them set up the speed curve in inferno (a curve with values of 100 for "100% playback speed", 200 for "200% speed" etc), it suddenly dawned on me that this looked very much like an acceleration curve (well, duh!)... and the penny dropped.

Here's a very simple, bare bones implementation of the idea (just the stuff I need for the shot): take the integral of the control curve, and use that to lookup the animation channels.

chop_timewarp.zip

In this HDA, the "playback speed" control curve is normalized to 1, so a value of 1 means "play at normal speed", 2 means "double speed", 0.5 is "half speed, etc. See the example hipfile.

If any of you guys have the time and inclination to turn this into a propper tool, here are some of the flaws with my current quick'n'dirty version (none of which affect my shot so I don't care right now :) ):

1. The lookup is a point sampling, so high frequency animation that gets sped up a lot will suffer from temporal aliasing (resample chop to the highest needed rate first?).

2. The interpolation between samples is implicitly linear (a non-issue if #1 is solved across all frequencies).

3. The feature set is, uhmmm... "minimal" :) -- for one thing, instead of allowing for "re-timing to original length" it should let you fit to an arbitrary length...

There are probably a few more features needed, but I gotta get back to work...

Cheers!

P.S: You might need to give the export chop a kick to wake it up by MMB on it.

P.P.S: and here's where someone says: "OMG, you just needed to use the ____ chop!... thanks for reinventing the wheel, though..." :)

Link to comment
Share on other sites

I haven't looked at any of this but did you try the Warp CHOP?

Hahaha :lol:

See? I knew it! ... I tried just about everything *except* the warp chop <sigh>... perhaps the warp chop should be included in the "see also" section of the stretch chop (and viseversa)?

That's pretty funny though :)

Alright people. Nothing to see here. Move along now.

Thanks Edward!

Link to comment
Share on other sites

I really didn't (and still don't) know though. The Warp CHOP could do something totally different from what Mario wanted.

Heh... that's the funny part: they're pretty much identical, almost down to the parameters :)

And, judging by the blurb in the help card, the underlying algorithm is also the same (I wonder if it also suffers from temporal aliasing in extreme cases... haven't checked).

I think what threw me off is that, in my panic to get it done, I mostly looked at the chops in the "Timing" section of the Tab menu (and the ones listed in their "see also" section), and warp is not included there (H8.1.739) -- perhaps it should.

But yes, it was *exactly* what I was looking for, so thanks again Edward :)

Cheers!

Link to comment
Share on other sites

I'm guessing that the word Time was dropped because what else could you be dealing with in CHOPs? :)

I know... you'd think that I'd have searched for "warp", but the word didn't pop into my tiny brain until I had to name my own HDA (at which point I had stopped looking, natch) -- senility setting in, d'ya think? :blink:

And btw, finding this godforsaken chop defeated both Jim and I for the 30 minutes or so that we spent looking.... hmmm.... wonder what that says about us... or about our ability to carry out our evil plot to take over the world... or... hmmmmm. But I digress... I think... no; maybe I just digest... disect? Oh wait! I know! It was Jim's fault! ... hmm; nope; that wasn't it... AHA! It was SESI's fault! Yyyyessss! :ph34r:

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...