Как сделать бесшовную анимацию снега: на примере изометрической 3D-сценки в Blender
3D-художник Аарон ван де Вейенберг дает пошаговый урок создания бесшовной анимации падающего снега.
Аарон ван де Вейенберг — американский 3D-художник, специализирующийся на создании изометрических диорам. Одна из его последних работ — уютная лесная хижина в снежную ночь. Он поделился пайплайном создания плавной анимации падающего снега. Процесс состоит из трех основных шагов:
- блокинг основных объектов и анимация снегопада;
- добавление реалистичности с помощью настроек Force Fields;
- настройка цикличности для бесшовной анимации снежинок.
Но обо всем по порядку.
Блокинг основ
Первым делом Аарон сделал три простых основы. Первая — плоский куб, на который будет падать снег. Как только первый объект создан, художник установил изометрический вид с помощью аддона Isocam.
Я всегда устанавливаю нужный мне вид заранее, чтобы понимать, как объекты взаимодействуют друг с другом с нужного мне ракурса.
Затем художник создал имитацию облака, из которого будет идти снег. Этот объект не попадает в поле зрение камеры, он расположен выше.
Третий объект — снежинка: простой цилиндр со скругленными гранями.
Совет:
Очень важно задать уникальные имена всем объектам, которые вы создаете. Это не только не дает запутаться при большом количестве элементов, но и сокращает время при создании анимации. Аарон назвал объекты в сцене просто: Cloud, Ground, Snow.
Анимация снегопада
Для этого художник использует меню Particle System Panel. Он выделяет испускающую поверхность — имитацию облака — и создает новый элемент “snow 1”.
Первичный вариант анимации готов, теперь ее нужно дорабатывать.
Обратите внимание на меню Velocity, а именно — значение пункта Normal. Normal — это перпендикуляр к нашей поверхности. Все, что выше, положительное значение, ниже — отрицательное.
По дефолту стоит 1 м/сек, поэтому снежинки как будто выпрыгивают из основы и падают вниз. Аарон меняет значение на -2. Теперь снежинки падают точно вниз.
Следующая проблема — скорость. В реальной жизни снег не падает настолько быстро.
Сейчас анимация больше похожа на дождь. Есть несколько способов снизить скорость снежинок. Одна из них — добавить сопротивления. В реальной жизни это воздух, ветер. Давайте добавим немного ветра.
Для этого в параметре Force Field художник выбирает Wind. На вьюпорте появилось гизмо, указывающее направление ветра — против движения снега. В настройке Strength [сила] Аррон установил значение 7,5.
Снежинки замедлились, но появилась новая проблема: из-за низкой скорости они не успевают долететь до земли в рамках анимации.
Чтобы исправить это, Аарон увеличил продолжительность анимации до 6 секунд — 180 кадров. Но этого недостаточно, так как «продолжительности жизни» самих снежинок не хватает до конца анимации. В блоке Emission меню Particle System он увеличил значение Lifetime [продолжительности жизни] и End [конец] до 180 кадра. Теперь снежинкам хватает времени долететь до поверхности земли в нужный промежуток времени.
Форма снежинок
После того, как Аарон настроил динамику снегопада, он занялся непосредственно снежинками. На данном этапе это объекты по умолчанию — сферы. Чтобы подставить под них рендер, который он сделал в самом начале, в блоке Render меню Particle System он изменил значение c Halo на Collection с использованием объекта Snow.
Scale [размер] снежинок — 1. Аарон также включил параметр Scale Randomness, чтобы снежинки были разного размера. Стихийности объектам добавит меню Rotation и параметры Randomize и Dynamic.
Теперь каждая снежинка и снегопад в целом выглядят реалистично.
Но в реальной жизни снег никогда не падает ровно сверху вниз, поэтому последним штрихом Аарон добавил хаотичности с помощью второго Force Field — Turbulence.
В настройках эффекта художник увеличил параметр Field до четырех, за счет чего каждая снежинка закручивается по спирали и пересекает путь всех остальных. Вот как это выглядит.
Настройка цикличности
Обычно анимацию легко зациклить: вы просто заканчиваете и начинаете ее в одном и том же месте, чтобы шов не был заметен. Но в нашем случае это невозможно. В первом фрейме нет ничего, в последнем мы видим множество движущихся частиц. Нам нужно начать анимацию с кадра, где уже много частиц и закончить ее этим же фреймом.
Первым шагом Аарон увеличил количество кадров в два раза: до 360. Но жизненный цикл снежинок все еще 180 кадров. На скрине ниже видно, что со 181 кадра возникает пустое пространство, которое нужно заполнить.
Для этого Аарон продублировал существующую Particle System. Теперь их две: Snow 1 и Snow 2.
Обратите внимание, что сейчас обе эти системы привязаны к одному эмиттеру, Snow 1. Поэтому я дублирую его и даю другое название — Snow 2. Если этого не сделать, все изменения будут происходить с первой системой тоже, и сделать бесшовную анимацию не получится.
У второго эмиттера Аарон изменил параметры Frame Start [Начало] и End [конец]. Он должен начинаться со 181 кадра и заканчиваться на 360.
Теперь после окончания действия первой Particle System сразу начнется вторая, и зритель не увидит склейки.
Чтобы зациклить именно этот момент, Аарон использовал The preview range [иконку часиков в панели инструментов Timeline]. Он выставил нужный промежуток: start — 181, end — 360.
Ненужные кадры Blender заблокировал, и теперь воспроизводит только тот отрезок, который указал художник. Бесшовная анимация готова.
Последняя рекомендация автора
Единственная функция, которую я не рекомендую использовать, это настройка Noise Amount в любом из выбранных Force Fields. Это интересная функция, дающая больше стихийного хаоса в анимацию. Но я почти гарантирую, что из-за дополнительного шума последний кадр будет отличаться от первого. Это серьезно усложнит задачу сделать качественную бесшовную анимацию.