9
$\begingroup$

I'm using an image sequence in a material, it draws a series of incremental model outputs for a flooding on a landscape. However it's moving too fast for the rest of the flyover animation. It doesn't have to be completely smooth, so I'm hoping I can slow it down by say only using 1 frame of the image sequence for every 2 frames of the animation, or some other ratio. In other parts I would like to speed it up again. Is there a way to do this?

I can think of one way to hack it and that would be to write a python script which duplicates some interval of the image files and then changes the sequence numbers, but I'm hoping there is a more elegant way.

$\endgroup$
  • 2
    $\begingroup$ possible duplicate of Change Image sequence frame only every nth scene frame? $\endgroup$ – gandalf3 Sep 4 '14 at 18:03
  • $\begingroup$ gandalf3, yes it is somewhat of a duplicate, but I don't think the answer to your question was satisfactory. If I want to do that method on a 5000 frame animation it will take forever, my suggested hack would be quicker. Maybe there is some Python magic that could be applied in Blender? $\endgroup$ – cybrbeast Sep 5 '14 at 8:33
  • $\begingroup$ To change the speed so you have 5,000 images played over 10,000 frames of blender animation, you should only need two keyframes - frame 1 is image 1 and frame 10,000 is image 5,000 - ensure vector handles are used in the graph editor for a smooth change. For python magic use a driver instead of keyframes and make a python expression calculate which image to use based on current frame number. $\endgroup$ – sambler Sep 5 '14 at 18:00
  • $\begingroup$ sambler, I don't quite follow, could you elaborate on this in an answer? Then I could mark the question as answered. $\endgroup$ – cybrbeast Sep 8 '14 at 8:15
8
$\begingroup$

It is possible by using drivers:

  1. Add an Empty object somewhere;
  2. In its Object panel, choose one Transform channel (such as Z Scale), type in #frame, then hit Enter to confirm. It will add a quick driver for the empty, make the Z scale value the same as the current frame number (e.g. If the current frame is 6, then the scale value will be driven to 6 automatically).

  3. In Cycles Material node editor, move the mouse cursor over the Offset in Image Texture node, hit D to add a driver.

  4. Open Graph Editor, switch to Driver mode, keep that node selected and you'll see the driver added. Set a variable based on the Z scale property of that Empty object. Type the expression like this: variable_name * speed_fac.

For example, in the example below, I used the variable name as var by default, and use 3 as speed factor, which means to make it playing 3X speed up.

enter image description here

enter image description here

NOTE:

  • It's recommended to control node-related drivers by object transform, which is the tricky part, due to the current dependency limit on nodes.

  • If The warning message occurs (as below), click Reload Trusted.

enter image description here

$\endgroup$
4
$\begingroup$

Using basically the same idea as the answer from Leung Cheung you can use keyframes to animate the offset property for the image texture.

Go to the first frame (Shift+), hover the offset property and press I to insert a keyframe. Then navigate to the last frame and enter the new offset value (lower if you want to slow down the texture animation) and again insert a keyframe.

In the F-Curve editor you can then adapt the speed of your texture animation. Even speed ramps are possible that way.

$\endgroup$
3
$\begingroup$

Add effect strip -> speed control, then just make your image sequence length to 2 times or what you want See it in the manual

$\endgroup$
  • 3
    $\begingroup$ Welcome to the site :) You might also want to add that this has to be done separately in the VSE. $\endgroup$ – gandalf3 Jun 20 '15 at 19:56
  • $\begingroup$ thanks, this worked out for me! $\endgroup$ – Evgeny Bobkin Jun 17 at 17:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.