Сначала соедините атрибут 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.