Как разгруппировать объекты в maya
Перейти к содержимому

Как разгруппировать объекты в maya

  • автор:

Инстументы Combine и Separate

Поскольку вы начинаете моделировать более сложные объекты в Maya, может быть полезно объединять несколько объектов в один, что сделает наши сцены более простыми в управлении. Для этого у нас есть пара функций Combine и Separate. Они позволяют вам объединять несколько объектов в один. Итак, у нас есть различные части дерева. Давайте попробуем его собрать. Я выберу этот шар под названием TreeLeaves1.

Он будет кроной нашего дерева. И я размещу его на верхушке. Теперь я выберу второй объект поменьше, он называется TreeLeaves2, и размещу его также на своем месте. Для этого я использую инструмент перемещения. И затем для остальной части листвы я просто сделаю несколько копий. Я нажму ctrl + d, скопирую эту листву и просто перетащу ее на место. И давайте сделаем это еще раз. Я нажимаю ctrl + d.

И перемещаю третий маленький шар на его место. Уменьшу его масштаб, чтобы внести немного разнообразия. Так, у меня уже есть что-то, напоминающее дерево. Но это не единый объект, а состоящий из нескольких других. Если я войду в Outliner, то мы увидим, что у меня есть ствол, а также четыре объекта, изображающие листву. Но я хочу, чтобы это все стало одним деревом. Мне не нужны пять объектов. Я же не собираюсь анимировать листву отдельно от остального дерева.

Нет, я просто хочу одно целое дерево. Для этого можно использовать функцию Combine. Я выбираю все объекты, проверяю, что мы находимся в режиме Modeling. И затем просто выбираю Mesh, Combine. После этого наши объекты объединились в одну сетку. В Outliner у нас появился новый объект TreeBranches1, но также у нас остались все записи и для составных частей.

То есть если я хочу, я все еще могу манипулировать ими по отдельности. Но если мы хотим избавиться от этого, мы должны выбрать объект, который мы создали, и затем просто выбрать Edit/ Delete by type/ History. Это удалит так называемую историю, и у нас теперь остался всего один объект. Теперь я буду управлять одним объектом, а не пятью отдельными. И это дополнительный способ объединять несколько объектов. Лучше всего это будет работать в случаях, когда вы не планируете анимировать.

Если вы хотите анимировать свои объекты, лучше используйте иерархии. Итак, разделить наш объект на составные части мы можем с помощью функции Separate. Она ищет объекты, которые изначально состояли из самостоятельных объектов. Нет, она не разобьет их на полигоны, но если мы перейдем в каркасным режим, мы увидим, из каких простых фигур состоит наше дерево. И когда мы выбираем Mesh/ Separate, эти фигуры снова становятся самостоятельными объектами.

В Outliner теперь представлены отдельные фигуры, и Separate просто поместила их в одну группу. Так, чтобы они оставались хоть немного организованными. Мы можем разгруппировать эти объекты. Как видите, мы можем объединить таким образом несколько объектов в один или разделить их обратно, если захотим.

Как разгруппировать объекты в maya

Наглядно говоря, группируя объект или объекты, вы заключаете их в дополнительную оболочку (которую можете анимировать как угодно), эту оболочку можете заключить еще в одну оболочку и т.д.

Инстансирование или подстановки. Поверхности с общей формой. Один потомок у семи родителей При дублировании объектов по умолчанию создается копия как ноды transform, так и ноды shape, то есть дублируется вся иерархия; в случае группы дублируется вся группа.

В свете вышеизложенного возможен вопрос: а можно ли скопировать только transform, a shape оставить как бы один на двоих?

Действительно, в Option Box операции Duplicate для параметра Geometry Туре можно выбрать вместо Сору опцию Instance (подстановка).

Если при такой установке Geometry Туре скопировать, например, полигональный куб, то, изучив Outliner или Hypergraph, можно определить, что скопировался только transform, определяющий положение копии объекта, а вот shape-нодэ, определяющая форму объекта, осталась «одна на двоих», то есть не скопировалась, а присутствует, одна и та же, в каждом из объектов.

Парадоксальная ситуация — у одного потомка несколько родителей! Тем не менее, это так, и в разных местах пространства, определяемых атрибутами различных transform-нод, визуализируется одна и та же форма, описываемая атрибутами одной ноды shape. Если вы попробуете изменить форму куба, например, перетаскивая его за вершины, то увидите, что набор точек у двух кубиков один на двоих, и он просто визуализируется в разных местах. Такие копии объектов принято называть инстансами, подчеркивая их зависимую от оригинала форму.

