-
Notifications
You must be signed in to change notification settings - Fork 7
Animations
This short guide will show you how to turn static fractal params into moving animations. The basic idea is that you mark keyframes in time and the values are interpolated between keyframes. I've taken inspiration from Blender so the concepts may be familiar to some. Let's generate some random params to work with.
The animations panel is hidden by default. You can open it by either clicking on its tab at the bottom of the main window, or it will just pop up automatically when you add the first keyframe. You can also drag the panel out into a window so it doesn't take space from the fractal.
Here you'll find the timeline controls and the dopesheet that contains all the channels and keyframes. The length of the animation can be set in seconds and the framerate in FPS - this affects both the exported video and the preview. You can preview the animation in real time using the Start▷
/Stop⬜
buttons.
The animations panel
On the timeline each tick is a second of animation. Click anywhere on the black area to jump to specific times. Use mouse-scroll to zoom in/out, and the bottom scrollbar to pan the view of the timeline.
Click the diamond ◇
icon next to any value you want to animate. A channel appears in the animation panel's dope sheet with a keyframe at the current time.
Then use the timeline to change the current time. Modify the value using its slider. To insert another keyframe, click the diamond ◆
icon again, which is now "filled" meaning the value is controlled by an animation channel.
Animated params are marked with a "filled" diamond icon
Anything with a diamond icon can be animated. You can also right-click or double-click on an existing channel's row anywhere to insert a keyframe with the current value.
Adding keyframes
The camera position and orientation can be animated with similar steps - but each axis has its own channel. For ease of use there's an Animate Camera
button on the Navigation panel that inserts keyframes to all camera related channels.
Inserting camera channels
So the steps are similar to other values: insert keyframes, scroll the time, move around with the camera, and insert keyframes again with the button.
Existing keyframes on the dope sheet can be selected, moved in time and removed. Selected keyframes are marked with orange color. Drag them left/right with mouse to adjust their positions in time. To overwrite the keyframe with a different value, click on it to jump there in time, and then just hit the diamond ◆
after editing the value, same as when adding a new keyframe.
Use Delete key to remove them. Right-click on a keyframe opens a menu with advanced options, make sure to experiment with different interpolation and easing types!
Editing keyframes
Keep editing keyframes and replaying the preview until it's done.
I took this concept "channel drivers" from blender, which lets the user apply effects on animation channels on top of keyframes. The only one for now is the audio driver that enables making audio visualizations with fractals.
Click on the name of any animation channel to see its details. There you can change the channel name and add drivers. In the future there will be a curve editor here too. Click on the + icon to apply the audio driver.
Setting up the channel driver
The audio driver has its own set of parameters to customize. First, load an audio clip to the workspace with the 🎵 button. The contained audio channels will appear in the dropdown of the first parameter of the driver, so you have the option to animate different fractal parameters by different audio channels.
Then there are the Min/Max frequency sliders which are used to filter the audio to specific sounds to animate by. For example the 50Hz - 100Hz band is a good start for kick drums, but these values should be tuned for each audio track separately. Ideally you would load an audio clip that only contains the drums of the song and then no filtering is needed.
The Effect strength slider is used to control the overall strength of the driver, so 0.0 means disabled and this needs tuning depending on the type of value being driven (for example animating a rotation angle that is in degrees might need a higher strength).
Note: Audio files are not saved into fractal param files, they must be loaded each time.
You can close the channel editor with the green checkmark ✓
.
First make sure to switch to Final
rendering mode and scroll to the beginning of the timeline (unless you want to render a preview from a specific time). Set a Target Iteration Level
, this is to tell when a frame finishes rendering. Higher target takes more time to render but some fractals require more rendering to be noise-free. Also, some frames during the animation may require higher level too, so this parameter is animatable - use it to optimize your render times.
Go to Export
/Export animation frames
and select a folder where both the image frames and the video file will be placed.
The video export is an optional feature that must be enabled explicitly in the Settings. First install ffmpeg
which is used to merge the frames. Then go to File
/Settings
/Export options
and click on the button to select the ffmpeg.exe
. Click the checkbox to enable the video export option, and select an encoding preset (or provide your own ffmpeg args, IFSRenderer fills the rest).
Setting up ffmpeg
There are features such as motion-blur, and the curve editor which are yet to be implemented. File an issue if you need support or have feedback.