Сначала соедините атрибут World Matrix ноды pTorusShapel с атрибутом Input World Matrix ноды follicleShapel.

Затем также присоедините атрибут OutMesh слева и атрибут Input Mesh справа.

Теперь нода follicleShapel «знает», с какой поверхностью она работает, и потому будет однозначно вычислять трехмерные координаты точки, заданные атрибутами Parameter U/V.

В принципе осталось присоединить эти вычисляемые значения к конусу, чтобы «посадить» его на поверхность.

Для этого достаточно загрузить ноду follicleShapel в левую панель Connection Editor (не забываете про стрелку вниз), а конус - в правую панель.

Далее надо присоединить атрибуты Out Translate и Out Rotate слева, соответственно, к атрибутам Translate и Rotate конуса справа.

Конус мгновенно «прыгнет» на поверхность и повернется так, чтобы смотреть по нормали к поверхности своей локальной осью Z.

Дальше, конечно, можно быстро поколдовать с локальными осями, чтобы развернуть конус макушкой по нормали (например, в Attribute Editor задать для конуса Rotate Axis=90 0 0.)

Однако можно использовать более гибкий и функциональный подход.

Отсоедините в Connection Editor атрибуты конуса от ноды follicleShapel.

У нас в сцене «пропадает» целый transform по имени folliclel, который грех не использовать. Глазастые, умы наверное, уже заметили на экране специальную иконку для него.

Выберите folliclel в Outliner и загрузите его в правую панель Connection Editor.

Затем присоедините атрибуты Out Translate и Out Rotate ноды follicleShapel слева, соответственно, к атрибутам Translate и Rotate ноды folliclel справа.

Теперь folliclel, а не конус разворачивается перпендикулярно поверхности. Но зато теперь можно припарентить к folliclel наш конус и потом уже развернуть его, как нам нужно.

Перетащите и бросьте в окне Outliner конус на folliclel средней кнопкой мыши.

Преимущество такого подхода состоит в том, что мы теперь можем дополнительно вращать или смещать конус относительно точки «закрепления» на поверхности. Задайте для конуса rota-teX=90, и он развернется макушкой вдоль нормали к поверхности тора.

Чтобы задать положение конуса на поверхности, надо выбрать folliclel и в Attribute Editor, во второй закладке, установить нужные значения атрибутов Paramete U/V, задающих UV-координаты точки на поверхности. Задайте Parameterl)=ParameterV=0.5, и конус переместится на внешнюю часть тора.

Примечание 1. Как видите, нода follicle работает не только со сплайновыми поверхностями, но и с полигонами. Однако вы должны понимать, что в отличие от сплайнов, полигональные поверхности не всегда имеют хорошие и равномерно распределенные UV-координаты, поэтому вам надо заранее позаботиться о том, чтобы в том месте поверхности, куда вы собираетесь «сажать» ваши объекты, были адекватные значения UV-координат.

Примечание 2. Большое преимущество такого подхода в том, что в разделе Extra Attributes у ноды follicle есть атрибут Map Set Name, позволяющий задать, из какого UV-набора будут использоваться UV-координаты для определения положения точки на поверхности.

Примечание 3. В случае сплайновых поверхностей вместо атрибута outMesh надо присоединять атрибут Local от поверхности к атрибуту Input Surface ноды follicle.


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