1

Suppose you're working on a room containing lots of objects, and you need an exact copy that is mirrored. This can easily be performed by selecting all the objects, then duplicating and mirroring them with Shift D and Ctrl M.

In this case, any time I make a change to this room, I would need to delete the duplicate room and contents, then perform the Shift D and Ctrl M procedure again to ensure that the room and all its contents are the same.

To make things faster and more convenient, is there a way to automatically do this? What I'm looking for here is something similar to the mirror modifier, where changes to the original piece are mirrored at the exact same time, so that you don't have to do it yourself. Unfortunately, the mirror modifier only works on individual objects, and thus, a room with hundreds of items in it would be a nightmare to mirror individually.

Hiigaran
  • 370
  • 6
  • 17
  • 1
    Select all the room objects, Ctrl+G to group them. Then from Add menu add a group instance and mirror it, should be faster. – Mr Zak Feb 03 '17 at 15:10
  • @Mr Zak, Yes, that! Cool! (Likely faster than the mirror + "mirror object" that I suggested below.) To mirror, invert (-1) one of the axis scales on the empty it creates. – James Thomas Feb 03 '17 at 15:26
  • Yes, that sounds like it will work perfectly. Now if I add a new object to the existing group, will it add the object to the instance as well? I think it should, but I'll need to try it out later. – Hiigaran Feb 03 '17 at 15:35
  • The object added later to the group will appear in all group instances. – Mr Zak Jun 08 '17 at 13:43

3 Answers3

1

Take all the objects that you want mirrored and add them to a Group. (Select them and use Ctrl-g).

Then create a single empty somewhere on the mirror axis, and scale its x or y axis by -1 (I edited the scale value in the properties but s x -1 would also work. Now in the Properties > Object panel in the Duplication section change its duplication from None to Group and select the group you created in the first step. There should be copies of all the objects mirrored along the axis that was scaled by -1.

When you create more objects that need to be part of the mirror group you can go into the Properties > Object panel and look for the Groups section and use the Add to Group button to add it to the dupligroup.

Mutant Bob
  • 9,243
  • 2
  • 29
  • 55
0

You may try the following: select the objects you want to mirror, press shift+D to duplicate, press S to scale, press Y to constrain the axis, press "-1" (minus one) so the objects will be mirrored in that axis. Other way, you may change the origin of your objects to the center of the mirror, and add a mirror modifier. Other way, is on the bottom menu, click "object", then click "mirror", then choose the axis.

MCunha
  • 1,263
  • 7
  • 12
  • Method 1 is what I currently use. Make some changes, delete mirrored side, re-duplicate. What I want is a way to make the changes in real time. This can be done with your second method, but only on individual objects. I have a feeling that mass mirroring might not exist, but I could be wrong, hence the question. Thanks anyway. – Hiigaran Feb 03 '17 at 10:33
  • in that case, you just need to parent all to one single object: https://blenderartists.org/forum/archive/index.php/t-81457.html – MCunha Feb 03 '17 at 10:52
  • Still nothing. Though maybe I did something wrong, or didn't understand something. I have every object in the room parented to the floor already, so I selected the floor and added the mirror modifier. As expected, only the floor was mirrored – Hiigaran Feb 03 '17 at 11:14
  • Duplicate the objects, parent the duplicated ones, bottom menu "object" > mirror (or press CTRL+M then X, Y or Z to specify axis). Don't use the mirror modifier. – MCunha Feb 03 '17 at 11:29
  • Followed those instructions and still nothing. The parent is the original room and the room that was created with Shift D is a child of it. Pressing Ctrl M on the duplicated room will then mirror it. Everything is fine so far. Now, suppose I extrude the floor of the original. The duplicated floor does not change. – Hiigaran Feb 03 '17 at 11:35
  • can you provide the blend file? – MCunha Feb 03 '17 at 11:38
  • There's quite a lot of linked resources in it, so what I'm going to do first is to try with a few basic objects in a separate file, and see if it works. If it doesn't, I'll get back to you. – Hiigaran Feb 03 '17 at 11:55
  • Okay, well I gave it a try on a separate file, and still nothing. The following file contains three original objects that are parents to their duplicates. No other actions have been made, so they aren't mirrored or anything. Where do I proceed from here? http://pasteall.org/blend/index.php?id=45379 – Hiigaran Feb 03 '17 at 13:02
  • on the hierarquy window, select your "original cube" group of objects > press Ctrl+D to duplicate the group > select the new group called "Original.Cube.001" > press keyboard Ctrl+M> press keyboard X, to constrain to X axis. The objects will now be mirrored in X axis, according to the origin point you have. – MCunha Feb 03 '17 at 13:16
  • my mirrored file: http://pasteall.org/blend/index.php?id=45381 – MCunha Feb 03 '17 at 13:33
  • notice that the origin point was inside one of the cubes, and everything was mirrrored to that cube – MCunha Feb 03 '17 at 13:34
  • 1
    We are still talking about getting duplicated mirrored objects to duplicate and mirror changes to the original object group in real time, right? I think maybe my original question was not worded well enough. Might edit that. – Hiigaran Feb 03 '17 at 13:54
  • in that case, you need to join (Ctrl+J) all the meshes into one, and work with a mirror modifier. – MCunha Feb 03 '17 at 14:03
  • or this: http://blender.stackexchange.com/questions/16264/it-is-possible-to-add-modifiers-to-a-group – MCunha Feb 03 '17 at 14:04
  • you may try to use links (Ctrl+i) (don't know if it works in your case) – MCunha Feb 03 '17 at 14:05
  • That group modifier might be what I'm looking for. Will need to try it out later. – Hiigaran Feb 03 '17 at 14:10
0

Use the mirror modifier.

  1. Create an empty to define your mirror location/rotation. (The X axis is perpendicular with your mirror surface... but you can tweak that later too.)

  2. On one of your object on one side of the mirror, add the mirror modifier.

  3. In "Mirror Object" choose the empty you created in step 1. You should see the object mirrored on the other side of the mirror object. tweak them to your liking.

  4. Copy that modifier to all the objects you want mirrored. ("b" border select, shift-right-click an object that has the modifier so that it's highlighted brighter (the first selection), Ctrl+L, "Modifiers".)

  5. You can move objects and the mirror axis interactively, and omit some objects...

  6. To add more objects, just add them to the same side, with the object(s) selected, shift select another object with the modifier... do step 4 again. (You can copy to a whole mess of objects in one go.)

OR, use a reflecting material on a plane.

OR, before we had reflecting materials in Blender, I parented a copy of the camera to an empty representing the mirror plane, inverted an axis of the empty, composited both images together... there's a bit more to it, let me know if there's interest.

James Thomas
  • 421
  • 2
  • 6