What you’ll build

In this tutorial you’ll build a preset called Gold Shine. Normal words fade in letter by letter. Emphasis words get a gold gradient that fits the letters exactly, a light sweep that crosses the word while it’s on screen, and a quick glow flash. All of it is timed by markers and positioned from the word itself, so every generated word gets the same look without any fixing.

It relies on two ideas:

Before you start, make sure you know the basics from How to create your own caption preset.

How a preset travels from your design to every caption word

The markers Captyne uses

When you click ⊙ Capture Preset, each marker on a style layer is saved as a percentage of the layer’s length. At Generate Captions, Captyne puts it at the same percentage of each word’s own duration.

MarkerWhat it controlsAdded by
IN_ENDThe in-animation finishes and the word is fully visible. The in-animation runs from the start of the layer to here.Every new style layer (at 15%)
OUT_STARTThe out-animation starts. It runs from here to the end of the layer.Every new style layer (at 85%)
SE_IN / SE_OUTStart and end of a mid-word effect such as a light sweep, gradient reveal, glow pulse or blur.Smart Effects that need them (at 25% and 60%)
Your own namesAnything you like, for example Flash. Saved and rescaled the same way.You, in After Effects

The start and end of the word are the layer’s own in and out points: thisLayer.inPoint and thisLayer.outPoint.

Markers on a word layer, and how they scale to a longer word

Step 1 — Create the preset

Setup tab → My Presets → + New Preset
  1. Click + New Preset, enter Gold Shine, pick a category and keep 2 — Normal + Emphasis.
  2. Click Create & Open in AE. Captyne creates a comp called Captyne_Gold_Shine (1920×1080, 3 seconds, 30 fps).

The comp has two text layers, NORMAL (“Caption Word”) and EMPHASIS (“Style Word”). Each already has an IN_END and an OUT_START marker and a Reveal text animator. While the preset is open, the panel shows the AE Style Layer Tools, including Add Smart Effect.

Step 2 — Time the in and out animation from markers

Both layers → Text → Animators → Reveal

Style both layers first: a bold sans-serif font, white for NORMAL and a larger size for EMPHASIS. Leave each layer’s Position where it is — Captyne places every generated word for you.

The Reveal animator fades characters in one after another. Its Expression Selector → Amount already reads the markers:

var inEnd = thisLayer.marker.key("IN_END").time; var outStart = thisLayer.marker.key("OUT_START").time; var outEnd = thisLayer.outPoint - thisComp.frameDuration; var delay = 0.04; // per-character stagger (seconds) var charStart = thisLayer.inPoint + (textIndex - 1) * delay; var charInEnd = charStart + (inEnd - thisLayer.inPoint); if (time < outStart) { easeOut(time, charStart, charInEnd, 100, 0); // intro: 100 = fully "away" } else { easeOut(time, outStart, outEnd, 0, 100); // outro }

The expression returns 0–100 per character, so you can copy it to any animator: add Scale, Position or Blur to the Reveal animator and the characters animate those too, still timed by the markers.

For motion on the whole word, select the EMPHASIS layer and choose one of the In/Out transitions under Add Smart Effect — for example Pop In/Out or Bounce In/Out (spring). They are timed by the same two markers.

⏳

Drag IN_END and OUT_START in the timeline now. The in-animation gets faster or slower and the hold gets longer or shorter. If something doesn’t follow, it’s still driven by keyframes — keyframes replay at the same times on every word, so a 0.5-second pop would overrun a 0.3-second word.

Step 3 — Add a gold gradient that fits every word

EMPHASIS → Effect → Generate → Gradient Ramp

Effects such as Gradient Ramp, CC Light Sweep, CC Light Rays or CC Radial Fast Blur have point controls. After Effects stores those as fixed positions in the frame, so normally the point stays put while the word moves or changes length. Captyne gives every effect expression a set of word variables to fix this:

The word variables Captyne gives every effect expression
VariableMeaning
_acWordL, _acWordRLeft and right edge of the word
_acWordT, _acWordBTop and bottom edge of the word
_acWordX, _acWordYCentre of the word
_acWordW, _acWordHWidth and height of the word

Add Gradient Ramp to the EMPHASIS layer, set Start Color to a light gold and End Color to a deep orange, then alt-click (Option-click on Mac) each stopwatch and paste:

Start of Ramp

[_acWordX, _acWordT]

End of Ramp

[_acWordX, _acWordB]
⚠

