15
$\begingroup$

So I wanted to array this 3 bottles on a Spiral Curve

enter image description here

I Tried using the most normal way possible, array and curve modifier , the bottles are stretched and the most importantly, only 1 bottle can be array-ed at a time...

Then I searched all over the internet and learned about DupliFaces, i parented the 3 bottle to a plane, and array that plane to the spiral curve, and this is the result

enter image description here

yes, it somehow worked BUT there is still some noticeable seperation between each 3 bottles yes, it can somehow be tricked out by playing the offsets, but because its on a spiral curve, the bottom part overlaps at each other and looked weird

I found this Question that really relates to my question:

Multiple objects in array

but its very outdated, and no longer working on the newest version of blender

I'm still looking for a better way to array multiple objects in blender,

enter image description here

Because my friend can do it so easily and with great result in Cinema4D, I'm finding a way to do that in blender

$\endgroup$
2

3 Answers 3

15
$\begingroup$

To array several unique objects in order, you can use several instancer objects with different offsets along the curve.

Instancers

For my example, I'll use three planes all with their origins at the center, but of course, you can use as many instancers as you have objects that need to be instanced.

Planes

The only important measurement here is the offset between the planes.

Array

Add an Array modifier to the first instancer with a Constant Offset that is set to the distance between the planes times the number of objects you need to array (in my case, three times the distance).

Array

Curve

I used the Add Curve: Extra Objects add-on to create an Archimedean Spiral using these settings:

Archimedean Spiral

To perfect the curve, I rotated the start and end handles around the Z; then, I used Individual Origins to scale all of the handles along the Z.

Spiral Adjustment

Finishing Up

Add the Curve modifier to the first instancer and set the array Count parameter accordingly.

Curve Modifier

With all of the instancers selected, press CtrlL for the Make Links menu and click Modifiers.*

Copied

If the tilt of the curve is not right, you can set it to Z-Up. I further adjusted the curve's tilt in edit mode using CtrlT.

Twist Method

All that is left to do at this point is parent your objects to the instancers and set them to instance by faces.

Face Instancing

You can also angle the instances by rotating the instancer meshes in edit mode.

Rotate Instancers

Ta-da!

Tadaa!



* Modifiers cannot be linked, so it is actually copying not linking.

$\endgroup$
6
  • 1
    $\begingroup$ Hehe.. I interpreted the spiral as flat, so I couldn't just use perspective to make the instances smaller towards the middle :D. $\endgroup$
    – Robin Betts
    Feb 11, 2021 at 22:44
  • 1
    $\begingroup$ ahh so 3 objects using 1 curve, not a collection of objects using one curve, interesting, I'll definitely try this method, and it seems this is the most promising method right now, I'll try to use the duplifaces thing too so the bottles doesnt get distorted, btw love the color palette on the bottles ! hahahaha $\endgroup$ Feb 12, 2021 at 10:38
  • $\begingroup$ I might end up posting another answer since I found a way to do it with one instancer and a particle system (based on Robin Betts' solution). And I just really like coffee color palettes :) $\endgroup$
    – HISEROD
    Feb 12, 2021 at 16:39
  • $\begingroup$ i'll be waiting for the update ! hahaha but right now I'm using your solution to finish up this project, thanks ! $\endgroup$ Feb 13, 2021 at 8:18
  • 1
    $\begingroup$ hello hiserod, just couple minutes a go i found a trick that will kinda "link" modifiers, its not really linking so if you have already copied all the modifiers to the object, then if you want to modify it and affect all of them, you need to hold alt while using the number slider, it will change all of them, its for 2.93 alpha i believe $\endgroup$ Feb 27, 2021 at 16:30
7
$\begingroup$

At least one of the answers you referred to still works, but does need a couple of refinements to deal with this arrangement.

  • Construct a spiral with the desired (changing) frequency of vertices along its length. The shipped add on Add Curve: Extra Objects may provide what you need out of the box, but if you need more control over vertices, you could make an array of your own single-vertex meshes deformed down the curve, with an object-offset. If you scale the object, you can vary the distance between the vertices on the way down. or you could use proportional editing, before curve-deformation.
  • Once your vertices are where you want them, you can convert the curve to a mesh
  • Give the mesh a particle system, as previously described, emitting from vertices.
  • The 'Render' is of a collection of your bottles, using 'Count', so they come out in order, repeatedly.
  • This time, (strangely) you need to turn on Physics, so you can use the influence of a Texture
  • Create a Spherical, or Quadratic Spherical Blend texture, centered on the spiral, set to influence 'Size', so the instances get smaller toward the middle.
  • You can put the texture through a Color Ramp to reverse the scaling influence of the texture, and get finer control over the size-graduation.

enter image description here

The easiest thing would be to play with the file.. if you have any problems, I would be happy to edit this answer.

$\endgroup$
4
  • $\begingroup$ Ooo, I like this answer. It's particularly cool to learn --upon investigating the file-- that Blender points vertex normals outward from the origin by default. I never noticed that before! $\endgroup$
    – HISEROD
    Feb 11, 2021 at 23:28
  • $\begingroup$ @HISEROD Came as a surprise to me, not long ago! Makes sense though, in the absence of faces. $\endgroup$
    – Robin Betts
    Feb 11, 2021 at 23:45
  • $\begingroup$ thanks for the answer, I'll definitely try this, but i think it will be alittle hard because in my animation there will be changing of the offset, so the bottle will get further each other in the animation, but i'll try this interesting method too, infact i tried the old version you post in the link i mentioned Thanks ! $\endgroup$ Feb 12, 2021 at 10:36
  • $\begingroup$ In the case of needing to change the offset during an animation, then maybe you would be better of deforming an array (of planes?) down the curve, and instancing the bottles on those. Then you could change the offset of the array. Or even shape-key a mesh of some kind, before deforming it down the curve. $\endgroup$
    – Robin Betts
    Feb 12, 2021 at 11:28
2
$\begingroup$

Here is an (admittedly somewhat incomplete) node based solution

voila

$\endgroup$
3
  • $\begingroup$ Could you include a node explanation and the add-on's name in your answer? $\endgroup$
    – HISEROD
    Feb 13, 2021 at 15:46
  • $\begingroup$ @HISEROD The add-ons name is there (in tiny writing) - it's Sverchok. As for an explanation, I fear we may be wandering slightly outside my pay grade. $\endgroup$
    – Strawberry
    Feb 13, 2021 at 17:09
  • $\begingroup$ I wonder, are Geometry Nodes ready for this? $\endgroup$
    – Robin Betts
    Feb 13, 2021 at 20:38

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .