ADOBE AFTER EFFECTS: Forum Expressions Tutorials Creative Cloud

Changing Mask Path after Expression is Applied

COW Forums : Adobe After Effects

<< PREVIOUS   •   FAQ   •   VIEW ALL   •   PRINT   •   NEXT >>
Marcus GerrettChanging Mask Path after Expression is Applied
by on Apr 18, 2013 at 2:23:21 pm

I've done some extensive searching for previous posts about this issue, but have yet to find any information.

I've found that when I am using an expression on a mask path that I am unable to grab any of the handles or points on the mask until the expression is removed or disabled. I was wondering if anybody else has experienced this problem, and if you've found a solution...? I suppose I can keep disabling and re-enabling mask expressions but it's kind of a hassle considering how many layers and keyframes I'm working with at the moment.


The specific expression I am using is created using the Ease & Wizz plugin (from AE Scripts), which if you'd like to re-create the problem, is available for free trial. The plugin, if you're unfamiliar with it, creates an expression to replace AE's easy-ease functions with curves that cannot be created using the curve handles alone. (It's quite nice, actually...). I've included my specific expression below:

_________________________________________________________________________________________
// Curvaceous - all keyframes
// 2.0.1 : inOutQuart
// Ian Haigh (http://ianhaigh.com/easeandwizz/)
// Last built: 2010-10-09T13:35:39+11:00
function inOutQuart(t, b, c, d) {
if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
return -c/2 * ((t-=2)*t*t*t - 2) + b;
}
function curvaceous() {
var n = 0;
if (numKeys > 0) {
n = nearestKey(time).index;
if (key(n).time > time) { n-- }
}
// after the first two keys, yet before the last two, just do nothing
if (n > 1 && n < numKeys -1 ) {
return null;
}
try {
var key1 = key(n);
var key2 = key(n+1);
} catch(e) {
return null;
}

t = time - key1.time;
d = key2.time - key1.time;
sX = key1.time;
eX = key2.time - key1.time;
if ((time < key1.time) || (time > key2.time)) {
return null;
} else {
return valueAtTime(inOutQuart(t, sX, eX, d));
}
}
(curvaceous() || value);
_________________________________________________________________________________________


Thanks for any help!

-Marcus


Return to posts index

<< PREVIOUS   •   VIEW ALL   •   PRINT   •   NEXT >>
© 2017 CreativeCOW.net All Rights Reserved
[TOP]