eval on subframes?

Hola~

Is there a way to get Touch to eval subframes? The animation step controls only allows whole numbers.

Also, is there a way to control the step from a slider control?

MO

This should work. Monitor a CHOP channel or a panel Value via the text DAT, on value change run the clock command
derivative.ca/wiki/index.php … ck_Command

Hola~

I’m not having any love from this setup. Touch still doesn’t want to evaluate subframes. Anyone have any ideas?

MO

I guess it depends what your input and output from the system is? What are you trying to do that needs subframe evaluation.

For example I once had to do temporal supersampled motion blur to be rendered out to a movie. I had 30 FPS animation data and the movie was going to be 30 FPS. I decided to do 20 sub-samples per frame. So what I did was change the playbar FPS to 600 FPS (you can do this by pressed the button on the bottom right of the playbar, then pressing the + button on the new stowed bar that shows up). Then I accumulated each final image using a feedback TOP. I wrote out the image every 20 frames by putting ‘$F % 20 != 0’ into the ‘Pause’ parameter of the Movie Out TOP. I also reset the accumulated frame every 20 frames. I changed my animations to 600 FPS using an Attribute CHOP (to add quaternions) and then an Interpolate CHOP.

If your system is being controlled by CHOP data, you can also split it off into multiple streams, which one shifted to the sub-sample you are interested in, and drive your multiple copies of your system using these. Then combine the result of each stream as you see fit.

But again it all depends on exactly what you are trying to do.

Hola~

I have a bunch of data that is being imported into a CHOP via a Table DAT. All of the CHOP operations are frame/sample based. I also have a bunch of keyframe data. I’d like to slow down the whole scene by some factor.

If I change the playback rate, it mucks with the animation and all of the other operations.

Basically, I want Touch to evaluate the scene on a subframe so that the chop data works.

MO

It sounds like you could accomplish this by using your own custom CHOP index as your timing instead of the default playbar position. Using a Speed CHOP, you can control the rate of an index that drives all your CHOP operations and keyframe data. Touch will properly interpolate data across longer time ranges, for example, 40 frames of keyframe data can be played back over 200 frames with no problems.

Hola~

That sounds like exactly what I want to do. I don’t quite understand how I change the global lookup for all chops tho.

Can you post a sample file?

MO

speed (or count) CHOP into first input of a lookup CHOP, your animation channels into the second input. Repeat this for all your CHOPs or merge them into a single CHOP and then lookup.

If your animation data is generated via keyframes, you can use the speed CHOP as an input to the keyframe CHOP

Hola~

Oh, so basically it’s the lookup chop that’s doing the work. The lookup changes the values of all of the samples, which breaks a bunch of the expressions I have that are based on the sample frequency. I was trying to avoid this.

I want to record a movie with the samples at 100, 100.1, 100.2, etc… Is this possible in Touch.

MO

I would change the playbar FPS to do this. If your sample data is 30hz, and you want to sample 100.1, 100.2 etc, I’d change the playbar FPS to 300 FPS. You also want to turn off the ‘Real-Time’ Flag, so that Touch will render every frame and not skip any. The Movie Out TOP can still still set it’s 30FPS, so when it’s played back in a player, it’ll play back slower.

Can you give some examples of the expressions you are referring to, I’m still not 100% clear as to exactly what issue you are running into here.

Michael,

If you were using a chop index as the main index to the system you could do this since you would have a floating point index. You really should be using a speed chop as the main index.

Are you using $F in any of your expressions? You would want to replace that with a chop() expression referencing a float index. Unfortunately the touch playbar doesn’t do subframe so any use of $F will be need to be removed.

The bottom line is that the starting index should be a chop channel and you should not be using the touch timeline / $F variable.

Is it possible for you to switch to a floating point index using chops?

J