Something like this:
csv:
xfrom,yfrom,xto,yto
476,379,197,475
362,136,460,71
491,5,414,317
427,368,440,435
…
for 300 lines
add the csv to a composition.
select the csv-layer and then run this script:
script:
app.beginUndoGroup("300 dots");
var comp = app.project.activeItem;
l = comp.selectedLayers[0];
var dotSize=[8,8];
if (l && l.data && l.data.numProperties) {
numDots = l.data(1).value;
for (var i=1; i < numDots+1; i++) {
fromPos = [ l.data(2)(1)(i).value, l.data(2)(2)(i).value];
toPos = [ l.data(2)(3)(i).value, l.data(2)(4)(i).value];
sh = comp.layers.addShape();
el = sh("Contents").addProperty("ADBE Vector Shape - Ellipse");
el("ADBE Vector Ellipse Size").setValue(dotSize);
sh("Contents").addProperty("ADBE Vector Graphic - Fill");
sh.transform.position.setValuesAtTimes([1,2],[fromPos, toPos]);
sh.name = "dot "+i;
}
} else {
alert("select .csv layer");
}
app.endUndoGroup();
-> as manu shapelayers as lines in the csv with keyframes at 1second and 2 seconds