Подскажите как сделать луп анимаци допустим идущих ног. Так чтоб конечная точка движения служила началом для нового цикла. С бипедом всё просто...а вот с обычными объектами немогу разобраться. Заранее спасибо!
Выбираеш нужные объекты и нужные ключи. Идеш в Редактор Кривых (Curve Editor) там выбираеш экстраполяцию ( Cicle-of-range по-моему)
это где-то в главном меню. Там есть гарффики показывающие виды повтора выбранных ключей. Выбираеш нужный. Глядя на них несложно понять какой. Нычало цикла должно совпадать по ключам с концом, правда не для всех случаев (например цикл пинг-понг). Подробней почитай литературу по максу.
Задача такой простой и нужный, а решение так трудно найти...
Но думаю тебя могут помочь в разделе "MAXSCRIPT".
Я навичок низкой степени и этот скрипт написать пока не смогу, но это помоему не сложно сделать:
Выделяются объекты, потом для каждого объекта в выделении на каждом фреиме с помощью циклами надо выяснить, есть ли там анимационный ключ, и скопировать его на "X" количество фреимов в перед.
animate on (
for o in selection do (
for t = MyStartFrame to MyLastFrame do (
at time (t - MyLoopTime) NewPosition = o.pos
at time (t - MyLoopTime) NewRotationX = o.rotation.controller.x_rotation
at time (t - MyLoopTime) NewRotationY = o.rotation.controller.y_rotation
at time (t - MyLoopTime) NewRotationZ = o.rotation.controller.z_rotation
at time t o.pos = NewPosition
at time t o.rotation.controller.x_rotation = NewRotationX
at time t o.rotation.controller.y_rotation = NewRotationY
at time t o.rotation.controller.z_rotation = NewRotationZ
)
)
)
Только: этот скрипт не спрашивает есть ли у данного объекта на данном фрейме ключ (это пока не могу сделать) и вставляет подряд на всех фреймов свои ключи, для всех объектов.
Но если все так и решил попробовать: Копируешь этот скрипт, выделяешь всех объектов в программе, потом идешь MAXScript -> New Script - > и Paste.
MyLoopTime - напиши число, сколько длиться твой цикл.
MyLastFrame - для сколько кадров ты хочешь сделать анимацию.
Потом: Tools -> Evaluate All.
П.С. Если кто-нибудь сможет исправьте скрипт, чтобы он мог определить которые ключевые кадры и не наполнял все фреими ключами.
это я понял🙂 я имею в виду, что за всеми параметрами не угонишься, и автоматизировать тут нечего, благо встроенные средства макса в этом случае и так нормально работают.
Кстати, того, что просит автор, ваш скрипт не делает. Ему нужен цикл анимации со смещением.
Доступ к резюме доступен только по пакетному доступу HR менеджерам зарегистрированных компаний. Узнать о вариантах корпоративных пакетов можно по ссылке.
DDDimaXXX
Виталий Мартынов
это где-то в главном меню. Там есть гарффики показывающие виды повтора выбранных ключей. Выбираеш нужный. Глядя на них несложно понять какой. Нычало цикла должно совпадать по ключам с концом, правда не для всех случаев (например цикл пинг-понг). Подробней почитай литературу по максу.
DDDimaXXX
IrakliSpain
Но думаю тебя могут помочь в разделе "MAXSCRIPT".
Я навичок низкой степени и этот скрипт написать пока не смогу, но это помоему не сложно сделать:
Выделяются объекты, потом для каждого объекта в выделении на каждом фреиме с помощью циклами надо выяснить, есть ли там анимационный ключ, и скопировать его на "X" количество фреимов в перед.
IrakliSpain
Вот тебе твой скрипт:
MyLoopTime = 10
MyLastFrame = 100
MyStartFrame = MyLoopTime + 1
animate on (
for o in selection do (
for t = MyStartFrame to MyLastFrame do (
at time (t - MyLoopTime) NewPosition = o.pos
at time (t - MyLoopTime) NewRotationX = o.rotation.controller.x_rotation
at time (t - MyLoopTime) NewRotationY = o.rotation.controller.y_rotation
at time (t - MyLoopTime) NewRotationZ = o.rotation.controller.z_rotation
at time t o.pos = NewPosition
at time t o.rotation.controller.x_rotation = NewRotationX
at time t o.rotation.controller.y_rotation = NewRotationY
at time t o.rotation.controller.z_rotation = NewRotationZ
)
)
)
Только: этот скрипт не спрашивает есть ли у данного объекта на данном фрейме ключ (это пока не могу сделать) и вставляет подряд на всех фреймов свои ключи, для всех объектов.
Но если все так и решил попробовать: Копируешь этот скрипт, выделяешь всех объектов в программе, потом идешь MAXScript -> New Script - > и Paste.
MyLoopTime - напиши число, сколько длиться твой цикл.
MyLastFrame - для сколько кадров ты хочешь сделать анимацию.
Потом: Tools -> Evaluate All.
П.С. Если кто-нибудь сможет исправьте скрипт, чтобы он мог определить которые ключевые кадры и не наполнял все фреими ключами.
Chebu
так разберитесь, что и почему разлетается.
если уж никак не получается с out of range, анимируйте на месте, копируйте ключи, затем подгоняйте скорость.
IrakliSpain
Что если анимированы не только позиция и вращение?
IrakliSpain
Но если будет нужно, можно и добавить другие свойство
Chebu
это я понял🙂 я имею в виду, что за всеми параметрами не угонишься, и автоматизировать тут нечего, благо встроенные средства макса в этом случае и так нормально работают.
Кстати, того, что просит автор, ваш скрипт не делает. Ему нужен цикл анимации со смещением.
DDDimaXXX
DDDimaXXX
Chebu
проще - скриптами, если нужно - обращайтесь.
Но в любом случае, ключи на каждом кадре.
Андрей Омельченко
Chebu
Андрей Омельченко