11
$\begingroup$

Most 2D animation software can render the animation 'frame-by-frame'. There are no smooth transitions between each frame, and each frame after is usually blank, and the artist re-draws the scene, a bit different. The last can also sometimes be altered for a new frame. It will be like an animated lego stop-motion like film:

enter image description here

My goal is to be able to have my scene all set in frame one and then duplicate that scene to the next frame to be altered and to not 'smooth' the animation frames.

Question:

Is something like a stop-motion (no actual footage) possible with CGI in Blender? If so, how do I go about creating this environment to animate with?

$\endgroup$
5
  • 2
    $\begingroup$ Do you have an issue with just changing the frame rate to something like 10 FPS and animating as normal, only with keyframes every frame? $\endgroup$ Commented Jan 18, 2018 at 3:02
  • $\begingroup$ I need to animate something quick and would like to not mess with the 'smooth transitions' (if that's what it's called) because, for me, it takes more time making sure every part of the smooth animation looks accurate. With the stop-motion animation, that's not a problem, (and yes, I will need to turn down the FPS), because I will not have to match everything perfectly. $\endgroup$
    – RATIU5
    Commented Jan 18, 2018 at 3:08
  • 1
    $\begingroup$ I'm not sure what the problem is. If you have a keyframe set every frame, like you would in stop-motion there won't be any interpolation (that's what it's called). $\endgroup$ Commented Jan 18, 2018 at 3:10
  • 1
    $\begingroup$ set the interpolation to constant. See: blender.stackexchange.com/questions/57779/… To change the default interpolation use the system preferences. $\endgroup$
    – user1853
    Commented Jan 18, 2018 at 3:17
  • 1
    $\begingroup$ Possible duplicate of: How do I make the f curve 'non-existent', and have simple on/off motions? or Elegant way to animate a binary value? or blender.stackexchange.com/questions/52097/… $\endgroup$
    – user1853
    Commented Jan 18, 2018 at 3:24

3 Answers 3

20
$\begingroup$

The default interpolation between keyframes is bézier, which will make smooth motions that start from 0, accelerate and decelerate before stopping or changing direction.

enter image description here

Interpolation can be changed in the curve editor (or the dopesheet editor) to be constant, meaning that there will be no in-between transformation between keyframes: Elements will remain unchanged until the next keyframe.

enter image description here

To change interpolation, select the keyframes, press the T key and select constant.

To change interpolation permanently, open the system preferences (Ctrl+Alt+U), and in the editing section set the interpolation you want to use.

enter image description here

$\endgroup$
1
  • 8
    $\begingroup$ I'd add that one can select the curve at any two or more points and press T to change the interpolation. $\endgroup$
    – iKlsR
    Commented Jan 18, 2018 at 5:18
12
$\begingroup$

Usually, the animations made in Blender might seem smooth. But they're not! Actually, every animation is like a stop-motion movie: at every frame, something changes a little bit, creating the illusion of movement.

Usually, every frame only takes 1/30 of a second, so you can't actually see individual frames, just motion that appears to be smooth. If you lower the number of frames per second (fps), as other users have suggested, you will start to see individual frames, giving you the blocky-movement effect you seem to be looking for.

In Blender, it is easy to achieve this. In the scene tab of the properties panel, open the Dimensions section. You will see something like this:

Screenshot

Now, under Frame Rate, select "Custom". Since the original fps was 24, we'll divide it by 10 and enter 2. However, the animation will appear too slow, because we've reduced the fps. The solution? We'll re-map the time! Under time remapping, set "New" to 10. This will speed up the animation 10 times, because 100/10 = 10. You also have to divide the start and end frames by 10, or your animation will be too long. So, in our example, we should have this:

Settings

Your animation will now look blocky, like stop-motion.

Here is an example:

24 fps (original)
24 fps

2 fps
2 fps

In comparison to cegaton's answer, this method has advantages and disadvantages:

  • Advantage: this technique will significantly reduce the render time, because every frame is only rendered once, and not 10+ times.
  • Advantage: You don't need to worry about individual keyframes, so this method is relatively simpler.
  • Disadvantage: you will have no control over the length of individual frames. They will all be the same length (unless you change that in post-processing, which might be tedious.
  • Disadvantage: you can't have smooth animation together with blocky animation in one scene.
$\endgroup$
4
  • $\begingroup$ I do like this method as well, I may use this one in the future. $\endgroup$
    – RATIU5
    Commented Jan 18, 2018 at 4:10
  • 4
    $\begingroup$ As an added note, you should disable motion blur. $\endgroup$
    – user1853
    Commented Jan 18, 2018 at 4:21
  • 5
    $\begingroup$ Advantage: this technique will significantly reduce the render time, because every frame is only rendered once, and not 10+ times. You mean blender is not smart enough to render once, output 10+ times? $\endgroup$
    – RobIII
    Commented Jan 18, 2018 at 9:45
  • 3
    $\begingroup$ @RobIII, I meant that, if you use cegaton's technique, Blender will render the same setup multiple times, because most frames are the same as the previous frame. Blender itself is not smart enough to recognize duplicate frames (I think), but I suppose you could write a script that only renders the frames that have a keyframe. $\endgroup$ Commented Jan 18, 2018 at 13:33
0
$\begingroup$

One option that hasn't been mentioned in the older answers.. There's an f-curve modifier: 'Stepped Interpolation', which can, for example, automatically double-frame animations which have been keyed normally, (and whose tool-tip expressly suggests it is to simulate stop-motion).

If you need to copy the modifier to multiple channels, this answer shows you one method.

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .