Creative Communities of the World Forums

The peer to peer support community for media production professionals.

Activity Forums Adobe After Effects Changing Mask Path after Expression is Applied

  • Changing Mask Path after Expression is Applied

    Posted by Marco Polman on April 18, 2013 at 2:23 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 (https://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

    Marco Polman replied 13 years, 1 month ago 1 Member · 0 Replies
  • 0 Replies

Sorry, there were no replies found.

We use anonymous cookies to give you the best experience we can.
Our Privacy policy | GDPR Policy