Load Motion Traj Preset
Curves, shakes and horizons without opening the drawing tool
- POINTS
Where the camera preset controls the camera, this one controls the subject. Load Motion Traj Preset gives you eight pre-made 2D object trajectories - curves, shakes, horizons - and spits out a JSON string you feed straight into Motionctrl Cond's traj field. It's the fast path for testing object motion without opening the pack's trajectory drawing tool.
The dropdown options tell you exactly what you're getting: curve_1 through curve_4 (object glides along increasingly complex curves), horizon_2 (a horizontal drift), and shake_1, shake_2, shaking_10 (progressively violent jitter). They're deliberately simple - the shake presets are basically a stress test for whether trajectory conditioning is working at all, and the curves are the ones that actually resemble useful motion.
How it works
The node reads a point list from examples/trajectories/<name>.txt, one x,y pair per line. The stored coordinates live on a 0–256 grid, and the node scales them by four to match the 0–1024 canvas the trajectory tool uses - so the output is the same format as anything you'd draw yourself. It also resamples to match your frame_length: if the preset has more points than frames it skips some, if fewer it holds the last point.
The inputs and output
- motion_traj - the dropdown of eight presets.
- frame_length - default 16. How many frames to resample the path across; keep it in sync with the model's frame count.
Output is a single POINTS (STRING) - the JSON list of [x, y] points, wired into Motionctrl Cond's traj input. That's the whole node.
The workflow reality
Here's the honest take: the presets are for testing, not for real shots. You'll get a first clip out of curve_1 in seconds, confirm the pipeline works, and then you'll want a path your subject actually travels - which is what the drawing tool (tools/draw.html, linked from the traj_tool input on the sampler nodes) is for. Draw a path, copy the JSON it generates, paste it into Cond's traj field. Same format, infinite variety.
One subtlety worth knowing: the trajectory is object motion, not camera motion, and the two live in different inputs for a reason. Feed a camera preset into the traj field (or vice versa) and MotionCtrl will quietly produce something weird - the model treats them as separate condition channels, and swapping them is a classic "why does my video look drunk" moment. If a clip comes out wrong, check which preset went into which field before you blame the sampler.
Common issues
Same file dependency as its camera sibling: the node reads .txt files from examples/trajectories/, which ships with the pack. Missing or partial clone, file-not-found. Re-clone and it's fixed. Otherwise this is the most forgiving node in the pack - worst case it emits a path, and Cond pads it to length.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| motion_traj | COMBO | 8 options: curve_1, curve_2, curve_3, curve_4, horizon_2, shake_1, +2 | |
| frame_length | INT | 16 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| POINTS | STRING | — |