Для взрослых. Пытливые умы конечно спросят, а можно ли разорвать «родовую-связь между transform и shape, и «припарентить» shape одного объекта к transform-ноде другого? Ответ, конечно, подкупает новизной - при помощи соответствующей MEL-команды можно всё. Создайте, например, полигональную сферу и источник света (spot light). В Outliner или Hypergraph выберите сначала shape сферы (pSphere-Shapel), а затем transform источника света. В Script Editor выполните команду
parent -add -s;
![](/images/openglorg09/openglorg09-71.png)
Эта команда добавит shape сферы -под» transform источника света. (Исходную сферу можно выбрать в Outliner, а потом удалить.) В итоге получится весьма странный объект, похожий на группу, но в нем ни сферу, ни источник света нельзя перемещать по отдельности.
![](/images/openglorg09/openglorg09-72.png)
Кстати, данный трюк позволяет осуществлять операцию combine для NURBS-объектов. В некоторых случаях это помогает существенно сократить размер файла сцены, сэкономить толику памяти и ускорить перерисовку экрана.
Некриминальные группировки. Пустые группы. Умение группироваться Посмотрим, что происходит в процессе группировки объектов. Если выбрать несколько объектов и выполнить операцию Edit=>Group, то и в Outliner и в Hypergraph сначала просто будет создана пустая нода типа transform с именем типа groupl, а затем все выбранные объекты «припарентиваются» к этой группе, то есть задача сводится к только что описанной выше. Если в предыдущем случае один объект выступал в роли родителя, в процессе группировки такой родитель искусственно создают в виде пустого transform-объекта и потом назначают «начальником» («отцом родным») для всех выбранных объектов. Если выбрать группу в Outliner и открыть Attribute Editor, вы увидите, что у группы всего одна закладка для transform-ноды. Так как у группы нет ноды shape, то у нее не может быть формы, и, следовательно, без специальных ухищрений ее нельзя выбрать на экране.
![](/images/openglorg09/openglorg09-73.png)
Показателен один из способов создать пустую группу. Надо ничего не выбрать (то есть снять выделение со всех объектов), а затем выполнить команду Edit=>Group. Создается пустая группа, включающая в себя «ничто». Для тех, кто не привык мыслить столь радикально, в меню существует «официальный» пункт Create=>Emtpty Group, который делает абсолютно то же самое.
Операция разгруппировки Edit=>Ungroup, выполняемая над выбранной группой, аналогична операции Edit=>Unparent, произведенной над каждым членом группы. Расформированные члены группы попадают в подчинение к вышестоящему объекту, если такой существует. Хотя в Option Box можно задать операции ungroup, чтобы объекты расформированной группы попадали не к вышестоящей группе, а в мировую систему координат (опция World).
Следовательно, вытащив любой объект из иерархии и бросив его на пустое пространство в Outliner, мы просто произведем операцию unparent, так как мы бросаем объект как бы в мировое пространство.
Навигация по группам. Работа с клавиатурой
Клавиатурная навигация по группам и иерархиям в Мауа весьма продуманна. Выбрав объект и нажав стрелку вверх, мы попадаем на родителя этого объекта. Если объект в группе, то попадаем (а «попадаем» значит «выбираем») на группу, так как она является родителем. Если же у объекта нет родителя, он просто остается выбранным. Это удобно визуально наблюдать в Outliner и Hypergraph. Если нажать стрелку вниз, то мы попадем на первый подчиненный объект (child), то есть “проваливаемся” внутрь группы или иерархии. С большой вероятностью после нажатия стрелки вниз будет выбрана нода shape объекта (если она у него есть), так как она всегда подчинена своей ноде transform.