Loop groups
A Moho-style keyframe cycle scoped to one channel, so a single property can repeat forever while the rest of the layer plays normally.
A loop group repeats a span of keyframes on one sub-track, forever, without adding another keyframe. Draw a four-frame flag flap on the Rotation row once, turn it into a loop group, and it keeps flapping for the rest of the scene while everything else on that layer keeps its own timing.
Creating one from a selection
Select two or more keyframes, right-click, and open the Loop Group submenu.
- Select two or more keyframes, either on the layer row or on an expanded sub-track row.
- Right-click any of the selected keyframes.
- Open Loop Group and choose Loop, Ping Pong or Hold.
You do not have to expand anything first. Loop Group sits in the layer row's right-click menu as well, just under Easing, so a selection made on the layer row works directly.
The selection decides the scope, and it is read whole. Select on the layer row and every eligible channel of that layer that has keyframes in the selection gets its own region. Lasso across several rows and only the rows the lasso actually touched get one. Either way a selection spanning several layers is handled in a single step, and each region spans from the first to the last of that row's selected keyframes rather than from a shared start. Creating another region that starts at the same frame on the same row replaces the old one.
The three modes
| Mode | What repeats after the region's end |
|---|---|
| Loop | A saw-tooth repeat: playback jumps back to the region's start and plays the same span again |
| Ping Pong | A triangle-wave bounce: playback reverses at the region's end, runs back to its start, and reverses again |
| Hold | The value simply freezes at the region's last keyframe |
Only frames after the region's end are remapped. Everything from the region's start to its end plays exactly as you keyed it, since that span is the original animation the cycle is built from.
Reading the bracket and ghost continuation
A loop group draws as an accent-coloured bar with a cap at each end, sitting under the sub-track row across the keyframes it covers. A dashed line continues past the end cap to show where the cycle keeps repeating: it runs to the end of the timeline, or stops early if another loop group starts further along the same row. A Hold-mode region draws in a muted amber instead of the accent colour, so a glance down a row of channels tells you which ones are cycling and which are just frozen.
The layer row carries the same bar, showing the union of every loop range on the channels underneath it. That is what tells you a collapsed layer has a cycle running at all: without it, a group you created from the layer row would be invisible until you expanded the layer to find it.
Editing and removing
Drag either of the region's two round end handles to resize it; the start always has to stay before the end, and neither can go earlier than frame 1. Right-click a frame that already falls inside a region and the Loop Group submenu switches to editing that region's mode, with Remove Loop Group added at the bottom.
Switching the mode never redraws the span. One selected keyframe anywhere inside a group is enough to flip it between Loop, Ping Pong and Hold, and Remove Loop Group drops every group your selection touches, however many rows and layers that is.
If you drag a keyframe selection that fully contains both of a region's endpoints, the region travels along with it rather than being left behind.
Why this is independent of Pre/Post behaviour
Pre/Post behaviour decides what an entire layer does outside its own key range, and it does so by substituting one remapped frame that every channel is then evaluated at. A loop group only ever remaps its own sub-track, and it does so against the real, unremapped timeline frame. That is why a Rotation loop group keeps cycling exactly on schedule no matter what the layer's Post-Behaviour is set to, and why a layer set to Pre/Post None can still carry a running loop group underneath. It simply is not drawn while None is hiding it.
Eligible sub-tracks
Eight of the fixed channels take a loop group: Vertices, Position, Rotation, Scale, Anchor, Opacity, Switch and Blend. So do the parameter tracks, which is to say Fill and Stroke style parameters, Layer Effects parameters, layer parameters such as Follow Path, and bone parameters.
What is left out is left out because nothing would remap it. Mesh, Layer Order and the camera channels are read straight off the timeline frame, so a cycle on them would be a menu item that does nothing. The same goes for a bone's own Transform rows, Angle, Stretch and Position: only bone parameter tracks are remapped, so those three rows do not offer the submenu.