Contrary to other classic 3d package, Maya has not dedicated any tools to spread objects and it is often asked how to indeed. Placing each object would be stupid and exhausting. In this article, I demonstrate five methods frommy own experience/analysisand some talking boards threads. But their may exist many other methods that I did not list... for instance at rendering or at compositing. Feel free to contact me about this article or just to give your opinion about it. I really hope my article could help you.
1 - Paint objects on surface:
geometryPaint is a melscript coded tool bundled with maya (or with the free Bonus Tools pack). Geometry paint enables to use the artisan paint tools to paint objects on a surface. How does this tool work? It places some duplications of an object where you paint on the selected surface. It's a good spreading tool because that is you who choose where to spread objects.
To activate geometryPaint, go Modify>Script Paint Tool options. On the Setup panel, type "geometryPaint" into the "Tool Setup Cmd" text field. Then the other text fields will be entered, and the Geometry Paint Settings window will appear. Type the name of the geometry you want to spread in the "Geometry" text field. Then select the surface and paint on. Lets tweak parameters! For instance, check the "Align" box to have the objects to be spread according to surface normals. Or to randomly scale the objects size, check all scale axis. To work easier, setup the paint tool before.
Geometry paint tool workflow.
A poor sheep brought to a isolated part of the cliff.
2 - Map driven spreading method:
I have coded a melScript called mapSpread that spread objects function to a texture map. So you have just to design 2D a black and white map or use another Maya 2d texture in order to spread objects randomly. Useful in numerous cases, for instance create a forest crossed by a river. How does it work? This script analyses the color of a random point of the map. Then if the color is brighter than the threshold you have given, an object is placed here. Then analyses another point colour. Download mapSpread melscript here (Read the header to learn how to use this script).
mapSpread melscript tool example of use (That is not blob particles but several spheres)..
After placing, lets manage the object array/cloud via other melScript tools, such as the ones studied in last the part. (Note I think it is possible to use the geometryPaint tool this way after having applied this kind of alpha map on the object. Lets setup the paint tool so as to paint only on the white parts of the alpha maps. I have not already tested it.).
3 - Using particle instance:
Particle instancing is a really fast method. The particle instance replaces each particle with an object. Obviously, to use the particle instance, you have to create a range of particles. You can use a particle emitter or the particle paint tool (as easily as the paint geometry tool). Then select your particle shape and create an instance (Dynamics mode, menu Particles>Instance options).