Блин...Что-то не то с кодом, не работает... Может кто-нибудь, если не трудно, посмотреть что не так?
Смысл в том чтобы согнуть ленту по сплайну, но при этом не использовать параметр follow, так как при некоторых изгибах сплайна поворот звеньев ведет себя неадекватно. Первое звено ленты выходит из минигана под одним углом, а входит в ящик под углом 90 гр. (по локальной оси z) Для этого сделана первая часть кода(первый цикл), второй цикл должен назначить контроллер LookAt на звено, а как цель выбрать следующее и т.д.
ang = 1.125 --угол поворота для каждого звена
per = 0
for i = 1 to 80 do
(
per+=1.2
copy $
$.pos.controller.percent = per --положение нового звена
in coordsys local rotate $ (angleaxis ang [0,0,1]) --вращаем новое звено вдоль локальной оси z
)
max select all --выделяем все
arr = $ as array --заносим выделенное в массив
a = 1
b = arr[a]
c = LookAt_constraint () --создаем контроллер LookAt
clearSelection ()
for i in arr do
(
a+=1
c.appendTarget b 1.0 --добавляем цель к lookAt
i.rotation.controller = c --назначаем ранее созданный контроллер текущему звену
i.rotation.controller.StoUP_axis = 1
i.rotation.controller.upnode_world = off
i.rotation.controller.getUpNode = b
)
Смысл в том чтобы согнуть ленту по сплайну, но при этом не использовать параметр follow, так как при некоторых изгибах сплайна поворот звеньев ведет себя неадекватно. Первое звено ленты выходит из минигана под одним углом, а входит в ящик под углом 90 гр. (по локальной оси z) Для этого сделана первая часть кода(первый цикл), второй цикл должен назначить контроллер LookAt на звено, а как цель выбрать следующее и т.д.
ang = 1.125 --угол поворота для каждого звена
per = 0
for i = 1 to 80 do
(
per+=1.2
copy $
$.pos.controller.percent = per --положение нового звена
in coordsys local rotate $ (angleaxis ang [0,0,1]) --вращаем новое звено вдоль локальной оси z
)
max select all --выделяем все
arr = $ as array --заносим выделенное в массив
a = 1
b = arr[a]
c = LookAt_constraint () --создаем контроллер LookAt
clearSelection ()
for i in arr do
(
a+=1
c.appendTarget b 1.0 --добавляем цель к lookAt
i.rotation.controller = c --назначаем ранее созданный контроллер текущему звену
i.rotation.controller.StoUP_axis = 1
i.rotation.controller.upnode_world = off
i.rotation.controller.getUpNode = b
)