Hi James,
This is John from the After Effects Engineering team. What you're looking to do is definitely possible with AE's native effects. You'll be able to build something which is similar to the approach you've already taken, but using the native CC Particle World effect instead of Particular, linking its Producer point to a Null which is already moving based on the .csv data.
The main "gotcha" with linking the Producer to the Null is that the X, Y, and Z Positions of the Producer aren't calculated in comp-space pixel values. You need an expression on each one doing slightly different calculations to correctly link the emitted particles to the location of the Null layer. Use the following the expression on the Position X, Y, and Z property in CC Particle World's "Producer" group to link them all to the layer defined on line 2. You will need to edit the layer name or pickwhip your Null so that it is defined as the "targetLayer" variable:
// Set the target layer whose Position path is determined by the data
var targetLayer = thisComp.layer("3D Null - Position is from Data");
// Find the targetLayer's location in 3D world space at the current time
var worldPosition = targetLayer.toWorld( targetLayer.anchorPoint, time );
// Check the index of the property and compute final expression
// for the correct X, Y, or Z axis
switch ( thisProperty.propertyIndex ) {
case 17:
( worldPosition[0] - thisComp.width / 2 ) / thisComp.width;
break;
case 18:
( worldPosition[1] - thisComp.height / 2 ) / thisComp.width;
break;
case 19:
worldPosition[2] / thisComp.width;
break;
default:
throw [
"Please only apply this expression to the X, Y, or",
"Z Positions of a CC Particle World Producer."
].join(" ");
}
I used a "switch" statement to make sure the expression does the right calculations on each property.
From there, the general approach is the same as with any particle effect drawing a line:
- Set the Birth Rate high enough that no gaps are shown.
- Set the Longevity high so that the particles don't fade away ( usually the length of the composition works well ).
- Set nearly all the properties in the "Physics" group to zero so that your particles don't leave the path after they've been emitted ( unless this is part of the look you're going for. )
Please let us know if you encouter any issues with this setup or the expressions involved.
EDIT: I've attached a .gif of a camera orbiting the 3D path made by CC Particle World. The graph axes are Shape layer paths linked to 3D Nulls so that they are camera-aware, and the ground plane is a 3D Solid laid flat with the Grid effect applied.

Thanks so much,
- John, After Effects Engineering