3
$\begingroup$

If an object has one or more children or other descendants, you would expect that when you apply a modifier to that object, it would apply to the descendants as well. At least for the Array and Mirror modifiers, this would be extremely useful.

However, this does not happen. Empty objects are recommended for grouping objects together, but they cannot even have modifiers -- there would be no point, unless they could be applied to the children, but this doesn't work even for normal parent objects.

I tried to report this deficiency as a bug, but it was immediately closed as "Invalid", by somebody who apparently didn't bother to read it.

https://developer.blender.org/T44150

That bug report has some examples attached, of a situation where this ability is in fact rather necessary -- empty parents are being used to apply coordinate transforms, rather than grouping objects, but this then prevents the Array modifier from being used in the necessary way.

Is there any rational reason why at least the Array and Mirror modifiers cannot be applied to child objects, at least as an option?

Other people are asking the same question:

Applying array modifier to multiple items

It's been suggested that my question is a duplicate of the one above. They are certainly related to the same issue (which is why I included the reference in the first place). However, the question that person actually asks is "What am I thinking wrong?" -- as if he's misunderstood the situation. I don't think I have misunderstood the situation, and the question I'm asking is why at least the Array and Mirror modifiers don't work in the way a lot of people would expect.

$\endgroup$
  • 1
    $\begingroup$ as have been said before the modifiers work on the geometry level (they effect mesh which is only a part of the object ) there is no hierarchy (parent child ) on this level ,so you should try linking the modifiers or use drivers $\endgroup$ – Chebhou Mar 27 '15 at 13:21
  • $\begingroup$ There's obviously a distinction between the part of the mesh which came from the children, and the part that came from the parent, or the modifiers wouldn't stop there. What's needed is for this distinction to go away, and for the modifier to be applied to all of the mesh, regardless of whether it came from the parent object or its children. $\endgroup$ – Ian Bruce Mar 27 '15 at 14:00
  • $\begingroup$ possible duplicate of Applying array modifier to multiple items $\endgroup$ – Ray Mairlot Mar 27 '15 at 16:02
  • $\begingroup$ Your bug report was closed because the modifiers are acting as expected, so there was no bug. Of course, you and others might want this feature and not understand why this feature doesn't exist, but the bug tracker would not be the place for that. Unfortunately, I cannot give a solid answer as to why it hasn't been implemented. $\endgroup$ – Ray Mairlot Mar 27 '15 at 16:02
  • 5
    $\begingroup$ @IanBruce instead of a bug I'd call it a Feature Request $\endgroup$ – cegaton Mar 28 '15 at 0:00
5
$\begingroup$

This is just not how modifiers are intended to work.

Perhaps it's just me, but I never thought of modifiers being applied to child objects. Indeed, this would seem rather strange to me.

But why?

Modifiers are another kind of datablock which can be added to objects, much like materials or constraints.

Yet neither materials or constraints are applied to child objects, as this would be quite limiting. Imagine if child objects always had the same materials and constraints as the parent!
If this was how it worked, parenting objects would be pretty much equivalent to joining them with ⎈ CtrlJ.

I think the same reasoning holds true for modifiers.

And for the record, I'm not convinced that your assertion that "modifiers don't work in the way a lot of people would expect" is correct. At least in the question you linked, I don't see anything that suggests to me that the OP was expecting modifiers to affect child objects..


To answer your question about arraying an empty, I think parenting is not the tool you are looking for. Group instances sound more like the kind of "compound object" you want, however it isn't possible to add modifiers to them. This is because modifiers operate on mesh data and not objects, and empties don't have any mesh data (group instances are empties with dupligroup enabled).

Instead you could use a particle system or dupli objects to place objects along an arrayed face, e.g. like this.

Or of course you could copy the modifiers to all the child objects.

$\endgroup$
  • $\begingroup$ If you want to have light parented to an object that have mirror, it is impossible? $\endgroup$ – softyoda yoann Apr 19 '18 at 12:28
  • $\begingroup$ @softyodayoann Not sure what you mean? If you have a new question, it's best to start a new post (and link to this one if it helps provide context). $\endgroup$ – gandalf3 Apr 20 '18 at 5:53
  • $\begingroup$ I found a solution by asking at the discord. Because light can't have modifier, you must add a location constraint to act like a mirror. $\endgroup$ – softyoda yoann Apr 20 '18 at 9:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.