Blenderstorm

Popular
In development
Implemented
Idea #173: Extend the "Array modifier" with rotation and scale offset

Written by madmesh the 12 Sep 10 at 07:43. Category: Mesh Tools. Related project: Nothing/Others. Status: New
Rationale
The title says it all.

The current Array modifier only has controlls for offsetting location.

2
votes
up equal down
5
votes
up equal down
24
votes
up equal down

Propose your solution


Duplicates


Comments
Pharion wrote on the 16 Sep 10 at 01:46
I use the array modifier allot, and I agree that you shouldn't need to use an empty to rotate that array, I don't think the current option should be removed, but to be able to do it without using an empty would be preferable.

madmesh wrote on the 1 Oct 10 at 07:39


Your solution is understandable, having everything in one modifier and enabled at once.

From a more practical point of view it makes the modifier have a huge amount of inputs. Meaning, you wil need to scoll down just to view all of the options in the modifier.

My solution (the mockup) extends on the idea that is already used for the current state of the modifier. When you want an array to repeat in the X,Y and Z axis you also need 3 modifiers. You just cant stuff everything in one panel at once, just as long as everything is in there.

FreeMind wrote on the 2 Oct 10 at 09:00
How would your mockup go by Drawing five transposed cubes, and scaling each one of them by a little?
If you select only to scale, the cubes will draw on the same location, but with different sizes.
I don't think it's possible with your solution. Or am I missing something?

madmesh wrote on the 6 Oct 10 at 00:52
You create 1 array with the the location offset and 1 with the scaling offset. You wil have 2 array modifiers in your stack.

This priciple is already used for the current Array modifier.

How would you for example repeat a cube 5 times in the X direction and the Z direction, with one modifier?

You cant right now, the only way to do that now is by using 2 modifiers.

madmesh wrote on the 6 Oct 10 at 00:59
I dont understand #Solution 3

Its not an improved solution but a new proposal all together. I think this is a result of merging 2 ideas that both improve on the Array modifier but are not the same.

blenderox wrote on the 6 Oct 10 at 01:31
solution #3 doesn't seem to have much to do with the explicit meaning of the solution IMO. Though I would like to have random seeds in there too, just doesn't seem to fit with the idea#.

FreeMind wrote on the 8 Oct 10 at 04:40
""You create 1 array with the the location offset and 1 with the scaling offset.""

Nope, according to your mockup, this won't work. Look:

What the offset array does:
http://img98.imageshack.us/img98/8827/19882655.png
(Draws four instances of the mesh, moving each by a little)

What the Scale array does:
http://img801.imageshack.us/img801/4391/28876764.png (Draws four instances of the mesh, scaling each by a little)

What the Result would look like if you used them both (scale after offset) according to your proposal:
http://img229.imageshack.us/img229/2510/56863690.png
(Draws 16 instances of the mesh, Drawing a line of 4 instances and then scaling that line 4 times in the same position)

What I want it to look like:
http://img2.imageshack.us/img2/240/63674884.png
(Draws four instances of the mesh, scaling AND moving each by a little)

Got it?


FreeMind wrote on the 8 Oct 10 at 04:45
Unless you add a little checkbox "Use Instances from the previous array" or something like that... that would work...

But still, it would be less messy if all three of these transforms were in one modifier.

madmesh wrote on the 8 Oct 10 at 05:26

What the Result would look like if you used them both (scale after offset) according to your proposal:
http://img229.imageshack.us/img229/2510/56863690.png
(Draws 16 instances of the mesh, Drawing a line of 4 instances and then scaling that line 4 times in the same position)

I agree that the result you posted is closer to what the result would be to how Blender handles Arrays at the moment.

This is however a behaviour issue that can be adressed, remember that it is still a proposal. It doesnt invalidate my idea of using multiple Array modifiers to achieve the effect you posted in your last example. This can be solved by either your suggestion of "Use Instances from the previous array" or adding an "inherit location" option. Its not an insurmountable problem in my opinion.

If you are convinced that your idea of stuffing everything in one modifier is a better solution then I recommend you make a mockup of that one, and see how clutterered it will be.

FreeMind wrote on the 8 Oct 10 at 07:06
I do agree that there will be quite a lot of numberboxes on that one modifier. But there could be some way of hiding the ones you don't need.... I'll try making a mockup...


FreeMind wrote on the 8 Oct 10 at 09:08
Mockup complete

madmesh wrote on the 12 Oct 10 at 04:26
Nice mockup by the way.

I personally think its too big for a single modifier. Maybe if you could hide/collapse or enable/disable what you need it wouldnt be a problem.

Pharion wrote on the 12 Oct 10 at 05:59
I've created a flower head using 2 arrays
1. first array creates an arc rotation and scale with the use of an empty
2. then a second with the use of another empty, rotates the results of the first array... works fine, but its all very uniform, a bit of randomness would make it more realistic

see 00:25:
http://vimeo.com/15391974

FreeMind wrote on the 12 Oct 10 at 06:29
"I personally think its too big for a single modifier."
My mockup has that. If you uncheck "Scale" and "Rotate" the scale and rotate number boxes get hidden.

madmesh wrote on the 13 Oct 10 at 03:28
So basicly the mockup shows how everything looks when it is enabled.

I dont have a great deal of problems with this setup, the only reason why I chose the multiple modifier aproach was to keep the interface cleaner.

A few comments
- I am missing a checkbox for Location, or is that one always on by default?
- Another point would be the object offset, does it work for rotation location and scale at once or can you set it for each one seperately?
- I dont think you need the instance option. Unless you want it to work in a multi modifier approach, which seems unnescesary with your proposal.
- If you remove the instances, I dont think enabling/disabling will even be needed with the checkboxes.

FreeMind wrote on the 13 Oct 10 at 09:09
- Well, I thought it could be allways on. But that's easy to change.
- I am not sure I understand your question.
- I seperated Instance scale/Rotate from offset scale/Rotate, because sometime someone will like the SPACES between objects to be scaled, and the actual instances not. So its like Cube - space - cube - bigger space - cube - even bigger space - cube etc. or they could need "cube - space - bigger cube - space - even bigger cube - space". Or use both of them to create bigger spaces and cubes at the same time.
Or maybe he would need the instances to be placed in one line (not an arc) but with each instance rotated by some degree. Hope you understand.


madmesh wrote on the 14 Oct 10 at 01:43
Forget the object offset input I was talking about, there is no need for a seperate input.

I like the idea of the instances, first I thought you were refering to the usage of instances where array's could inherit atributes from multiple modifiers.


Post your comment