Shape & Mask
General tips
Maintain stroke width
// from campkeyframe
sf = transform.scale[0]/100; ov = value;nv = ov / sf
// for parented shapes
value / length(toComp([0,0]), toComp([0.7071,0.7071])) || 0.001;
// https://battleaxe.tumblr.com/post/101945073972/maintain-stroke-weight-expressionLooping paths (loopOut() doesn't work for paths)
if (numKeys >1 && time > key(numKeys).time){
t1 = key(1).time;
t2 = key(numKeys).time;
span = t2 - t1;
delta = time - t2;
seg = Math.floor(delta/span);
t = delta%span;
valueAtTime((seg%2) ? (t1 + t) : (t2 - t));
}else
valueif (numKeys >1 && time > key(numKeys).time){
t1 = key(1).time;
t2 = key(numKeys).time;
span = t2 - t1;
delta = time - t2;
t = delta%span;
valueAtTime(t1 + t)
}else
valueAccessing Shape parameters
Syntax & Usage
Shape Property Index
Shape Property Group and Index
Examples
Last updated