Forum Replies Created

Page 2 of 2
  • Sascha Koeth

    February 20, 2020 at 7:07 pm in reply to: Setting the TimeRemap value of 2 Keyframes

    After some further investigation I gathered some more Info about my Issue that might be interesting for others having the same problem:

    Can I set/change a keyframe with expressions:
    No, but you can read their values into variables and then change the variables which in the end change the property. It´s important to understand this seamingly irritating difference to build working expressions. Keyframes and all their “values” are read-only to begin with. Any expression can only overwrite/modify the values they take from them as they bring those modified values back into the property, not actually change the keyframe you see in the timeline. It’s inherent in how AE evaluates property streams:

    Property base value –> Keyframe value –> Expression result (Including expression manuipulating effects like expression slider controls) –> Changed property value.

    So the keyframe value can only be the base for changing the property value with expressions. Think of it as: You have to first convert the key().time or key().value or key.index into an expression variable. For example mytimevariable = key().time Then handle the expression variable as the “editable keyframe” and forget the actual keyframe on the layer in the timeline, as you can NOT change its value or its position on the timeline (time) or add new keyframes with expressions. Your new variable IS your keyframe from there on and that is editable and can be returned to the property as a value.

    Puh. After I wrapped my head around this a lot of things made more sense.

    In my current case I concluded I did not need the time remapping keyframe values at all but only the “time” property coming from the comps timeline progress and using that to manipulate the time value of the layer which I could adress through the time remap property:

    invar = framesToTime(parseInt(thisComp.layer(“MainVideoInPoint”).text.sourceText));
    outvar = framesToTime(parseInt(thisComp.layer(“MainVideoOutPoint”).text.sourceText));
    linear(time, 0, thisComp.duration – framesToTime(1), invar, outvar);

    I am using two textlayers to set the in and out boundries of the part of the original clip that get´s shown within my comp.

    Interesting side note: thisComp.duration does not equal the time of the last frame of the comp. You have to subtract a frame. Which probably has something to do with the Comp starting at frame 0.

    So thanks a lot! Problem solved!

    HAYWOOD Digital Studio

    http://www.haywood.de

  • Sascha Koeth

    February 20, 2020 at 3:45 pm in reply to: Setting the TimeRemap value of 2 Keyframes

    Hi Dan,

    thanks for the info! You are right. I have grabbed the section out of a script reference and not an expression reference. But I actually found 2 solutions for my problem that “magically” work. But maybe you can tell me why they actaully work, as it´s not clear to me:

    linear(time, key(1), key(2), 1, 2)

    When I use this expression it doesn´t seam to matter where I actually put the keyframes. The expression always uses the complete comp length as the “source range”. How does the expression “know” that it should put the keys at the beginning and end of the comp to define the source range?

    linear(time,inPoint,outPoint,1,2)

    Same question with this solution with the inPoint outPoint solution. As the time ramped layers outpoint is NOT the comps end point how does the expression “knows” that instead of using the layers outPoint (which outPoint normaly stands for, right?) it should use the comps “outPoint”?

    Thanks

    Sascha

    HAYWOOD Digital Studio

    http://www.haywood.de

  • Hi Sam,

    had to push the subdivision up to two to make it work but the 2 values are doing the trick! Thanks a lot!

    HAYWOOD Digital Studio

    http://www.haywood.de

  • Sascha Koeth

    May 7, 2019 at 10:57 am in reply to: Shortcut to Tool Launcher il_list Script

    Found a first step to the solution:

    combine this shortcut modify approach:
    https://www.editingcorp.com/after-effects-scripts-keyboard-shortcuts/

    keep in mind the path has changed:

    /Users/username/Library/Preferences/Adobe/After Effects/16.1/aeks

    with

    this self-made script in the script folder:

    {
    app.executeCommand(app.findMenuCommandId(“tl_list.jsxbin”));
    }

    BUT!

    Does anyone has an idea on how to jump into the search field directly?

    HAYWOOD Digital Studio

    http://www.haywood.de

Page 2 of 2

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