Seeing “_acWordX is not defined”? Captyne adds the lines that define the word variables for you — don’t type them. In a brand-new preset, click ⊙ Capture Preset once after pasting; that adds them and the expressions start working. When you edit a saved preset, they’re added automatically within a few seconds.

Step 4 — Add a light sweep timed by markers

EMPHASIS → Add Smart Effect → ✨ Shine (light sweep)

The quickest way is the Shine Smart Effect: select the EMPHASIS layer, choose ✨ Shine (light sweep) and click + Add. Captyne adds CC Light Sweep, writes the expression and adds SE_IN and SE_OUT markers. The sweep’s centre travels from 40 px left of the word to 40 px right of it between those two markers. Drag them to change when it runs and how fast.

The Shine smart effect: the sweep's Center travels across each word between SE_IN and SE_OUT

To write it yourself instead, add CC Light Sweep and put this on Center. It uses SE_IN and SE_OUT if they exist and falls back to the hold between IN_END and OUT_START:

var s, e; try { s = thisLayer.marker.key("SE_IN").time; } catch (err) { s = thisLayer.marker.key("IN_END").time; } try { e = thisLayer.marker.key("SE_OUT").time; } catch (err) { e = thisLayer.marker.key("OUT_START").time; } var t = ease(time, s, e, 0, 1); [linear(t, 0, 1, _acWordL - 40, _acWordR + 40), _acWordY]

Step 5 — Add a glow flash on your own marker

EMPHASIS → Effect → Stylize → Glow

Custom markers work exactly like the built-in ones. Add a layer marker to the EMPHASIS layer just after IN_END and type Flash as its comment. Add Glow, set Glow Based On to Alpha Channel, and put this on Glow Intensity:

var f; try { f = thisLayer.marker.key("Flash").time; } catch (err) { f = thisLayer.marker.key("IN_END").time; } time < f ? value : value + ease(time, f, f + 0.3, 3, 0)

Wrapping marker reads in try { … } catch (err) { … } with a fallback keeps the expression working if a marker is ever missing.

Step 6 — Test it before you capture

CheckWhat should happen
Change the wordEdit EMPHASIS to “GO”, then “UNBELIEVABLE”. The gradient still fills the letters and the sweep crosses the whole word.
Move the layerDrag it anywhere in the frame. The gradient and sweep come with it.
Drag the markersMove IN_END, OUT_START, SE_IN, SE_OUT and Flash. Every animation follows straight away.
Scrub the layerNo frame where the word disappears unexpectedly or an effect pops on or off.
Expression errorsNo yellow warning bar at the bottom of the Composition panel.
Move a caption in After Effects: its effect points come with it

Step 7 — Capture and generate

  1. Click ⊙ Capture Preset. Captyne saves the styles, markers, effects and expressions and renders a preview.
  2. Open a real comp with speech, select Gold Shine, click Transcribe and then Generate Captions.
  3. Scrub through short and long words. Move the ACP_MASTER null to reposition every caption, or an ACP_SET_n_CTRL null to move one phrase — the gradient and sweep follow.

Ready to build your own preset?

The preset tools are included in every Captyne plan.

See Plans & Pricing →

Rules that keep a preset working everywhere

Time everything from markers

Use IN_END, OUT_START, SE_IN, SE_OUT or your own markers. Avoid keyframes and fixed times such as linear(time, 0, 0.3, …).

Don’t keyframe point controls

A keyframed point is saved as a fixed pixel distance from the word’s centre. It doesn’t stretch to the word’s size and won’t follow if captions are moved later. Use a Smart Effect, an expression with the _acWord variables, or a still point. A still point is saved as a fraction of the word’s box, so “the right end” stays the right end on every word.

Keep expressions inside the layer

Captyne doesn’t save expressions that use thisComp (apart from thisComp.frameDuration and thisComp.frameRate), comp("…") or footage(…), because every generated word lives in a different place. Use thisLayer, its markers and the _acWord variables instead.

Add to the position Captyne sets

In transform expressions, build on value — for example value + [0, 40] — rather than returning fixed coordinates such as [960, 540].

Go deeper with Animated Light Sweep on Text (relative keyframes with a progress slider) and Gradient Text That Follows Every Word.

For the full reference, including Option B (still points) and the list of point controls Captyne recognises, see How to Build a Marker-Driven Caption Preset With Word-Tracking Effects in the Help Centre.