Модификатор Mirror

Большинство объектов реального мира обладают симметрией. У них могут быть как оси, так и плоскости симметрии. У человека есть только одна плоскость, так как только его левую и правую половины можно считать симметричными. Через куб можно провести несколько осей и плоскостей симметрии, а через шар – множество.

Симметричные половины не совсем идентичны. Они являются зеркальными отражениями друг друга. То, что у одной расположено слева, у другой – справа. Однако это не мешает создавать только уникальную часть объекта, даже если простым дублирование ее нельзя будет достроить до целого. На помощь приходят инструменты зеркального отражения, которые предусмотрены в средах 3D-моделинования, в том числе Blender.

В Blender есть простой инструмент Mirror, который отражает, то есть переворачивает, а не достраивает, выделенный объект по указанной оси.

Также в Blender есть модификатор Mirror, выполняющий достраивание. При его использовании следует учитывать ряд особенностей.

Ключевыми настройками являются оси (Axis), вдоль которых происходит отражение объекта. То есть воображаемая плоскость симметрии перпендикулярна выбранной оси.

Обратите внимание, где находится центральная точка объекта. Отражение происходит относительно нее. Если вы попробуете отзеркаливать куб в неизменном виде, то ничего не увидите, так как отражения будут находиться в том же месте. Это следствие того, что центральная точка объекта находится в его центре, а сам объект симметричен относительно всех трех осей.

Отсюда следует, что перед тем, как применять модификатор Mirror, обычно изменяют положение центральной точки. Для этого надо установить 3D-курсор в желаемое место и в контекстном меню выбрать Set Origin → Origin to 3D Cursor.

Нередко центральную точку устанавливают в позицию одной из вершин объекта. Для этого надо выделить эту вершину в режиме редактирования. Нажать Shift+S и выбрать Cursor to Selected. После этого 3D-курсор будет установлен на место вершины. Далее в объектном режиме переместить центральную точку к курсору, как описано в предыдущем абзаце.

При использовании модификатора Mirror отражение происходит вдоль локальных, а не глобальных осей. Если объект не поворачивался (R), то эти оси совпадают. После поворота обычно это уже не так. Чтобы увидеть локальные оси объекта, надо из списка ориентаций, расположенного в заголовке 3D Viewport, выбрать Local (локально) и включить инструмент перемещения.

Если сместить центральную точку и отзеркалить, например по оси Z, то отражение появится не вверху, как это было бы, если бы объект не поворачивали, а вдоль локальной оси Z.

При отражении может использоваться не собственная центральная точка, а точка другого объекта и, следовательно, чужие оси. В настройках модификатора Mirror в поле Mirror Object можно указать объект, относительно которого следует выполнять отражение.

Этот факт может применяться не только как самостоятельное явление, но также в случае, если локальные оси объекта не совпадают с глобальными, а отразить надо вдоль глобальной оси. Тогда можно использовать объект, который не был повернут. В этом случае бывает полезен объект-пустышка (Shift+A → Empty → Arrows), который не имеет "физического" воплощения и служит для вспомогательных целей.

На рисунке показано, что локальные оси конуса не совпадают с осями пустышки. Однако отражение происходит по оси Y последней.

Модификатор Mirror позволяет включить отражение сразу по нескольким осям. Если будет включено по двум, то объект учетверится. Если по трем, то увосьмерится.

Практическая работа

В качестве практической работы создадим модель гантели, закрепив тему этого урока, а также познакомимся с созданием групп вершин.

Гантель – простая фигура, ее можно сделать, объединив цилиндр и две сферы. Однако, если в дальнейшем потребуется ее править, то делать это будет не просто. Во первых, придется изменять каждый шар по отдельности. Во-вторых, в режиме редактирования mesh-объекта, чтобы отделить вершины шара от вершин цилиндра, потребуется немало усилий.

Первая проблема решается модификатором Mirror, вторая – созданием группы вершин.

В данном случае уместно использовать отражение только по одной оси, т. е. изготовить половину гантели.

Добавим на сцену цилиндр. С помощью масштабирования (S) зададим ему желаемую форму. Цилиндр – это половина рукоятки гантели.

Сразу установим точку центра масс цилиндра у его нижнего основания. Проще не помещать туда 3D-курсор, а оставить его в центре сцены и приподнять цилиндр по оси Z. Далее в контекстном меню выбрать Set Origin → Origin to 3D Cursor.

Теперь переключимся в режим редактирования. Перед тем как добавлять сферу создадим группу для ее вершин. Для этого надо перейти на вкладку Object Data редактора свойств и в панели Vertex Groups с помощью кнопки с плюсом добавить новую группу. Группу можно переименовать.

Теперь добавим сферу и, не снимая выделения, присвоим (Assign) ее вершины группе. В дальнейшем, если потребуется править сферу, следует выбрать группу и нажать Select. Будут выделены вершины группы. Если нужно будет править цилиндр: выделить все (A), затем нажать Deselect для группы Ball. Также можно создать отдельную группу для вершин цилиндра.

Выделив все вершины сферы, переместим их к верхнему концу цилиндра. Ведь если центр масс находится у нижнего, позже верхняя часть правильно отразиться вниз.

Осталось применить модификатор Mirror с отражением по оси Z (в объектном режиме).

После этого можно приступить к более тонкой правке гантели (изменять шары, рукоять, точку центра, поворачивать ее), при этом наблюдать, как будет выглядеть целый объект.

Обратите внимание, в данном случае не надо применять (Apply) модификатор. Иначе вторая половинка станет не "виртуальной", а реально продублируется. В режиме редактирования вы будете видеть ее вершины, ребра, грани.

Курс с инструкционными картами к части практических работ:
android-приложение, pdf-версия

Введение в Blender. Курс