Wiggle avançado
Com mais um pouco de código, o wiggle controla intensidade ao longo do tempo, restringe o eixo, decai após impacto e até faz loop.
Decaimento após impacto
var decay = 3;var freq = 8;var amp = 40;var t = time - thisLayer.inPoint;wiggle(freq, amp * Math.exp(-decay * t))Amplitude começa em 40 e decai. Math.exp(-3 * t) chega perto de zero em ~1 segundo.
Controlado por slider
var intensidade = thisComp.layer("CONTROLES").effect("Wiggle Intensidade")("Slider");wiggle(3, intensidade)Keyframeia o slider pra que o shake aumente e diminua.
Frequência que cresce com o tempo
var freq = linear(time, 0, 2, 1, 10); // de 1 a 10 nos primeiros 2swiggle(freq, 20)Wiggle em loop perfeito
O wiggle padrão não é loopável. Para loop seamless:
var loopDuration = thisComp.duration;var t = time % loopDuration;wiggle(2, 30, 1, 0.5, t)Loopable wiggle (variante)
// funciona pro loop mas mantém a aleatoriedadevar cycleDur = 3; // segundos por ciclovar t = time % cycleDur;wiggle(2, 30, 1, 0.5, t)Movimento circular randomizado
var w = wiggle(2, 30);var r = Math.sqrt(w[0]*w[0] + w[1]*w[1]);var a = Math.atan2(w[1], w[0]);[r * Math.cos(a), r * Math.sin(a)]