My other thought was to use the single animator and define multiple animations within it using an expression and if/else statements.
The code below defines the first animator only and is in the ‘Offset’ property in the range selector. I would need to add a fair bit of code in a number of properties to make this work with multiple selectors, but if that’s the only way to accomplish this, then I’ll look take a stab at it.
If anyone has suggestions on a simpler way using multiple animators, please let me know.
//define timing for animators
mySlideStart = (comp("Master").layer("SlideContent2.csv")("Data")("Outline")("SlideStart")("SlideStart" + " " + thisComp.name));
startTimeText = (comp("Master").layer("SlideContent2.csv")("Data")("Outline")("Text1Start")("Text1Start" + " " + thisComp.name)); //only need to change these values for new layers
endTimeText = (comp("Master").layer("SlideContent2.csv")("Data")("Outline")("Text1End")("Text1End" + " " + thisComp.name)); //only need to change these values for new layers
mySlideEnd = (comp("Master").layer("SlideContent2.csv")("Data")("Outline")("SlideEnd")("SlideEnd" + " " + thisComp.name));
transitionLength1 = 2; //this changes based on the animator
transitionLength2 = 0.5; //this changes based on the animator
value1 = -40; //this changes based on the animator
value2 = 100; //this changes based on the animator
value3 = 100; //this changes based on the animator
value4 = 100; //this changes based on the animator
t1 = startTimeText; //textStart
t2 = startTimeText + transitionLength1; //textIn
t3 = endTimeText - transitionLength2; //textOut which aren't needed because the out timing is the slide out not the text out
t4 = endTimeText; //textEnd which aren't needed because the out timing is the slide out not the text out
t5 = mySlideStart; //slideOn
t6 = mySlideEnd - transitionLength2; //slideOut start the slide out transition
t7 = mySlideEnd; //slideOff
//end timing for animator definitions
//if statement for timing
if (time < t1 + transitionLength1) {
linear(time, t1, t2, value1, value2) //the first transition
} else if (time < t4 - transitionLength2) {
linear(time, t2,t3, value2, value3); // hold at key 2
} else {
easeOut(time, t6, t7, value3, value4)
}