So this video of the burning earth is one of my first (Blender) videos. I had made the quite arbitrary choice to let the earth turn in 10 seconds. It seems a little too fast ? Is there a way to "calculate" the best speed/duration for such a video ? And are there any tools in Blender to "play" with the speed of your video ? I guess I should study relevant concepts for this kind of work because now it is a bit of trial and error.
It seems a little too fast?
There is no "right speed" when it comes to animation. It all depends on what you are intending to do.
Is there a way to "calculate" the best speed/duration for such a video ?
Best (or any other superlative) is beyond the scope of this site, as there is no categorical way to answer...
But calculating the duration of an animation is not only possible, but absolutely necessary for anyone trying to express ideas through animation.
To only way to get a sense of how your animation is working out, is to pre-visualize it in real time, meaning: evaluating while playing back at a sustained pace at the target framerate.
For simple scenes you can just playback the animation on the 3D vieport at the desired target rate.
As the scene gets more complex your system might not be able to compute the transformations in real time.
As you play your scene you'll see a number on the top left of the screen that reflects the actual playback speed. If those numbers are red it means that the playback speed is not the correct one and what you are seeing is not an accurate representation of your scene.
At that point you can use a multitude of strategies to get a sense the actual pace of the aninmation:
Visualize things in wireframe mode or bounding box.
Do a quick render in OpenGL
Render a low resolution file using a single simple material for the whole scene. Simplify it by reducing the numbers of subdivisions, baking all bakeable actions/surfaces/simulations. Hide objects that do not move or are irrelevant to the elements you want to evaluate. In other words, use every trick you can think of to simplify your scene and accurately evaluate it.
In short, make sure you have a good idea of what the pace of the animation is before you spend a lot of time rendering the real animation in full detail, only to find out errors that could have been prevented by pre-visualizing.
How do you modify the timing of animated objects?
The pace of animated objects is an easy formula: how much are the elements transforming over how many frames (time).
To slow something down you need to have less transformation occur on the same number of frames (time):
Or have the transformation occur over a longer period of time:
In the simplest form of animation you have a start key frame and and end keyframe. Spacing the keyframes apart in time will make the transformation slower, getting those keyframes closer together will accelerate the transformation.
See this post for more details
For complex animations where all the elements are working fine with each other, and you don't want to affect the placement of keyframes in any way, you can use the Time-Remapping tool on the "dimensions" section of the properties panel:
More info on this post.
And are there any tools in Blender to "play" with the speed of your video ?
There are, and they should really be avoided and thought of as the absolute last resort.
Re-timing a rendered video is only going to create a new set problems. Not only will you be dealing with decompression-recompression issues, and multigeration quality loss, but even if your workflow involves real lossless formats you will be dealing with some form of spatial and temporal interpolation that blender handles very poorly.
When you are re-timing video, you are either creating new information for new frames by interpolating existing ones, or discarding/combinig frames to compress the time. Depending on how severe the changes are you'll be introducing stuttering/flicker to scene or will have issues with inaccurate motion blur.
To re-time video properly you need some form of otpical flow. Blender does not have any such tools.
There are some amazing tools out there that will allow you to re-time video like twixtor (Not cheap) or slowmovideo (open source) both require in depth knowledge to make them work correctly... Adobe Premiere, Davinci Resolve or Fusion have basic tools for optical flow
It is a bit of trial and error.
Just like life...
So to summarize:
Try to get the rhythm of your animation before you render, not as an afterthought.
Play Rendered Animation Speed
The default Blender video sequence player has keyboard speed controls. The menu choice in 2.77 is [Render/Play Rendered Animation]. Numpad 0-9 as an excerpt.
This allows you to keep your camera panel final render settings untouched. You will see the speed effect with [no] explicit screen text or graphics to confirm your choice. In the video player press [shift] to see filenames and fps frames per second. This worked for .png image sequences.
The timeline window alternate has an alternate frame range. This setting affects 3D View [play animation] and [Render/Play Rendered Animation] as well.
If you choose not to use the Blender internal playback keyboard controls, there is another alternative. Lowly recommended. A quickly created new scene with [Copy Settings] will allow you to have a second choice for playback of the rendered images sequence. Thus the Blender user can use the Camera Render panel to select a new speed and frame range for Play Rendered Animation. New Scene just to playback rendered sequence with speed or frame range changes. Thus the original scene remains intact.
A quickly created new scene with the a new VSE editor can examine any frame range of any sequence at any speed. Thus the original scene remains intact.
If you create an image sequence with Blender such an .pngs or .jpegs they can be be played back at variable FPS frames per second by changing frames rate in the render settings panel with the camera icon. Playing Back an image sequence is not a great amount of CPU Consumption. So final view may have one rate. Inspection may have another rate. Or the range of frames for inspection may be changed. This affects the playback rate from the menu for image sequence [play rendered animation].
Of course the Camera Render panel will show your current choices explicitly. You can choose to use the same scene to change settings. The Blender user must remember to set the appropriate rate for a movie final render. The techniques above eliminate the need to remember settings with the burden of new scenes.
Sometimes I watch a video slower to look for defects. Faster when I feel its too slow.
The playback of render command is printed to the console where it can be seen and copied. Thus you can issue the the command to your Operating System Console. Name separators must be inspected. \\ or \ as an example. As an example you may want to examine a certain range of frames. The Timeline window also as an alternate range of frames.
'C:\\Program Files\\Blender Foundation\\Blender\\Blender2.77\\blender.exe -a -f 24 1.0 -s 1 -e 8 -j 1 J:\\A\\3D\\Blender\\C\\D\\E\\F\\G\\image_516_0001.png'
See this link for more information
The Video sequence editor is capable of slowing down image playback in the same way.
If you happen to like a different speed you can then to decide what combination of scaled keyframes or different FPS will help you. If your actions are a NLA strip they can be scaled.
Yoo Toob has a speed control on screen.
Add your Scene to the VSE and add a Speed Control Effect Strip on top while it's selected. You can then just grab your Scene Handles to adjust its length and the Speed Control will do the magic.
And since 2.76 Blender even calculates correctly interpolated subframes of your animation to be played back propely:
Speed Effect can re-time scenes with subframe rendering.
Make sure, your Sync Mode is set to AV-Sync.
For calculating the time, say you need 60 seconds of an animation then it is 25 frames multiplied by 60 seconds giving you 1500 frames so for any real time calculations the number of frame rate multiplied by the desired time gives the exact number of frames suitable for the animation.
About the speed of animation, I have always scaled the keyframes where necessary in the dopesheet to make some parts in the animation fast or slow but that could mean adjusting other keyframes too, increasing the number of frames or even more render time than planned so it is better to always play the finished keyframed part to check out its play speed before taking more steps into animation creation.