inspect_motion_node_properties (REST: GET /v1/motion/documents/{id}/nodes?path=…) shows a node’s properties with their current values, keys and key IDs.
Properties
setProperty, setKeyframes, editKeyframe, removeKeyframes, setExpression and bindProperty name a property with property. Commands take values in the units below. Percentages are fractions, even where the editor shows %: opacity 0.5 is half, scale 2 doubles.
Some properties exist only on some nodes:
color on titles and shapes, volume and pan on anything with sound. Blur, shadow, corner and colour properties are added to a node’s style when you first set them.
Other numbers a node stores
Any other animatable number is afield: property, named by where it sits in the node. inspect_motion_node_properties lists a node’s with their exact names. Common ones:
- An effect’s parameters:
field:@e.<effectId>/effect/<param>, e.g.field:@e.glow1/effect/radius. - A title’s weight on a variable font:
field:content/style/fontWeight(1–1000), e.g. a word settling from 300 to 700 as it lands. The fonts table says which fonts can animate it.
Easing
Keys ease into the next key. Commands take these names wherever a field says easing:setTimeRemap keys take linear, hold or ease; setCurve keys take linear, hold, ease, easeIn or easeOut.
In and Out animations
animate takes in and out, each {kind, duration, easing?} with kind one of fade, slideLeft, slideRight, slideUp, slideDown or pop.
Text animations
setTextAnimation animates a title per unit (character, word or line), starting from start, end, center, edges or random. Presets: typewriter, fade, rise, drop, pop, blur, slideLeft, slideRight, spread, spin.
Expressions
setExpression adds one of these to a property; the value and keys underneath stay editable.
{"kind": "wiggle", "frequency", "amount", "seed"?}: random drift,frequencywiggles per second,amountin the property’s units.{"kind": "noWiggle"}removes it.{"kind": "loop", "direction": "in" | "out", "mode": "cycle" | "pingPong" | "offset" | "continue", "keyframes"?}: repeats the keys after the last (out) or before the first (in).{"kind": "noLoop", "direction"}removes it.
bindProperty and setCurve take a different kind of expression: a number, {"curve": name}, {"time": "seconds"}, {"op", "args"} with op one of add, subtract, multiply, divide, min, max, abs, negate, sin, cos, pow, sqrt, floor, round, mod, mix, clamp, step, smoothstep, or {"project": {"point", "camera"}, "axis"} for where a canvas point lands when a lens shader films the canvas as a tilted plane.
Blend modes
setProperty with property: "blendMode" takes normal or: clear, src, dst, srcOver, dstOver, srcIn, dstIn, srcOut, dstOut, srcATop, dstATop, xor, plus, modulate, screen, overlay, darken, lighten, colorDodge, colorBurn, hardLight, softLight, difference, exclusion, multiply, hue, saturation, color, luminosity, linearBurn, vividLight, linearLight, pinLight, hardMix, subtract, divide, darkerColor, lighterColor, stencilAlpha, stencilLuma, silhouetteAlpha, silhouetteLuma, dissolve.
Fonts
addTitle and setTitle take a font by slug. weight takes 100 (thin) to 900 (black); a font that can’t draw a weight draws the nearest one it has, and the batch result’s notes say so. list_motion_fonts (REST: GET /v1/motion/fonts) returns this list.
Your own fonts
Fonts uploaded to your library or your workspace’s (with the font picker in the editor) work too:list_motion_fonts returns them under libraryFonts, and addTitle and setTitle take one by its id (mi_…) as font. A family uploaded as several files lists the weight of each, and a title draws the file nearest its weight. A font uploaded as one file draws the weights that file has: its weight animates only if the file is a variable font.