Очевидно, что если отредактировать на экране форму одного из кубов, то форма второго тут же изменится. Более того, выделив вершины на одной поверхности, вы увидите, что на другой они тоже выделены. Это еще раз подчеркивает, что положение в пространстве (transform) у объектов разное, а форма (shape) — одна.

Примечание. Никакой галочки или кнопочки типа «Превратить инстанс в нормальную копию» не существует. Можете просто скопировать объект в режиме по умолчанию и удалить исходный объект.

Длинные и короткие прозвища. Полный путь к объекту. Уникальные имена

Внутри разных групп объекты могут иметь одинаковые имена. Это действительно удобно, когда у вас есть, например, набор персонажей, и у каждого из них конечности называются одинаковыми «человеческими» именами (типа «left_hand» или «right_foot»). В таком случае надо уточнить понятие «имя объекта». Если два объекта имеют одинаковые имена в разных группах, уникальное имя объекта включает в себя полный «путь» до объекта по иерархии, то есть имя самого объекта и имена всех его родителей.

Например, если создать полигональную сферу, потом сгруппировать ее (Ctrl-g), а затем сдублировать (Ctrl-d), то получится две группы, внутри каждой из которых находятся объекты с одинаковыми именами pSpherel. Выбор на экране любой из этих сфер приводит к появлению в Script Editor команд

select -г group2| pSpherel ; select -r groupl | pSpherel .

Вертикальная черта «|» является разделителем между именем объекта и «путем» до объекта по иерархии.

Как разгруппировать объекты в maya

Для взрослых. Пытливые умы конечно спросят, а можно ли разорвать «родовую-связь между transform и shape, и «припарентить» shape одного объекта к transform-ноде другого? Ответ, конечно, подкупает новизной — при помощи соответствующей MEL-команды можно всё. Создайте, например, полигональную сферу и источник света (spot light). В Outliner или Hypergraph выберите сначала shape сферы (pSphere-Shapel), а затем transform источника света. В Script Editor выполните команду

Эта команда добавит shape сферы -под» transform источника света. (Исходную сферу можно выбрать в Outliner, а потом удалить.) В итоге получится весьма странный объект, похожий на группу, но в нем ни сферу, ни источник света нельзя перемещать по отдельности.

Кстати, данный трюк позволяет осуществлять операцию combine для NURBS-объектов. В некоторых случаях это помогает существенно сократить размер файла сцены, сэкономить толику памяти и ускорить перерисовку экрана.

Некриминальные группировки. Пустые группы. Умение группироваться Посмотрим, что происходит в процессе группировки объектов. Если выбрать несколько объектов и выполнить операцию Edit=>Group, то и в Outliner и в Hypergraph сначала просто будет создана пустая нода типа transform с именем типа groupl, а затем все выбранные объекты «припарентиваются» к этой группе, то есть задача сводится к только что описанной выше. Если в предыдущем случае один объект выступал в роли родителя, в процессе группировки такой родитель искусственно создают в виде пустого transform-объекта и потом назначают «начальником» («отцом родным») для всех выбранных объектов. Если выбрать группу в Outliner и открыть Attribute Editor, вы увидите, что у группы всего одна закладка для transform-ноды. Так как у группы нет ноды shape, то у нее не может быть формы, и, следовательно, без специальных ухищрений ее нельзя выбрать на экране.

Показателен один из способов создать пустую группу. Надо ничего не выбрать (то есть снять выделение со всех объектов), а затем выполнить команду Edit=>Group. Создается пустая группа, включающая в себя «ничто». Для тех, кто не привык мыслить столь радикально, в меню существует «официальный» пункт Create=>Emtpty Group, который делает абсолютно то же самое.

Операция разгруппировки Edit=>Ungroup, выполняемая над выбранной группой, аналогична операции Edit=>Unparent, произведенной над каждым членом группы. Расформированные члены группы попадают в подчинение к вышестоящему объекту, если такой существует. Хотя в Option Box можно задать операции ungroup, чтобы объекты расформированной группы попадали не к вышестоящей группе, а в мировую систему координат (опция World).

Следовательно, вытащив любой объект из иерархии и бросив его на пустое пространство в Outliner, мы просто произведем операцию unparent, так как мы бросаем объект как бы в мировое пространство.

Навигация по группам. Работа с клавиатурой

Клавиатурная навигация по группам и иерархиям в Мауа весьма продуманна. Выбрав объект и нажав стрелку вверх, мы попадаем на родителя этого объекта. Если объект в группе, то попадаем (а «попадаем» значит «выбираем») на группу, так как она является родителем. Если же у объекта нет родителя, он просто остается выбранным. Это удобно визуально наблюдать в Outliner и Hypergraph. Если нажать стрелку вниз, то мы попадем на первый подчиненный объект (child), то есть “проваливаемся” внутрь группы или иерархии. С большой вероятностью после нажатия стрелки вниз будет выбрана нода shape объекта (если она у него есть), так как она всегда подчинена своей ноде transform.

