Return-Path: Received: from mail-we0-f171.google.com ([74.125.82.171] verified) by media-motion.tv (CommuniGate Pro SMTP 4.2.10) with ESMTP-TLS id 5227974 for AE-List@media-motion.tv; Wed, 25 Sep 2013 15:23:12 +0200 Received: by mail-we0-f171.google.com with SMTP id t61so6003721wes.16 for ; Wed, 25 Sep 2013 06:23:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=6Ga8OWzajpoAfCBpaPqE2aVq7a+I/lpt9iY6HiRtpuQ=; b=zRiMyd8KOyAGx3nWFMfFZvEY0KHPjfZCD5dCID+YI7yUfnDjJZP233ugZ2riYWC1ix ToFHBNBJGy60tePSWjU/MUOAtvgPtAO/BoyzBxHiOOA0Ml+yqD31GWEf0yFg0WeGnrzK WqYIA0RsOELwDM7Xc25cbDSHoe+r8AvtdmtwrR0KeXgvdobbPc0X+goUmUrvS4pd/Lim 1esRE5AUgS/7fKt5vC2DhuKtYAiqQN0JJf1UhCUYEzG52g7LwPEIy8lTKAT0Vogmfsy2 OIlGAXgO2ExP2w/3qX0Sf2lV30uTSWxrjMXpuucC7BmMMr7HbiD3fzMRq3vga1l/6+6i KxzA== MIME-Version: 1.0 X-Received: by 10.180.11.37 with SMTP id n5mr22679504wib.25.1380115404551; Wed, 25 Sep 2013 06:23:24 -0700 (PDT) Received: by 10.217.7.71 with HTTP; Wed, 25 Sep 2013 06:23:24 -0700 (PDT) In-Reply-To: References: Date: Wed, 25 Sep 2013 14:23:24 +0100 Message-ID: Subject: Re: [AE] Inertial bounce expression keeps being disabled randomly... From: D To: After Effects Mail List Content-Type: multipart/alternative; boundary=001a11c25b486ffee104e735286d --001a11c25b486ffee104e735286d Content-Type: text/plain; charset=ISO-8859-1 Thanks Lloyd. Funnily enough, I just found your script 'Activate Disabled Expressions'. I purged all memory then applied the script. Emptying the memory seems to allow them back on. Great script. Next time I get a mass disablement I'll try your solution. On 25 September 2013 12:35, Lloyd Alvarez wrote: > As the error suggests, it gets disabled because it tries to divide by > zero.. Most probably because you are in negative time due to this: t = > time - key(n).time; > > You can protect against that in several ways but here's a quick cheeky way: > > amp = .1; > > freq = 2.0; > > decay = 12.0; > > n = 0; > > if (numKeys > 0){ n = nearestKey(time).index; > > if (key(n).time > time){ n--; > > }} if (n == 0){ t = 0; > > }else{ t = time - key(n).time; > > } if (n > 0){ v = velocityAtTime(key(n).time - thisComp.frameDuration/10); > d= Math.exp(decay*t); > if ( d == 0 ) d= 0.0001; > > value + v*amp*Math.sin(freq*t*2*Math.PI)/d; > > }else{value} > > > Cheers, > Lloyd > > On Wednesday, September 25, 2013, D wrote: > >> ...confusingly, the expression will sometimes continue to work on other >> layers in the same comp on both position and scale parameters whilst some >> get disabled. >> >> >> On 25 September 2013 10:40, D wrote: >> >>> Hi >>> >>> The expression I'm using looks like this: >>> >>> amp = .1; >>> >>> freq = 2.0; >>> >>> decay = 12.0; >>> >>> n = 0; >>> >>> if (numKeys > 0){ n = nearestKey(time).index; >>> >>> if (key(n).time > time){ n--; >>> >>> }} if (n == 0){ t = 0; >>> >>> }else{ t = time - key(n).time; >>> >>> } if (n > 0){ v = velocityAtTime(key(n).time - >>> thisComp.frameDuration/10); >>> >>> value + v*amp*Math.sin(freq*t*2*Math.PI)/Math.exp(decay*t); >>> >>> }else{value} >>> >>> >>> It works most of the time then will randomly get disabled across lots of >>> layers and will not allow me to re-enable until I've restarted AE (v5.5). >>> This is the error: >>> >>> >>> -- >>> >>> >>> After Effects warning: invalid numeric result (divide by zero?) >>> >>> Expression disabled. >>> >>> >>> Error occurred at line 10. >>> >>> Comp: 'XXX' >>> >>> Layer 17 ('XXX') >>> >>> Property: 'Scale' >>> >>> >>> -- >>> >>> >>> I have no real knowledge of how expression code works. I cut and paste >>> when I use them. The project is 4 minutes long and the expression occurs >>> across many comps and typically as the deadline approaches the error is now >>> cropping up often. Any help appreciated. >>> >>> >>> Thanks. >>> >> >> --001a11c25b486ffee104e735286d Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
Thanks Lloyd. Funnily enough, I just found your script = 9;Activate Disabled Expressions'. I purged all memory then applied the = script. Emptying the memory seems to allow them back on. Great script. Next= time I get a mass disablement I'll try your solution.


On 25 Septemb= er 2013 12:35, Lloyd Alvarez <lists@aescripts.com> wrote:<= br>
As the error suggests, it gets disabled because it tries to divide by zero.= . Most probably because you are in negative time due to this:=A0t =3D time - key(n)= .time;

<= /span>
You can protect against that in several ways but here&#= 39;s a quick cheeky way:

amp =3D .1;

freq = =3D 2.0;

decay =3D 12.0;

n= =3D 0;

if (numKeys > 0){ n =3D nearestKey(time).index;

if (key(n).time > time){ n--;

}} if (n =3D=3D 0){ t =3D 0;

}else{ t =3D time - key(n).time;

} if (n > 0){ v =3D velocityAtTime(key(n).time - thisComp.frameDuration/= 10);

d=3D=A0Math.exp(decay*t);
if ( d =3D=3D 0 ) d=3D 0.0001;

=A0value + v*amp*Math.sin(freq*t*2*Math.PI)/d;

}else{value}


Cheers,

<= /span>
Lloyd
=
On Wednesday, September 25, 2013, D wrote:
...confusingly, the expression will sometimes continue to = work on other layers in the same comp on both position and scale parameters= whilst some get disabled.=A0


On 25 September 2013 10:40, D <dow.hanson@gmail.com= > wrote:
Hi

The expression I'm using looks l= ike this:

amp =3D .1;

= freq =3D 2.0;

= decay =3D 12.0;

= n =3D 0;

= if (numKeys > 0){ n =3D nearestKey(time).index;

= if (key(n).time > time){ n--;

= }} if (n =3D=3D 0){ t =3D 0;

= }else{ t =3D time - key(n).time;

= } if (n > 0){ v =3D velocityAtTime(key(n).time - thisComp.frameDuration/= 10);

= value + v*amp*Math.sin(freq*t*2*Math.PI)/Math.exp(decay*t);

= }else{value}


It works most of the time then will randomly get disabled across lots of la= yers and will not allow me to re-enable until I've restarted AE (v5.5).= This is the error:


--


After Effects warning: invalid numeric result (divide by zero?)

Expressi= on disabled.


Error occurred at line 10.

Comp: 'XXX'

Layer 17 ('XXX')

Property: 'Scale'


--


I have no real knowledge of how expression code works. I cut = and paste when I use them. The project is 4 minutes long and the expression= occurs across many comps and typically as the deadline approaches the erro= r is now cropping up often.=A0Any help appreciated.

=

Thanks.



--001a11c25b486ffee104e735286d--