Creative Communities of the World Forums

The peer to peer support community for media production professionals.

Forums Adobe After Effects Expressions Delay / Offset Posterize Time Effect

  • Delay / Offset Posterize Time Effect

  • Tom Slinger

    December 7, 2020 at 12:57 pm

    I’m looking to delay / offset the start frame of the Posterize Time effect. (not expression)

    5 fps Posterize Time effect. 25 fps comp.

    The reason for this is I want the stop motion animation to have more of a flow instead of all layers changing frame on 0,5,10,15,20.25 etc…

    It’d be great if:

    Layer A changed frame on 0,5,10,15,20,25 etc…

    Layer B changed frame on 2,7,12,17,22,27 etc…

    Layer B changed frame on 4,9,14,19,24,29 etc…

    Any help would be greatly appreciated!

    Many thanks,

    Tom

  • Trent Armstrong

    December 7, 2020 at 2:29 pm

    Well, I see that you indicate in your post that you’re not looking for an expression, but expressions would really help you here. Put those in and play around with the numbers in the parentheses. Using the posterizeTime() expression keeps you from having to use the Posterize Time effect which can mess with other effects.

    Layer A timeremap could be

    posterizeTime(6);

    value

    Layer B timeremap could be

    posterizeTime(5);

    value

    Layer C timeremap could be

    posterizeTime(4);

    value

  • Tom Slinger

    December 8, 2020 at 11:18 am

    Thanks Trent!

    Thats really helpful. I’ll use expressions instead, I didn’t know you could add posteriseTime to timeremap.

    Ideally I’d want all layers to be 5 fps, is there a way of offsetting each layer by a different value so that the layers will be changing frame on different frames? I appreciate your suggest would do this but I’m wondering if it’s possible to maintain the 5 fps?

  • Trent Armstrong

    December 11, 2020 at 1:17 am

    So sorry. I haven’t had time to look at this again. I actually think you might need to precomp and offset the layers in time if you want to have the all at 5 fps but offset.

  • Tom Slinger

    December 15, 2020 at 12:29 pm

    No worries! Thanks for your help.

    I’ve taken your advice on using different values and created this which works well:

    seedRandom(index,true);

    posterizeTime(Math.round(random(4,6)));

    value

  • Trent Armstrong

    December 15, 2020 at 1:20 pm

    That’s pretty awesome! I hope it looks good for you!

  • Jakob Werner

    December 15, 2020 at 4:21 pm

    I encountered the same problem and managed to write a custom posterizeTime() expression.<div>

     

    Just use .vaueAtTime(newT); on your desired property.

    newFramerate = 5; and frameOffset = 2; will change the values on frame 2, 7, 12, 17, 22, …

    I hope that works for you, too!

    Jakob

    // Custom posterizeTime()

    //
    // Use .valueAtTime(newT) on your desired property
    // and set your new frame Rate and your Offset value
    var newFramerate = 5; //set your new Framerate in frames per second here
    var frameOffset = 2; //set your offset in frame here

     

    var frameRate = 1/thisComp.frameDuration;
    var t = (time*frameRate);
    var newT = Math.floor((t-frameOffset)/(frameRate/newFramerate));
    newT = newT*(frameRate/newFramerate) + frameOffset;
    newT /= frameRate;

     

    transform.position.valueAtTime(newT);


    </div>

  • Tom Slinger

    January 13, 2021 at 2:37 pm

    Ah! AMAZING! Thanks Jacob, this is so helpful.

    Exactly what I needed. 🙂

  • Trent Armstrong

    January 13, 2021 at 2:51 pm

    Great stuff!

Viewing 1 - 9 of 9 posts

Log in to reply.

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