► | Pivot*

► I I <Kul Inlnimjatmn

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

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

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

Если перемещать, например, вершины полигонального куба, это также приведет к изменению атрибутов ноды shape - просто имена таких атрибутов не видны в Attribute Editor, а их тип не позволяет отобразить их адекватно для всего объекта целиком. О таких атрибутах я расскажу подробнее в разделе, касающемся Construction History.

По умолчанию, вновь созданные объекты появляются в Outliner (и в Hypergraph в режиме Scene Hierarchy), при этом они не разделены на transform и shape, а представлены как один целый объект: это лишь подчеркивает, что объект всегда создается как неделимая пара transform-shape. Чтобы увидеть ноды shape в Outliner, надо включить их отображение через меню Display=>Shapes (для Hypergraph: Option=>Display=>Shape Nodes).

В таком режиме видна связь между transform и shape, которая, как упоминалось выше, не описывается зависимостью атрибутов, а является отношением parent-child (родитель-потомок). Как говорят психоаналитики, поговорим об этом подробнее.

Отцы и дети. Начальники и подчиненные. «Припарентивание» и прочие термины. Наследование трансформаций

Как описано выше, для того, чтобы подчинить один объект другому, надо выбрать два объекта и выполнить операцию Edit=>Parent. После этого перемещение второго объекта влечет за собой перемещение первого. Второй объект становится «родителем» (parent) и подчиняет себе перемещения первого, который отныне стал его потомком, «ребенком» (child). Перемещение родительского объекта всегда вызывает перемещения подчиненных объектов, хотя последние могут иметь свои собственные перемещения, если их выбрать независимо от родителя. Разберемся, как это устроено с точки зрения майской архитектуры и деления объектов на transform и shape.

Мы только что выяснили: transform-нодэ полностью управляет положением объекта в пространстве и как бы подчиняет себе shape-ноду. А нельзя ли сделать так, чтобы один объект подчинял себе перемещения другого объекта? (Точнее, чтобы один transform подчинял себе не только свой shape, но и другой transform.) Вышеописанная операция называется parent и служит для организации перемещения подчиненного объекта-потомка вместе с объектом-родителем. По-русски прижилось название «припарентить», то есть как бы привязать один объект к другому.


⇐ вернуться назад | | далее ⇒