Констрейнт слежения Track To на Geometry Nodes

Для того чтобы привязать направление “взгляда” одного объекта к другому объекту, в Blender обычно используется ограничитель Track to Constraint. Однако при необходимости можно собрать такой же ограничитель слежения с использованием Geometry Nodes.

Добавим в сцену куб (shift + a – Mesh – Cube). Добавим в сцену Сюзанну (shift + a – Mesh – Monkey). Настроим Сюзанну при помощи Geometry Nodes так, чтобы она всегда смотрела на куб.

Добавим модификатор Geometry Nodes и инициируем начальное дерево нод нажатием на кнопку New.

Для начала нам нужно получить вектор, который смотрит из точки ориджин Сюзанны в точку ориджин куба.

Для того чтобы получить вектор из начала координат в точку ориджин Сюзанны, добавим нод Object Info (shift + a – Input – Scene – Object Info).

Чтобы получать данные по текущему объекту (Сюзанне), добавим нод Self Object (shift + a – Input – Scene – Self Object) и соединим его выход Self Object со входом Object нода Object Info.

Теперь с выхода Location нода Object Info мы получим вектор из начала координат в точку ориджин Сюзанны.

Добавим еще один нод Object Info (shift + a – Input – Scene – Object Info) и в его поле Object выберем объект Cube. С выхода Location этого нода теперь мы можем получить вектор из начала координат в точку ориджин куба.

Теперь, если мы вычтем один полученный вектор из другого мы получим вектор из ориджин Сюзанны в ориджин куба.

Добавим нод Vector Math (shift + a – Utilities – Vector – Vector Math) и переключим его в режим вычитания Subtract. Слинкуем выходы Location нодов Object Info и входы Vector нода Vector Math.

Для того чтобы повернуть направление взгляда Сюзанны вдоль полученного в результате вычитания вектора добавим нод Align Euler to Vector (shift + a – Utilities – Rotation – Align Euler to Vector). На его вход Rotation подадим вектор текущего поворота Сюзанны, который мы можем взять с выхода Rotation нода Object Info (для Сюзанны). Вектор вдоль которого нужно повернуть Сюзанну подадим на вход Vector.

Теперь у нас есть формула поворота Сюзанны, осталось применить ее к самому объекту.

Превратим меш Сюзанны в инстанс для упрощения расчетов. Для этого добавим в основную ветку нодового дерева нод Geometry to Instance (shift + a – Geometry – Geometry to Instance).

Для поворота инстанса удобно использовать нод Rotate Instances. Добавим его (shift + a – Instances – Rotate Instances) в основную ветку нодового дерева следом за нодом  Geometry to Instances.

И применим наконец рассчитанный поворот соединив выход Rotation нода Align Euler to Vector со входом Rotation нода Rotate Instance.

Так как нам нужно чтобы Сюзанна смотрела на куб “лицом” т.е. чтобы на куб была нацелена ось Y объекта, переключим оси нода Align Euler to Vector в режим Y.

Теперь куда бы мы не переместили Сюзанну или куб, Сюзанна всегда будет смотреть на куб.

0 0 голоса
Article Rating
Подписаться
Уведомить о
guest

0 Комментарий
Межтекстовые Отзывы
Посмотреть все комментарии