Tutorial: Creating Animations

Learn how to create animations using ASCII Motion's layer-based composition system — layers, content frames, keyframe transforms, and playback.

What You'll Learn

  • Layer-based animation workflow
  • Content frames and timeline positioning
  • Keyframe transforms (position, scale, rotation)
  • Easing curves for natural motion
  • Playback and looping

Prerequisites

Animation Fundamentals

ASCII Motion animates in two complementary ways:

  1. Frame-by-frame — Draw different content on separate content frames
  2. Keyframe transforms — Animate position, scale, and rotation of layer content over time

Most animations combine both approaches.

Frame Rate

FPSFeel
8–12Standard ASCII animation
15–24Smooth motion
30+Professional, fast action
Info

Set frame rate in the timeline toolbar. Default is 12 FPS. Higher FPS requires more content frames or finer keyframe spacing for the same duration.

Your First Animation: Bouncing Ball

Step 1: Set Up

Create a new project (20×15 canvas, 12 FPS)

You start with one layer ("Layer 1") and one content frame

Draw a ball character (e.g., O) near the top of the canvas

Step 2: Animate with Keyframes

Expand Layer 1 in the timeline to reveal property tracks

Add a Position Y property track

At frame 0, add a keyframe with Position Y = 0 (top)

At frame 12, add a keyframe with Position Y = 10 (bottom)

At frame 24, add a keyframe with Position Y = 0 (top again)

Set easing to Ease In on the first keyframe (accelerate down)

Set easing to Ease Out on the second keyframe (decelerate up)

Enable Loop Keyframes on the track

Step 3: Preview

Press Space to play. The ball bounces up and down with natural easing.

Step 4: Add Squash and Stretch

Add Scale X and Scale Y property tracks

At frame 12 (impact): Scale X = 1.3, Scale Y = 0.7 (squash)

At frames 0 and 24: Scale X = 0.9, Scale Y = 1.1 (stretch)

At frames 6 and 18 (midpoints): Scale X = 1.0, Scale Y = 1.0

Multi-Layer Composition

Adding Layers

Press Shift+N to add a new layer

Layer 2 renders on top of Layer 1

Draw separate content on each layer

Each layer has independent content frames and property tracks

Layer Organization

  • Use visibility (eye icon) to isolate layers while working
  • Use solo (S) to preview a single layer
  • Use lock to prevent accidental edits to finished layers
  • Rename layers (double-click) for clarity in complex projects

Frame-by-Frame on a Layer

For traditional frame-by-frame animation within a layer:

Select the layer

Press Ctrl+N to add a content frame after the current one

Each content frame has its own canvas data — draw different poses

Position frames on the timeline by dragging

Adjust duration by dragging frame edges

Using Onion Skinning

Press Shift+O to toggle onion skinning:

  • Blue overlay = previous frame content
  • Red overlay = next frame content
  • Helps maintain consistent motion between frames
  • Automatically disables during playback

Working with Content Frames

Timing

Content frames have a start frame and duration. They cannot overlap on the same layer. Gaps between frames show empty canvas.

Operations

OperationHow
AddCtrl+N or + button
DuplicateCtrl+D
DeleteCtrl+Delete
SplitCtrl+X at playhead
ResizeDrag left/right edges
RepositionDrag block on timeline
Move to layerDrag to another layer's track
HideRight-click → Hide (skips during playback)
Label colorRight-click → set color for visual organization

Easing for Natural Motion

Keyframe easing controls acceleration between values:

EasingUse Case
LinearConstant speed, mechanical motion
Ease InStarts slow, accelerates (falling objects)
Ease OutStarts fast, decelerates (landing, settling)
Ease In-OutSmooth start and stop
Ease Out BackOvershoots then settles
BounceSlight bounce at destination
HoldJumps to next value (no interpolation)

Select a keyframe to open the easing editor in the properties panel. Choose a preset or drag control points for a custom cubic bezier curve.

Creating Loops

For seamless loops:

  1. Ensure the first and last keyframe values match
  2. Enable Loop Keyframes on the property track
  3. Test the loop transition point by watching playback

For content-based loops, the last content frame's end should connect visually to the first frame's start.

Layer Groups

For complex scenes:

Select multiple layers (Shift+click or Ctrl+click in the layer list)

Press Ctrl+G to group them

Add transform keyframes to the group — all child layers move together

Individual layer transforms still apply within the group

Common Mistakes

MistakeFix
Motion feels roboticAdd Ease In/Out instead of Linear
Overlapping content framesResize or reposition — frames can't overlap on one layer
Wrong layer selectedCheck the active layer highlight before drawing
Keyframes not visibleExpand the layer in the timeline (click expand arrow or press U)

Quick Reference

ActionShortcut
Play/PauseSpace
Prev/Next frame, / .
Prev/Next keyframeJ / K
Add content frameCtrl+N
Add layerShift+N
Duplicate frameCtrl+D
Delete frameCtrl+Delete
Split frameCtrl+X
Group layersCtrl+G
Onion skinningShift+O
Expand/collapse tracksU