Array modifier caps as vertex groups instead of separate objects
The array modifier is a very powerful tool, especially when stacked multiple times and/or paired with other modifiers such as Curve. The start and end cap feature of the array modifier is crucial to it's ability to maintain non-destructive modeling, but the current implementation makes it a hassle.
Issue:
The array modifier currently references object-type data blocks in order to create start and end caps. However, the process of separating the cap mesh into a new object and placing it so that the modifier connects it properly with the original mesh is challenging and unintuitive.
Suppose I am trying to achieve this model using a simple repeated base-mesh.
In order to do this currently, the body object and its start/end caps must be positioned like this.
Setting this up correctly is troublesome and unintuitive, and makes it difficult to edit the junction between body and cap later on.
Proposal:
I propose that the array modifier be changed to reference vertex groups for its start and end caps. This would mean that no objects need to be separated/moved, and the junction between body and cap can be edited freely and as expected. Vertex groups would look like this:
And the end result would look like this:
(Excuse the crappy photoshop)
Ideally the modifier would remove the parts of the mesh included in each vertex group while duplicating, then reattach them as caps afterward. I am not familiar enough with Blender's code to know if this is feasible, but I think it would really help. Please let me know if this is something that I could try to tackle as someone with just a little experience with Python and no experience coding Blender.
3 Comments
I like it but it should be implemented as a new modifier for backward compatibility. It could also be added as an extra functionality of the existing (too messy?).
@Emil Assarsson: Yes, I think a simple toggle between 'object' or 'vertex group' cap method would be a simple way to maintain backwards compatibility.
This would be cool!