1. Пользоваться форумом на планшетах и телефонах стало удобнее благодаря Tapatalk

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

Тема в разделе "Maya", создана пользователем -, 24 апр 2001.

Модераторы: Dark™, Skif
  1. Guest

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

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

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

    Лео
     
  2. Guest

    Привет , Лео

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

    Алексей Гусев
     
  3. Guest

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

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

    Владимир, спасибо за ответ

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

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

    Лео
     
  5. Guest

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

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

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

    Лео
     
  6. Guest

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

    Согласен, это действительно самое простое и эффективное решение.
     
Модераторы: Dark™, Skif

Поделиться этой страницей