This could be the right plumbing for your case:
- Create the curve to be followed
- Create a plane, an array of which will act as a mount for your objects
- Assign the plane an Array modifier, (Possibly set to fit your curve)
- Assign the array of planes a Simple Deform > Taper, along the array axis
- Assign the tapered array a Curve modifier, deforming it along your curve.
Now, in the plane's 'Object' tab > 'Instancing' panel, set it to instance from faces, with 'Scale by Face Size' checked. The 'Factor' can be adjusted:
Parent your object to the array of planes:
- Parent your object to the array of planes:
You can adjust the interval, taper, scale factor, etc, and hide the instance original and the instancer from the viewport and/or renders.