Програмирование с использованием OpenGL

  • Новости
  • Основы OpenGL
  • OpenGL и Delphi
  • Информационные технологии
  • Мультимедиа технологии и компьютерная графика
  • Download
  • Coding
  • Документация
  • Литература
  • Уроки по OpenGl
  • Статьи
  • Ссылки
  • Наши банера
  • О сайте

Группировка объектов

Группы — еще один способ организации ваших объектов. Они позволяют нам взять много объектов и просто поместить их в произвольную иерархию. Здесь у меня есть несколько деревьев. Я покажу вам, как группировать объекты на примере этих деревьев. Я зайду в Outliner. Здесь мы видим, что у нас есть деревья от Pine_01 до Pine_07. Если я выберу эти деревья справа, я могу сгруппировать их.

Давайте посмотрим, как это происходит. Я иду в Edit, Group. И теперь, смотрите, у меня появился этот объект под названием group1. И в нем у меня четыре дерева. Также у меня появился group1 в Channel box. если я хочу, я могу изменить имя, давайте назовем нашу группу просто Trees. И смотрите, название поменялось и в Outliner. Теперь, если я хочу, я могу использовать этот узел для управления всеми этими объектами.

Таким образом, если я вхожу в Режим Move, вы видите, что я могу переместить эти деревья. Заметьте, что Pivot отдален от места, где расположены деревья. Потому что по умолчанию центр группы размещается в центре сцены. Если я включу Grid, мы увидим, что действительно, это центр сцены. Если я хочу центрировать поворот относительно группы деревьев, все, что я должен сделать, просто щелкнуть Modify/ Center Pivot, и это перенесет Pivot в центра самой группы.

Я могу переместить группу, изменить положение деревьев, я могу поворачивать, масштабировать и делать что угодно, что захочу. Когда я работаю с группами, точно так же, как и при работе с иерархией, я могу выбрать в Outliner корень и выбрать всю группу. А если я щелкаю по объектам внутри этой группы в окне проекции, я выбираю только отдельные деревья. Это может создать проблему, потому что нам может быть нужно выбрать всю группу, а не только отдельные деревья.

И способа легко сделать это в окне проекции, пожалуй, нет. Но если применить пару приемов, этого можно добиться. Первый — изменить режим выбора. И мы можем перейти в строку состояния и получим несколько различных режимов выбора. По умолчанию у нас стоит Select By Object, поэтому когда я щелкаю по чему-то, я выбираю целый объект. Правее у нас есть Select By Component, и это идеально для моделирования и изменения формы объекта.

Но нам нужен режим Select By Hierarchy. Когда я включаю этот режим выбора, я могу щелкнуть по любому из деревьев, и Outliner сам перейдет к вершине и выберет всю группу. Дело в том, что в группе у нас нет никакого соединения между объектами, вот почему выбор не очень легко организован. Я выбрал свою группу и теперь перейду в Attribute Editor. Эта группа представляет собой один узел. Здесь у нас информация о ее положении.

У нас, как обычно, есть Translate, Rotate, и Scale. Но ничего больше в Attribute Editor нет. Нет никакой информации о геометрии, никакой информации о текстуре, только информация о положении. Так, я могу, конечно, использовать это для перемещения группы, но если мы хотим упростить выбор, мы можем зайти во вкладку вкладки Display, и у нас есть пункт под названием Display Handle. И когда я выбираю его, появляется эта точка захвата. Давайте я увеличу масштаб, чтобы мы ее увидели.

Итак, у нас появилась эта точка в центре нашей группы. И я могу щелкнуть по ней для выбора всех объектов группы. Если я вернусь в Object Mode , я могу щелкнуть по деревьям, или я могу щелкнуть по этой точке захвата и выбрать все деревья в группе. Очень удобно управлять группой, просто прикрепив к ней точку захвата. Также, когда вы работаете с группами, бывают случаи, когда нужно разгруппировать или удалить группу.

Вы можете, конечно, вручную вытащить все объекты из иерархии в Outliner, но более простой способ это сделать — просто разгруппировать. Я выбираю свою группу и делаю Edit/ Ungroup. И моей группы теперь нет, и у меня просто остались деревья в корневой иерархии. Как вы видите, группы — действительно мощный инструмент, а также отличный способ организовать сцены, не создавая дополнительных объектов.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *