=(160.0/100.0)*time1 .outTime; Это создаст простой expression, пересчитывающий и ускоряющий локальное время “решателя” в 160/100=1.6 раз.

Теперь вся сцена с кубиком длится ровно желаемые 100 кадров, причем мы полностью сохранили контроль над всеми управляющими параметрами и при необходимости можем её легко модифицировать.

Примечание. В данном случае анимация начиналась с нулевого кадра и в атрибутах «решателя» значение Start Time также равно нулю. Это важно, так как в первом (а не в нулевом кадре) атрибут currentTime примет значение 1.6. Если бы все действия были проделаны с кадром номер 1 в качестве начального, то при возвращении в этот начальный кадр динамическая система бы не возвращалась в свое начальное положение. Использование нулевого кадра в качестве начального для динамики и анимации решает эту проблему.

Примечание. Подергивания объектов после падения можно «заморозить», просто анимировав атрибут active, то есть превратив после некоторого кадра все кубики в пассивные твердые тела.

Замораживание частиц - остановка динамического времени Чтобы сделать эффект типа «как в матрице», когда все объекты застывают на местах, а продолжает двигаться только камера, можно просто расставить необходимые ключи на объектах и камере. Однако на движение частиц ключи поставить нельзя, поэтому опять придется поработать с локальным временем частиц. Оно является их собственным атрибутом, поэтому у каждой системы частиц может быть свой темп выполнения динамики.

Откройте файл fountain.та и сделайте анимацию камеры с сотого по двухсотый кадр. Если вам лень, откройте файл scaleParticleDynamicsStart.ma.

Задача состоит в том, чтобы частицы замирали в момент движения камеры и снова начинали двигаться после двухсотого кадра. Идея анимировать conserve от нуля до единицы не очень хороша, так как частицы просто безвольно упадут вниз после обнуления скорости. Будем дейтвовать радикально поставим ключи на собственное локальное время частиц (не путать с временем жизни).

Выберите частицы, а в Attribute Editor разыщите атрибут currentTime.

Он имеет связь с глобальным временем timel .outTime, которую необходимо немедленно разорвать (Break Connection).

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

Встаньте в первый кадр, задайте currentTime=1 и поставьте ключ на этот атрибут. Перейдите с сотый кадр и установите currentTime=100 и снова поставьте ключ.

Частицы начнут «жить» только на этом интервале времени.

Встаньте в двухсотый кадр и опять задайте currentTime=100 и не забудьте поставить ключ.

Теперь время частиц отстает от глобального времени на сто кадров.

Перейдите в пятисотый кадр и установите currentTime=400. Это почти все, что требовалось сделать. Если частицы немного ускоряются или тормозятся после «разморозки», необходимо посмотреть на вид анимационной кривой для частиц в Graph Editor и при необходимости исправить все ключи в тип Linear.


⇐ вернуться назад | | далее ⇒