Join GitHub today
In this tutorial you will learn how to drive your animation project using “Remake”. By following this tutorial step-by-step you will get your first very simple animation short done with “Remake”.
First of all you will need “Remake” itself installed. You have a few options:
The easiest way to install “Remake” is to get rpm/deb packages from here: http://download.tuxfamily.org/morevna/morevnapackage/binaries/remake/.
Install from source
This is an option for advanced users that requires more actions from your side. It have its own advantages, i.e. you can install development versions of “Remake” or use custom installation prefix.
Go to http://github.com/morevnaproject/remake/archives/master, download tarball and unpack it somewhere. Then cd into unpacked directory and run:
This will install remake into ‘/usr/local’ prefix. You will need root previlegies to do that, so use “su -c” or “sudo” depending on your distribution
You can also specify the prefix you wish install to:
$ ./install-remake /custom/prefix
Be aware that when using custom prefix you will need to add path to “Remake” binary into the system path:
$ export PATH=/custom/prefix/bin:$PATH
Note: If you will decide to uninstall remake with ‘./uninstall-remake’ command, then you will need to specify the prefix as well ‘./uninstall-remake /custom/prefix’.
Installing required software
Next step – make sure you have all requirements installed. To successfully run “Remake” and complete this tutorial you will need:
“Make” is a utility that controls the generation of non-source files from the project’s source files. “Remake” uses it to detect which files in the project were changed and need to be re-rendered. Typically “make” provided by all Linux distributions – just install corresponding package.
“Blender” is the free open source 3D content creation suite. It is also have simple, but very powerful Video Sequence Editor used by “Remake” for editing footage. Make sure that your version of “blender” is compiled with FFMpeg support. You can download FFMpeg-enabled “blender” binaries from the official website or get rpm/deb packages here (recommended).
“Synfig” is a powerful, industrial-strength vector-based open-source 2D animation software package, designed from the ground-up for producing feature-film quality animation. You can get precompiled binaries of “Synfig” form the official website.
When you get all require software installed, make sure all the mentioned tools are accessible through your system path.
Creating new project
Now open terminal window and cd into the directory where you want your project to be.
When you work with “Remake”, all your project data should be organized into “remake project”. This is an ordinary directory with a ‘remake.conf’ file inside. Location of ‘remake.conf’ file defines a “project root”. Everything inside of that directory considered as a part of the project.
Let’s create a project called “tutorial”:
$ remake-manager create tutorial
“Remake” will create directory called “tutorial”, copy default project template inside and do necessary configuration. This template is a starting point for all your animation projects. It contains basic dirctory structure, presets and some samples.
Let’s take a look at the contents of the ‘tutorial’ directory.
$ cd tutorial $ ls
Contents of tutorial folder
As mentioned above, there’s a ‘remake.conf’ file. Its contents defines a global settings for the project, such as image width, height and animation FPS. You should edit those values before you start any work on the project. For now we plan to stick with 16:9 aspect ratio, so default values (480×270, 24 FPS) are fine for working with footage without spending much time on rendering.
All your rendered footage will be stored in the ‘render/’ subdirectory. Please don’t put any sources files there, as they can be removed anytime.
Every animation project is planned by storyboard. Storyboard images are stored in the ‘storyboard’ subdirectory. Storyboard splits animation into shots. Shots are numbered: first is 010, second is 020, third is 030 and so on. That scheme is made just in case if later you will want to insert new shot between, say, 020 and 030. Then the name of your new shot will be 025 and you will keep good sorting order. Though, nothing will go wrong if you will use your own naming scheme.
Our animation will have only one single shot and we already have storyboard image for it – it’s ‘storyboard/010.jpg’.
At this image we see moving background and something bouncing on the ground (I really hope you could see that on this draft).
Opening and closing credits for the animation are stored in the ‘credits/opening’ and ‘credits/closing’ subdirectories. There is already have some basic credits there, we’ll look at them later.
This is the main project file with video sequence where everything (shots, credits, music, sound-fx) composed together.
Note: There are some other directories like ‘music’, ‘sound-fx’, ‘templates’ etc – I think their names are pretty self-explanatory. Some of them will be covered in this manual later.
Open ‘project.blend’ file. Your “Blender” window will look like on screenshot below.
You will see that there’s already some sequence constructed there. That’s a kind of animatic for our example. But if you try to move time cursor in the sequence window (with the left mouse button), almost everything will appear black at the preview area. That’s because ‘project.blend’ file refers to the rendered footage, but we have no footage rendered yet. The only thing that appear well is the sample image from ‘storyboard/’ subdirectory, because it don’t need to be rendered.
Ok, lets fix it and render all required footage. The easiest way to do that is to render ‘project.blend’ file itself. “Remake” will automatically detect which files included into sequence need to be rendered and render them before the main ‘project.blend’ file. Close “Blender” and run this command:
$ remake project.blend
Wait for render to finish and open ‘project.blend’ file again. Now everything on its place. You will see opening credits, draft of our animation (which is only single shot now) and closing credits. Everything you need for animated short.
Also, notice the new ‘project.blend.mpg’ file at the ‘render’ directory – that’s the ‘project.blend’ file rendered into MPEG format.
Now let’s try one thing. Just run previous command again:
$ remake project.blend
After a few messages you will get:
make: `render/project.blend.mpg' is up to date.
..and nothing will be rendered. That’s because “Remake” automatically detected that nothing was changed since the last render and everything is up to date.
Let’s try to change something. Close “Blender” and open ‘credits/opening/studio.sif’ in “Synfig Studio” (that’s a GUI of “Synfig”). Select layer called “Studio Name” (1), and in the “Params” panel double click the value near the “Text” parameter (2). Change it to the name of your studio.
Save and close the file.
Now go back to terminal and run remake again:
$ remake project.blend
After a few moments “Remake” will re-render ‘credits/opening/studio.sif’ and the main ‘project.blend’ file. You can watch changes in the ‘project.blend’ file, as well as in the `render/project.blend.mpg’. Notice that the rest of footage will not be re-rendered, because no changes was made to other source files.
Now edit ‘credits/opening/title.sif’ and ‘credits/closing/scroll.sif’. Change “Film Title” to “Bouncing Suzanne” – thats the title for our animation (you will see why) – and put your name into the closing credits. Run “Remake” again and enjoy.
Hint: In fact we don’t need ‘project.blend’ to be rendered every time – if you plan to watch your changes in the video sequence file then it’s enough to render dependencies only. So we can speedup the process by specifying ‘deps’ option: ‘remake project.blend deps’.
How this magic works
Now, before we learn how to add new footage to the project, a few words about how all this stuff works.
The main thing about “Remake” is that it takes responsibility to choose where to place rendered footage. All rendered footage is stored in the ‘render/’ subdirectory of the project root. Inside of render subdirectory “Remake” restores the same directory structure as the project have, but instead of source files it is filled with rendered footage.
By default footage is rendered in PNG format. Thus, for rendered animation you get a sequence of PNG images. That allows to get good compression without any quality loss. You can use rendered sequence in the other file (that makes sense if you want to combine 2D and 3D) or put it right into the main sequence – ‘project.blend’.
Note: Support for OpenEXR is planned, but not implemented yet.
Take a look at the ‘render/’ directory of the “tutorial” project. You will see ‘credits’ subdirectory there with the ‘opening’ and ‘closing’ subdirectories inside. Just like in the project root. So, if you render ‘010/foo.sif’ file, then you will get rendered footage at ‘render/010/foo.sif.png’. As you can see, the path to the source file can be easily detected from the path to the footage. That’s how “Remake” tracks dependencies between source and footage files.
So, the rule #1 is: ALWAYS USE “REMAKE” TO RENDER YOUR FOOTAGE.
If you render your footage manually to some arbitrary location, then things just not work. “Remake” just will not be able to find source files corresponding to footage and dependency tracking will be broken.
Adding shots into sequence
Now back to our animation. As you can see, all we have now is “animatic”. Let’s put a real animation instead of animation draft.
Sources of each shot reside in separate subdirectories in the project root – 010, 020, 030, and so on. There’s already one sample shot in the project template – ‘010/’. We will use it for our tutorial. Let’s imagine that we just created ‘010/composition.sif’ file. Open it in “Synfig Studio” and drag time cursor with the left mouse button to get idea about the animation. Yeah, just simple moving background. We need to insert it to the main video sequence – ‘project.blend’. To do that we need to render it first.
Remember rule #1? Go ahead, close “Synfig Studio”, go back to the terminal window and type:
$ remake 010/composition.sif
After the rendering will be finished, open ‘project.blend’, and in the Sequence window select “Add > Images”.
In the opened dialog make sure that “Relative Paths” checkbox enabled (1), then navigate to the ‘render/010/composition.sif.png/’ inside of your project root (2). In the filename area type “*.png” (3) and click “Add Image Strip” twice (4).
Note: It is important to keep all your paths in the project relative. Otherwise, if you move your project to different location or transfer to someone else it just won’t open.
A new strip appear near your mouse cursor in the Sequence window. Press ‘G’ on your keyboard to move the strip. Put it right on top of the strip of animatic. Left-click your mouse button to confirm position.
Save file by pressing “Ctrl + S” and confirming with left mouse button, then quit “Blender”. That’s it. If you want to update ‘render/project.blend.mpg’ run remake:
$ remake project.blend
Now let’s try something more complex. According to our draft, we need something bouncing against the ground. And that “something” will be… Blender’s Suzanne. Of course, that’s really silly example, but we just want to learn how to combine 3D with 2D.
OK, let’s imagine (again) that we just created ‘010/ball.blend’ file. Open that file in “Blender”. Press “Alt + A” to play the animation.
Yeah, that’s Suzanne bouncing. Fine, now you know how animation (you just created) look like. We want to insert it into ‘010/composition.sif’. Close “Blender” and render:
$ remake 010/ball.blend
Note: If your .blend file contains more than one scene, then “Remake” choose the one which is called “Scene”. If there’s no such scene, then the active one is rendered.
Now open ‘010/composition.sif’, press “Ctrl + I” to open import image dialog. Navigate to ‘render/010/ball.blend.png/’ inside of the project root, select ‘file.lst’ and click “Open”.
Drag time cursor in the composition window – now Suzanne is bouncing on top of our background.
Update footage and ‘render/project.blend.mpg’ file again.
$ remake project.blend
“Remake” will detect that ‘010/composition.sif’ file was changed and re-render it together with ‘project.blend’. Also, it consider that ‘010/composition.sif’ includes ‘010/ball.blend’, but it will not render, because it is already rendered and up to date.
Try to make some changes in ‘010/ball.blend’ (for example, change the color of Suzanne) and invoke “../remake project.blend” again. “Remake” will detect that ‘010/ball.blend’ file was changed and re-render it. But it will re-render ‘010/composition.sif’ as well, because it includes rendered footage from ‘010/ball.blend’. For the same reason it will re-render ‘project.blend’ – it contains ‘010/composition.sif’.
Finally, let’s specify some free license for our animation. Look at the ‘licenses/’ subdirectory in the project root. Currently there’s not much alternatives there, let’s choose Creative Commons Attribution-Share Alike (cc-by-sa).
Warning: That’s just an example. Don’t specify license you don’t know anything about!
As always, to put into the video sequence you need to render it:
$ remake licenses/cc-by-sa/license.sif
Then open ‘project.blend’ and add ‘render/licenses/cc-by-sa/license.sif.png’ file to the end of video sequence. Re-render ‘project.blend’ to MPG file:
$ remake project.blend
Your animation is ready. But you probably want some higer resolution thatn 480×270. No problem, let’s render final output to HD. Open ‘remake.conf’ file and change
WIDTH value to
1080. Save and close the file, then run “Remake” again:
$ remake project.blend
“Remake” will re-render all footage and ‘project.blend’ file to the new resolution. That will take more time, than previous renders.
Distributing your project
Now all you need is to grab ‘project.blend.mpg’ file in ‘render/’ subdirectory, rename it to something meaningful and distribute however you like.
If you want to distribute project’s sources, it is safe to trash ‘render/’ subdirectory and pack project directory into archive or put into Git repository – everything is in your hands!
Using .conf files
One last thing you need to know is about .conf files. As you probably remember, global settings for your project stored in ‘remake.conf’ file. You can override those settings for individual files. For example, althrough default rendering format is PNG, you have noticed that ‘project.blend’ file is rendered to MPG. Also, result of rendering of ‘licenses/cc-by-sa/license.sif’ file is not a PNG sequence, but single PNG image. That’s all done using .conf files.
If you want special settings for the ‘foo.blend’ file, just create file ‘foo.blend.conf’ in the same directory and add options in the form of
OPTION=VALUE (no spaces near ‘=’ sign allowed!).
Available options are:
SINGLE=frame_number – Render only specified single frame of animation.
FORMAT=format_name – Override default output format (PNG). Currently only MPG format is available as alternative and it works only for .blend files.
WIDTH=width – Width of rendered image.
HEIGHT=height – Height of rendered image.
UPDATE=integer – When non-zero, then allows “Remake” to update your source file. Typically, if you render with resolution/fps settings different than source file have, “Remake” will keep contents of the source files untouched. But when this option is enabled, it will update them according to the render settings you have. Currently works for .blend files only.
Examine the project template we just working with to see how .conf files are used.
As you can see, “Remake” introduces a few rules into your animation creation workflow. Let’s summarize them:
- Render your footage with “Remake”
- Use relative paths
- Scene in your .blend file you wish to render should be called “Scene”
To get more information about used tools we recommend to look at the following resources: