From BlenderWiki

Jump to: navigation, search
Note
The Array modifier is now in a released version of Blender, so the user documentation has been moved to Manual/Array.

Introduction

Multidimensional array animated with motion blur

Based on suggestions from ideasman, I have implemented an array modifier to fit into Daniel Dunbar's modifier stack. This modifier creates an array of copies of the base object, with each copy being offset from the previous one in a number of possible ways. Vertices in adjacent copies can be merged (based on a merge distance, allowing subsurf frameworks to be generated.

This modifier can be useful when combined with tilable meshes for quickly developing large scenes. It is also useful for creating complex repetitive shapes. Because it is dynamically updated, the results of any editing on the base object can be seen in realtime, making for a very smooth workflow.

- Artificer 13:44, 1 February 2006 (CET)

Features

Current Features

See Manual/Array for a description of the current features.

Future Features

Merged face Removal

For the purpose of generating subsurf meshes, it would be useful to have an option to remove faces if all their vertices have been merged, i.e. faces on a boundary between one copy and the next. This would allow generated meshes to have closed ends while avoiding subsurf warping caused by extraneous internal faces.

Cap Object Specification

(Suggested by ideasman (cambo) on Elysiun)

Another option that would be useful is the ability to specify "cap" objects to use at the start and end of the array. This would be useful when working with tilable meshes and generating subsurf frameworks, and could perhaps remove the need for the "Merged Face Removal" feature.

Rotation/Scale Offset Inputs

(Suggested by multiple people on Elysiun)

Inputs to specify the rotation and scale offsets in the UI rather than by using the object offset option would be useful for people aiming to quickly achieve a specific effect.

Offset Multiplication Input

(Suggested by Bart on Elysiun)

An input to specify per-duplicate multiplication of the offsets was suggested. This would allow the offsets to gradually increase/decrease in size from one duplicate to the next. Buttons to enable/disable multiplication of each offset component individually would make this even more useful.

Randomised Position/Rotation/Scale

(Suggested by Bart on Elysiun and David Eissler via email)

An option to add a certain amount of randomisation to the position/rotation/scale of each duplicate would make it possible to produce more natural distributions of objects. It was suggested by ideasman that basing the randomisation on a texture could provide more control. Buttons to enable/disable randomisation of each offset component individually would make this even more useful.

Total Rotation

This was inspired by Bart's suggestion of a "Center" button on Elysiun. The "Center" button seems a little too specialised to me, but perhaps a button to calculate the rotation offset from a total rotation would be useful. Thus, you could specify the number of duplicates in the normal way, specify the rotation, and each duplicate would be rotated by (total rotation)/(number of duplicates) from the previous duplicate.

Skinning

(Suggested by ideasman (cambo) on Elysiun)

The ability to generate faces between corresponding edges from one copy to the next would be very useful, allowing this modifier to be used as a lathe(Spin) or path extrusion tool. This would be similar to the Curve object's BevOb field, but would use Mesh objects instead of Curve objects.

Examples

See Manual/Array for examples.