Render.ru

Align hierarhy (skeleton)

kidult®

Знаток
Рейтинг
23
#1
условие: Есть анимированный, готовый скелет и ,созданная на его основе, иерархия из др объектов (к примеру боксы или дамики).
задача: выравнивание костей(боксов или дамиков:)) нового скелета на основе уже имеющейся иерархии. Своего рода "Set Pose"(понравилась поза, кликнул на кнопке, новый скелет принял такое же положение что и готовый референс). Плавность перехода анимации между позами обязательна.
 

kidult®

Знаток
Рейтинг
23
#2
наиболее удачный вариант, к которому я пришёл, но только для костей не подчинённых . как только на кости весит контроллер то позиция едет...

Код:
in coordsys parent b[id].rotation = (in coordsys parent a[id].rotation)
in coordsys parent b[id].position = (in coordsys parent a[id].position)
где А - готовый масcив
B - массив , который нужно выровнять
Расположение элементов в массивах одинаковое.
 

kidult®

Знаток
Рейтинг
23
#3
Ещё вопрос!
Как определить , в скольких процентах по кривой находится её узел (точка)?
 

igorznag

Мастер
Рейтинг
103
#4
Как определить , в скольких процентах по кривой находится её узел (точка)?
Пример: Создаем новую сцену.
Создаем один объект Circle и конвертируем его в Editable Spline.
Выделяем одну вершину-узел-точка сплайна-кривой.
Запускаем скрипт. В новом окне нажимаем кнопку Get Percent.
Код:
rollout test "Get Percent"
(
button btn_get_percent "Get Percent" width:140 pos:[5,5]
on btn_get_percent pressed do
(
if(classof $==SplineShape or classof $==Line)then
(
if(numSplines $==1)then
(
ks_a=getKnotSelection $ 1
if(ks_a.count==1)then
(
kp=getKnotPoint $ 1 ks_a[1]
pp=nearestPathParam $ 1 kp
perc=pathToLengthParam $ 1 pp
btn_get_percent.text=((100.0*perc)as string)+" %" 
)--if(ks_a.count==1)then
)--if(numSplines $==1)then
)--if(classof $==SplineShape or classof $==Line)then
)--on btn_get_percent pressed do
); createdialog test 150 30
 
Сверху