Randomize objects inside an array?

hello there, is it possible to randomize the objects witch are created with the array modifier?
i have a row of planks and i would like to randomize the rotation and scale a little bit. so that not every plank looks the same. i hope you can help me, thanks!

Without applying the array, I don’t think you can. I’d apply it, separate the planks into their own objects, center their origins, and then rotate/scale with pivot point set to Individual Origins and proportional editing turned on with random falloff.

EDIT: there’s also the Object -> Transform -> Randomize Transform :wink:

Ok, thank you.
the problem is, i have a lot of planks, posts and stuff like this, i dont want to set for each object the material. also it would be great to keep the ability to change something.
and this is only the beginning:

maybe it would be better to create collections for each “set” of planks?

You could also add some randomization with a displacement shader in cycles

1 Like

Collections would be one option. You can also link object data (i.e. turn the duplicates into linked duplicates). This will allow you to edit the original mesh and propagate changes throughout the objects.

you mean after i applied the array modifier?

how can i turn the duplica tes into linked duplicates?
with this method i can use the randomization with a displacment shader/“Object -> Transform -> Randomize Transform”-method?

Use Sverchok, Animation Nodes or Sorcar.

1 Like

One caveat of using linked duplicates though is that you won’t be able to individually apply modifiers (though you can have different modifiers on different objects, just can’t apply them) or change the origin. So at some point you’ll probably want to turn them back into single user objects.
This you can do via Object -> Relations -> Make Single User -> Object & Data.

3 Likes

Thank you!

not exactly what i used to do in cinema 4d, but the result is the same!

You can use face instancing (aka dupliverts from 2.79): https://docs.blender.org/manual/en/latest/scene_layout/object/properties/instancing/faces.html

Note what it’s different thing from collection instances.

Create object with bunch of faces and rotate them randomly, then parent object what you need to array to it and change instancing (it’s in object properties) from none to face (note option to hide instancer - it will hide faces):

Also make sure you placed object origins correctly.

face_instances.blend (166.6 KB)

3 Likes

You don’t need to apply the modifier:


randomize planks.blend (660.2 KB)

3 Likes

thx @all, i will look at it this evening.