Chapter 24: Motion Tracking
Motion tracking pins a layer to something that moves in your footage — a screen to a laptop, a logo to a passing van, a label to a face. FX Express can track the footage itself in the Motion Tracker, or import a track from After Effects or Mocha. Either way the result lands on a layer as the same kind of track, with the same tuning controls.
Tracking in FX Express
Open the tracker from View ▸ Motion Tracker or with Track motion… in a video layer’s properties. The editor is replaced by three parts: the viewer (your video with the trackers drawn on top), the sidebar (backend, trackers, settings, Track buttons, Apply), and a timeline whose lanes show which frames each tracker covers. The toolbar collapses to a Close button that returns you to the editor; the trackers you placed stay on the video layer and are saved with the template.
View ▸ Motion Tracker opens the selected video layer, or the current scene’s first video layer when none is selected. It is greyed out in scenes without a video layer.
Source
When the scene has more than one video layer, a Source selector sits at the top of the sidebar, above the backend choice. Pick the video to track from it; each video keeps its own trackers, so switching back and forth never mixes them. With a single video layer the selector is hidden.
Backends
| Backend | What it is | When to use |
|---|---|---|
| Classic | The IV Editor’s Lucas-Kanade tracker, one frame at a time | Always available; good for short, well-lit moves |
| CoTracker3 | Meta’s CoTracker3 on a GPU server in eu-west-1 | Long shots, occlusions, fast motion |
The classic backend’s settings are the window size, the number of pyramid levels, the iteration count and the convergence threshold. CoTracker3 has a single Backward tracking switch; the rest is automatic.
The GPU server is off most of the time and turns itself off after 15 minutes without tracking. You do not have to manage it: a Track click starts it when needed, shows Starting GPU server… under the Track buttons for one to two minutes, and then runs the job. While CoTracker3 is the chosen backend, a GPU server card sits under the backend buttons showing Off, Starting…, On or Stopping… with a Start/Stop button, so you can warm it up ahead of time or stop it early; the card checks the server every few seconds. Stop in the Track section cancels the wait. Runs are submitted as jobs and polled, so leaving the tracker or closing the tab while a run is in flight cancels it.
On deployments where the GPU service is not configured, the CoTracker3 button is disabled and shows Not configured; the classic backend is always there.
Trackers
+ Point then click the feature to follow. + Region then drag a rectangle over a flat surface (a screen, a sign): the tracker follows a grid of points inside it and fits the four corners every frame. Select a tracker in the list, the viewer, or the timeline, then Track forward ▶, ◀ Track backward, or Track both from the current frame. Stop keeps what was tracked so far. Drag a marker or a region corner on any frame to correct it; the track beyond that frame is cleared in the direction you last tracked so you can continue. While you drag, a round lens next to the cursor shows the footage under the marker at three times the current zoom with a crosshair on the exact position, so you can land on a corner or a highlight precisely without zooming in first.
Each tracker has a name (click it in the list to rename), a colour, and a range
summary such as 12–96. A run is one undo step: Undo after tracking removes the
whole run, not one frame.
Moving through the footage
Step with ← / → (Shift steps ten frames), jump to the first or last frame with Home / End, and drag the playhead in the timeline ruler. Scroll to zoom the viewer about the mouse position (25–800 %), drag with the middle mouse button to pan, and click Fit in the viewer’s corner to get back to the whole frame. The footer of the timeline shows the current frame, the frame count and the frame rate.
Applying a track
Pick a layer under Apply to layer and click Apply. One point becomes a
position track, two points a position + rotation + scale track, one region a
4-point corner pin — the same three kinds as an imported track. The layer’s
Motion Tracking section then shows <tracker name> (tracker) and its tuning
controls work unchanged; Time offset is preset to the video layer’s trim.
Importing a track from another tool
A track exported as one of:
| Source | Format |
|---|---|
| After Effects | ”Keyframe Data” copied from the timeline and saved as .txt |
| Mocha | Corner-pin export as .aec |
Three track shapes are understood:
| Kind | What it drives |
|---|---|
| 4-point corner pin | Full perspective placement — corner to corner |
| 2 points | Position, rotation, and scale |
| 1 point | Position only |
Sparse keyframes are densified to one value per frame at the source frame rate on import, so the layer follows the track smoothly regardless of how the export was keyed.
Importing the file
- Select the layer that should follow the track. Tracking is available on text, image, video, shape, and smart-object layers — not on groups or scene layers.
- Scroll to the Motion Tracking section at the very bottom of the Layer properties.
- Click Import tracking data… and choose the
.txtor.aecfile.
On success the section shows the file name, the track kind, the frame count, and the source duration and frame rate — e.g. corner-pin.txt · 4-point corner pin · 240 frames · 8.0 s @ 30 fps. Problems with the file are listed in red under the section rather than thrown away.
Tracking replaces the layer’s own transforms. While it is enabled, the tracked quad drives placement, rotation, and scale; the Transform section’s position/rotation/scale values stop having an effect.
Tuning
| Control | Range | Use |
|---|---|---|
| Enabled | on/off | Turn the track off to reposition the layer by hand, then back on |
| Offset X / Offset Y | ±50% of canvas | Nudge the layer off the tracked point |
| Scale | 0.5–2× | Grow or shrink about the tracked quad’s centre |
| Time offset | 0 – track duration | Trim seconds off the start of the track, in whole source frames |
| Motion blur | on/off | Render-only directional blur along the tracked motion |
| Strength | 0–3 | How much blur, once motion blur is on |
Motion blur is render-only. The editor canvas shows the layer sharp; the blur appears in the rendered movie. Preview a render before judging the setting.
Replace… swaps in a different track file while keeping the layer. Remove deletes the track and hands the layer back to its own transforms.
Workflow
- Bring the footage into FX Express as a video layer.
- Add the layer that should ride the track — a text label, a logo image, a screen replacement image.
- Either open Track motion… on the video layer, place a tracker, track it and Apply it to that layer — or track the shot in After Effects or Mocha and import the export onto the layer.
- Check Time offset: the tracker presets it to the video layer’s trim; an imported track needs it set so the data lines up with where the footage starts in your scene.
- Nudge with Offset X/Y until it sits where you want it.
- Enable motion blur if the movement is fast, and check it in a render.
Over MCP
An agent connected to the FX Express MCP server imports tracks with the set_tracking tool instead of the file picker. It takes the scene and element ids plus the track source — either the exported file’s contents inline (text) or the store path of a .txt / .aec uploaded beside the template with upload_media (src) — and the same tuning fields as this section: enabled, offsetX, offsetY, scale, timeOffset, motionBlur, motionBlurStrength. The file is parsed by the same parser the editor uses, so the errors an agent sees are the ones listed in red here. Calling it again with a new source replaces the track and keeps the tuning; calling it without a source retunes the stored track; remove: true removes it. get_element reports a track as a summary (kind, frame count, source frame rate and size, duration, tuning) rather than its per-frame data, and update_element refuses to write tracking directly.
Troubleshooting
The Motion Tracking section isn’t there. The layer type doesn’t support it. Groups and imported scene layers are excluded; put the track on a real layer instead.
View ▸ Motion Tracker is greyed out. The current scene has no video layer. Add the footage as a video layer first.
Apply is disabled in the tracker. Apply takes exactly one point, two points, or one region. Select a matching set of trackers, and pick a layer under Apply to layer.
Tracking with CoTracker3 fails with a GPU server message. The server could not be started or did not answer in time. The GPU card shows the same error; try again in a moment, or switch to the Classic backend. If the message mentions the token, reload the editor to sign in again.
Classic tracking fails immediately. The classic route needs the IV API build from September 2026 or later for videos stored in a folder.
The import reported errors.
The section lists what the parser objected to. The commonest cause is exporting the wrong properties from After Effects — you want the corner-pin or position/scale/rotation keyframe data, with its Units Per Second, Source Width, and Source Height header intact.
The layer follows the motion but is out of sync. Use Time offset to trim the head of the track. It steps in whole source frames, so it can always land exactly on a frame boundary.
Moving the layer on the canvas does nothing. That’s the design: tracking overrides the layer’s own transforms. Use Offset X/Y, or untick Enabled.
The blur doesn’t show. Motion blur is applied by the renderer only. Run a preview render.
← Previous: 3D Layers and the Scene Camera | Next: Conditions and Interactivity →