Render.ru

Как раздублировать объект в вертексы плоскости, или в CV нурбс поверхности?

саша иванов 131713

Активный участник
Рейтинг
5
#1
Есть шар полигональный, или нурбс, не так важно. Нужно его раздублировать и закрепить на вертексах плоскости, или на нурбс поверхности, для последующей анимации поверхности к которой "привязаны" шарики,?


Заранее спасибо
 

Strahovid

Активный участник
Рейтинг
11
#2
Я так понял, необходима привязка к компонентам? Вот, например, если работать с поли:
1. выделить Вертекс на модели (плоскости)
2. с зажатым шифт выделить сферу
3. затем F2(Animation)>Constraint>Point on Poly
Получится что-то вроде парента, только не ко всему мешу, а только к определённой компоненте, вертексу то есть.
 

саша иванов 131713

Активный участник
Рейтинг
5
#3
Я решил задачу написанием скрипта.
У меня 14 кривых я им сделал rebuild curve до 50, чтобы плотность шариков была достаточной, т.к. привязывает к точкам кривой.
Имеем curve1...curve14
и полигональный шарик anim c настроенной анимацией вырастания скейла с 0 до 1

int $n=1;
int $tm;
int $k;
for ($k=1; $k<=11; $k+=1)
{
int $t= `getAttr ("curveShape"+$n+".spans")`;
string $name = ("spher"+$n+"_");
int $b=1;
for ($tm=0; $tm<=$t; $tm+=1)
{
select -r anim ;
print ($n+"_");
duplicate -rr -un -n ($name+$b);
connectAttr -f ("curveShape"+$n+".ep["+$tm+"]") ($name+$b+".translate");
$b+=1;
}
$n+=1;
};


Дальше была задача анимировать последовательное вырастание шариков из начала кривой.
На каждой кривой брался шарик и двигались ключи анимации на 1 (можно задать формулу) кадр
вот скрипт анимации

int $n=1;
int $tm;
int $k;
int $r=1;
for ($k=1; $k<=11; $k+=1)
{
int $t= `getAttr ("curveShape"+$n+".spans")`;
string $name = ("spher"+$n+"_");
int $b=1;
for ($tm=0; $tm<=$t; $tm+=1)
{
select -r ($name+$b);
currentTime 1 ;
currentTime 8 ;
keyframe -e -iub false -an objects -t "1:1000" -r -o over -tc ($b/2) ("spher113_1_scaleX"+($r+1)) ("spher113_1_scaleY"+($r+1)) ("spher113_1_scaleZ"+($r+1));
$b+=1;
$r+=1;
}
$n+=1;
};
 
Сверху