This is just pretty rough, and likely won’t meet your exact needs, but should give you an idea of possible automation. If you apply an expression like this to the End property of each brush’s Stroke Options:
tStart = inPoint;
dur = .75;
delay = .25;
t1 = tStart + delay*(thisProperty.propertyGroup(2).propertyIndex - 1);
t2 = t1 + dur;
linear(time,t1,t2,0,100)
It will sequence the brush strokes. Then, instead of adding the expressions by hand, you could use a simple script like this to apply the expression to each brush:
function addExpression(){
var myComp = app.project.activeItem;
if (! (myComp && myComp instanceof CompItem)){
alert("No comp active.");
return;
}
if (myComp.selectedLayers.length == 0){
alert ("No Layer Selected.");
return;
}
var myLayer = myComp.selectedLayers[0];
var myEffects = myLayer.property("ADBE Effect Parade");
var myPaint;
var myStrokes;
var myBrush;
var expr = 'tStart = inPoint;\r' +
'dur = .75;\r' +
'delay = .25;\r' +
't1 = tStart + delay*(thisProperty.propertyGroup(2).propertyIndex - 1);\r' +
't2 = t1 + dur;\r' +
'linear(time,t1,t2,0,100)\r';
for (var i = 1; i <= myEffects.numProperties; i++){
if (myEffects.property(i).matchName == "ADBE Paint"){
myPaint = myEffects.property("ADBE Paint");
myStrokes = myPaint.property("ADBE Paint Group");
for (var i = 1; i <= myStrokes.numProperties; i ++){
if (myStrokes.property(i).matchName == "ADBE Paint Atom"){
myStrokes.property(i).property("ADBE Paint Properties").property("ADBE Paint End").expression = expr;
}
}
}
}
}
addExpression();
I hope that’s helpful.