Render.ru

Плавный переход на slow motion в Blast Code

Лекс Дарлог (DRL)

Активный участник
Рейтинг
14
#1
Собственно задача - сделать сабж. Т.е. сперва анимация идёт с нормальной скоростью, потом плавно начинает замедляться и, наконец, оставшееся время идёт в slo-mo со скоростью 0.1 (в 10 раз медленнее).
Сколько ни тыкался - не получилось. Вот как я пробовал:
  1. Наиболее очевидное.
    • Создаём Master Control
    • Анимируем у него Blast Time stretch.
    • Получаем ересь. Судя по всему, этот параметр влияет не на скорость воспроизведения, а тупо показывает результат из кадра, полученного по формуле: Blast Time stretch * time.
  2. Второй по очевидности способ.
    • Удаляем входную связь на атрибут Time из ноды time1.
    • Анимируем вручную.
    • Получаем нулевую реакцию. Т.е. как бы мы ни меняли кривую времени - анимация всё равно воспроизводится на постоянной скорости с коэффициентом 1.
  3. Способ извращённый.
    • Создаём дополнительную трансформ-ноду.
    • К ней создаём доп. атрибут Time (float).
    • Выделяем дефолтную ноду времени time1, нажимаем в гипершейде "отобразить все связи".
    • Вручную переконнекчиваем выход с созданного атрибута времени на входы всех нод, которые были приконнекчены к time1.
    • Анимируем этот атрибут.
    • Получаем нулевую реакцию другого рода - объект перестал разрушаться. Вообще.
  4. Способ маниакальный.
    • Выставляем Blast Time Stretch в 0.1 для всей анимации.
    • Идём вешаться - т.к. рендер через МР с ГИ, ФГ и АО при высоких параметрах сэмплинга (особенности геометрии), и отрендерить пассами не получится (тени от рушащегося объекта падают на окружение со сложной геометрией).
Честно говоря, я в недоумении: как-то не верится, что до сих пор нет адекватного метода решения такой элементарной задачи. Ощущение, что просто я чего-то недопонимаю.
Blast Code - 1.6; Maya - 2008 x32.
 

Лекс Дарлог (DRL)

Активный участник
Рейтинг
14
#2
5. Способ извращённый №2.
  • Снова создаём дополнительную трансформ-ноду.
  • Снова создаём доп. атрибут Time (float).
  • Создаём экспрешн: MasterControl.BlastTimeStretch = НашаНода.Time / frame;
  • Анимируем атрибут Time.
  • Получаем ересь №2: если мотать кадры вручную, желанный эффект достигнут - но при проигрывании анимации всё равно имеем постоянную скорость с коэффициентом 1.
 
Сверху