Forum Replies Created

  • just in case somebody gets here via google, this is the final expression:


    precompMarker = comp(name).marker;

    var compMarker;
    var triggerMarker;

    if(marker.nearestKey(time).time <= time){
    compMarker= marker.nearestKey(time).index;
    }

    else{
    compMarker= marker.nearestKey(time).index -1;
    }

    if(compMarker< marker.numKeys) { // If the current marker is NOT the last, continue
    if(compMarker< precompMarker.numKeys) { // If still in the first loop
    triggerMarker= compMarker% precompMarker.numKeys;
    }
    if(compMarker>= precompMarker.numKeys) { // If entering / in any loop after the first
    triggerMarker= compMarker% (precompMarker.numKeys - 1);
    if(triggerMarker== 0) { // If the triggerMarker is 0 we have to assign it one before the last one of triggerMarker so we have a compplete loop
    triggerMarker= precompMarker.numKeys - 1;
    }
    }
    linear(time, marker.key(compMarker).time, marker.key(compMarker+1).time, precompMarker.key(triggerMarker).time, precompMarker.key(triggerMarker+1).time);
    }

    sorry for bothering you as a noob, I won’t post in your precious board again

  • So if anyone is interested, this is what I have right now:

    The time-remapping works for one cycle of the markers in the precomp, then starts the loop again and repeats the first linear time-remapping again. I think the problem is the nextMarkerPrecomp = 2. Because After Effects’ expressions are weird to me as the keyframe index seems to start at 1 (?) and there is no console to easily check values, I’m not sure where to tackle the problem.

    preComp = comp(name);

    var previousMarker;
    var nextMarkerPrecomp; // 2 weil scheinbar Marker Index 1 == erster Marker ist, NICHT 0

    if(marker.nearestKey(time).time &lt;= time){
    previousMarker = marker.nearestKey(time).index;
    }

    else{
    previousMarker = marker.nearestKey(time).index -1;
    }

    if(previousMarker &lt; marker.numKeys) {
    if(time >= marker.key(previousMarker).time && time &lt; marker.key(previousMarker+1).time){
    if (previousMarker % preComp.marker.numKeys != 0) { // If next Precomp Marker is NOT the first
    nextMarkerPrecomp = (previousMarker % preComp.marker.numKeys) + 1;
    }
    else { // Else reset the PreCompMarker index ! probably error here
    nextMarkerPrecomp = 2;
    }
    // Then linear Timing between the current and next marker
    linear(time, marker.key(previousMarker).time, marker.key(previousMarker+1).time, preComp.marker.key(nextMarkerPrecomp-1).time, preComp.marker.key(nextMarkerPrecomp).time);
    }
    }

  • bump … nobody with any idea ?

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