Форум CG художников

Уроки => Autodesk Maya => Scripts => Тема начата: Oleg Sadovnichiy от 08 Июля 2013 в 22:48

Название: Ориентация инстансов по нормалям
Отправлено: Oleg Sadovnichiy от 08 Июля 2013 в 22:48
Выкладываю полезный скрипт для тех кто его не знает.
он служит для поворота инстансов относительно нормали поверхности
Вначале нужно создать векторный, пер-партикловый атрибут. Выбрать поверхность относительно которой будут повернуты инстансы и создать closest Point constrain.

vector $p = ваша система частиц.position;
float $x = $p.x;
float $y = $p.y;
float $z = $p.z;
setAttr closestPointOnMesh1.inPosition $x $y $z;
vector $normal = `getAttr closestPointOnMesh1.normal`;
ваша система частиц.векторный, пер-партикловый атрибут = $normal;


То есть если ваша система частиц называеться  particleShape1
и созданный вами атрибут называется aim_dir
то скрипт будет выглядеть так.

vector $p = particleShape1.position;
float $x = $p.x;
float $y = $p.y;
float $z = $p.z;
setAttr closestPointOnMesh1.inPosition $x $y $z;
vector $normal = `getAttr closestPointOnMesh1.normal`;
particleShape1.aim_dir = $normal;

После этого в закладке Instanser в атрибутах частиц, нужно выставить опцию Aim direction в положение созданного вами атрибутта.
Если инстансер стоит вверх ногами или ещё как то создайте ещё один атрибут и укажите ось Y.
Я создам атрибут с названием Up.
Создаём еспрешн для этого атрибута.
particleShape1.Up = <<0.1.0>>;
и выставляем этот атрибут в опции Up axis частиц.
Название: Re: Ориентация инстансов по нормалям
Отправлено: Ruslan от 08 Июля 2013 в 23:31
полезно, спасибо, сам писал?
Название: Re: Ориентация инстансов по нормалям
Отправлено: Oleg Sadovnichiy от 08 Июля 2013 в 23:48
писал не я, даже не знаю кто
TinyPortal 1.6.6 © 2005-2020