Animate to After Effects Bridge

The production of Red Squirrel Mai (2017–19) relied heavily on Animate and After Effects. Much is lost when exporting from Animate – commonly a flattened SWF or a full PNG sequence with every frame rendered. With the help of programmer Bon Lam, we built this two-script bridge that translates the Animate timeline into After Effects, preserving keyframe timing, symbol playback, and layer structure. This let us tweak keyframes, do lip-sync, and map watercolour effects to keys rather than every frame.

The scripts and README are available on my GitHub. Read on for how to use them and what they can and can’t do.

The example throughout is a sequence from Sorry Youth’s Walks of Life music video (keys by me, inbetweens by Judith Chan) with a drawn section and a looping walk cycle symbol.

The animation example for this tutorial

Before we begin

(1) Only visible layers are exported. (2) Each import creates one comp named after the FLA, matching the canvas size and frame rate. (3) Each Animate layer becomes one footage sequence, but may split into multiple AE layers if it mixes drawn frames and symbols, or has blank gaps. (4) Animate keyframes become Time Remap keys. (5) Symbols get their own comps and are labelled cyan.

Before and after: Animate timeline → After Effects timeline

Downloading the scripts

Download and unzip the folder. Inside you’ll find:

  • animate_export.jsfl
  • ae_import.jsx
  • c114_col04.fla ← example FLA to test the script with
  • README.md
  • render_queue.jsfl

Keep animate_export.jsfl and render_queue.jsfl in the same location if you plan to use the render queue.

Step 1: Export from Animate

Open your scene, make sure you’re on the main timeline and not inside a symbol, and run animate_export.jsfl. Pick an output folder when prompted. On first run, the script creates a folder named after the FLA, then a version folder inside it. Each subsequent run adds a new version, so nothing is ever overwritten.

(output folder)        ← your pick
└── c114_col04/ ← scene folder
└── v001/ ← version folder
├── Amy/
│ └── Amy_001.png, Amy_002.png, Amy_003.png…
├── Amy_righthand/
│ └── Amy_righthand_001.png, Amy_righthand_002.png…
├── Dad/
│ └── Dad_001.png, Dad_002.png, Dad_003.png…
├── Dad_box/
│ └── Dad_box_001.png, Dad_box_002.png…
├── symbols/ ← unique symbols exported once each
│ └── dad_walk/
│ └── dad_walk_box/
│ └── dad_walk_box_001.png, dad_walk_box_002.png…
│ └── dad_walk_dad/
│ └── dad_walk_dad_001.png, dad_walk_dad_002.png…
└── c114_col04.json

Step 2: Import into After Effects

Run ae_import.jsx inside After Effects. When prompted, select the scene folderc114_col04/ in this case. The script finds the latest version, reads the scene data, builds one comp per unique symbol, and assembles a master comp. Re-running creates new comps and footage folders with versioned names (2), (3), etc.

Each export creates a new version folder (v001, v002…). Each import creates a new footage folder and master comp ((2), (3)…), so if you re-export specific layers and re-import, you’ll get a second comp rather than updating the first. Copy updated layers across manually if needed.

Production options

Default folder – the script remembers your last picked location, but across a production you’ll likely always export to the same folder. To skip the picker entirely, open animate_export.jsfl in any text editor and set:

var USE_DEFAULT_FOLDER = false; ← set to true 
var DEFAULT_FOLDER = "C:/users/you/project/output/"; ← your path

Test mode – enable to check the script is running correctly without exporting any files:

var TEST_MODE = false; ← set to true

Render queue – for overnight batch exports, edit the FLA_LIST in render_queue.jsfl with the paths to your scenes, then run it. The script exports each scene in order, closing each file when done:

var FLA_LIST = [
"C:/users/you/documents/project/c114_col04.fla",
"C:/users/you/documents/project/c114_col05.fla",
"C:/users/you/documents/project/c114_col06.fla",
];

If Default Folder isn’t set in animate_export.jsfl, the queue will ask for an output folder once at the start and apply it to all scenes.

Symbols

Symbols get their own comps in After Effects – one comp per unique symbol, shared across all instances. Layers inside the symbol are preserved. Each instance in the master comp has its own playback style and transform, just like in Animate.

Animate symbol timeline translated into an After Effects symbol comp, with each layer preserved and keyframes mapped to Time Remap.

Supported

  • Loop – all keyframes exported, loopOut() applied per instance
  • Play once – full symbol exported, plays through once
  • Single frame – exported as a still at the set frame
  • First and last frame – set the playback range in AE
  • Multiple symbols on the same frame – each exported and placed as a separate AE layer
  • Mixed frame (drawing + symbol) – symbols exported, drawing ignored
  • Symbol with multiple layers – all layers preserved in the symbol comp
  • Position, rotation, scale – applied to each instance in the master comp
  • Skew – Equal skewX/Y is translated as rotation. Uneven skew is approximated; opposite-sign skew unsupported.

First frame offset in Animate and After Effects

Unsupported

  • Reverse loop / reverse play once – falls back to forward playback
  • Nested symbols – The outer symbol is entered and exported normally; the nested symbol is treated as a still at its current position
  • Opposite-sign skewX/Y – ignored

Troubleshooting

Hopefully it all works! More technical detail is in the README. Feel free to get in touch with feedback or if you run into any problems.