12

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.

cybrbeast
  • 2,388
  • 4
  • 24
  • 36
  • 2
  • 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? – cybrbeast Sep 05 '14 at 08:33
  • 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. – sambler Sep 05 '14 at 18:00
  • sambler, I don't quite follow, could you elaborate on this in an answer? Then I could mark the question as answered. – cybrbeast Sep 08 '14 at 08:15

4 Answers4

9

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

Leon Cheung
  • 27,718
  • 11
  • 89
  • 161
6

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.

Maccesch
  • 2,149
  • 18
  • 30
6

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

GIPeN
  • 121
  • 1
  • 3
-1

Another possibility is to select all events in your timeline and then resize the length.

quellenform
  • 35,177
  • 10
  • 50
  • 133
David NV
  • 1
  • 1