Render.ru

Циклическая анимация

#1
С помощью path animation я сделал так, что некий объект с 0-ого по 48-ой кадр движется вдоль кривой, лежащей в плоскости X-Y.

Если бы не path animation, то, задав Curves/Post Infinity/Cycle для Y и Cycle with offset для X, я мог бы заставить этот объект циклически двигаться, преремещаясь по горизонтали.

А как сделать то же самое в случае path animation? Понятно, что можно сделать 48 ключей и "зациклить" их. Но тогда пропадает возможность редактировать как кривую, так и положение объекта на ней.

Лео
 
#2
Привет , Лео

А какая разница, какую анимацию циклить -
ведь у анимации по пути тоже есть ключи в треке
motionPath1 \ uValue.
вот его и циклить...
Или тебе нужно чтобы объект летел после 48 кадра уже не по пути?

Алексей Гусев
 
#3
Лео, хороший вопрос!
Один из вариантов - написания экспрешенсов.
1. Для кадра больше 48 определяем $t- его остаток оn деления на 48.
2.если мне не изменяет память. то у функции getAttr можно задать параметр -time - время, в котором запрашивается значение атрибута. Получаем значения положений и поворотов в $t...
3.Вычисляем новые значения объекта....и. т. д.

Кстати, а кто тебе мешает продолжиь твой путь - отдублировать кривую и наростить ее столько раз, сколько тебе нужно?
 
#4
Владимир, спасибо за ответ

Наверное самым простым будет решение с помощью экспрешенов. Надо будет попробывать (Интернет у меня в конторе, а Мауа дома).

Если же копировать кривую, то чтобы все звенья "хвоста" были такими же как "голова", надо либо экспрешенами связывать контрольные вершины новых сегментов с их прообразами, либо после изменения "головы" пересобирать весь "хвост".

Лео
 
#5
Все-таки проще наделать нужное количество инстансов первого кусочка кривой и нанизать на результат объект. Тогда и гибкость сохраняется, и задача решается.

Дело в том, что, если использовать экспрешены, то надо создавать копию объекта, так как иначе на прокееные атрибуты экспрешн садится отказывается.

Интересно, что хотя в документации по getAttr дословно говорится:
"-t/-time <time> (C) Evaluate the attribute at the given time instead of the current time", в экспрешене надо задавать frame, а не time. Игра слов, однако.

Лео
 
#6
В общем, ты сам во всем разобрался, но есть еще один безумно простой путь - проанимировать положение самого пути. Типа в 48 (или там в 49) кадре передвинуть путь так, чтобы "начало" попало в "хвост".Кривая для пути будет stepped...Ее можно сделать "цикл со сдвигом". Вообщем, все должно работать...
 
#7
Согласен, это действительно самое простое и эффективное решение.
 
Сверху