Я работал над фильмом Marvel. Как делаются сложные эффекты
Расскажу пошагово и понятным языком, как быстро создать сложный эффект для кино и что для этого нужно.
Кто я и чем занимаюсь? Я работаю в крупной зарубежной студии визуальных эффектов в отделе FX. Наш отдел занимается созданием того, что трудно сделать на этапе анимации, например: торнадо, разрушение дома, водопады, огонь, песчаную бурю, взрыв и так далее.
Задачи вполне себе интересные и почти каждая из них, ввиду контекста, уникальна. Сейчас расскажу про одну из таких задач, которая поступила мне во время производства Человека Муравья: Квантомания.
В моей сцене падает корабль и мне нужно сделать стену поднимающейся пыли от столкновения с землей. Вот что получится по итогу:
Мультивселенная Марвел зашла слишком далеко. (корабль и окружение были изменены мной, чтобы можно было показать)
Как делаются подобные эффекты
Что у нас есть? Анимация корабля и земля. Ок. Открываем Houdini (3д пакет), подгружаем геометрию корабля и смотрим в каком кадре произойдет первый контакт с землей. Для нас это, допустим, 64ый кадр.
Красим корабль хитрой краской, запускаем симуляцию (не спрашивай) с 64ого кадра и говорим чтобы он оставлял след от краски на земле везде, где проедет. Ок, но в чем хитрость и почему мы красим землю, мы попали в армию? Почти. Щас чуть-чуть колдовства. Прикол в том, что наша краска оставляет на земле номера кадров, в котором происходит каждый контакт с кораблём. И если раскрасить эти номера в рандомные цвета, то вот как это выглядит:
Каждая полоска - это номер кадра (от 64 и до 130)
Допустим, зелёная полоска - это участок земли, в котором происходит контакт корабля в 67ом кадре, следующая полоска - в 68ом кадре, следующая - в 69 (¬¬ ) и тд.
Нахуя, а главное зачем? Всё очень просто, теперь на земле есть чёткие места где и в каком кадре корабль контактирует с ней, нам это нужно чтобы приготовить...
Источника дыма
1 порция, время: 5-10 минут, Ккал на 100г: ~170.
Ингредиенты:
Земля: 1 шт.
Объекты, которые могут повлиять на источник: по необходимости (у нас 1 корабль)
Ветер: по вкусу, но мы добавим
Гравитация: ~9,78 м/с
Точки: доху...
Способ приготовления:
Как мы помним, у нас была земля с номерами кадров каждого контакта, да? Берем и превращаем полигональную землю в 1 млн точек и оставляем только те, с которыми происходит контакт:
места косания корабля для каждого кадра по-очерёдно
Всем этим точкам указываем направление, куда им надо лететь (от корабля) , но с небольшим рандомом, шоб было покрасивше.
точки лежат на земле. синие полосы - направление движения.
Достаем солвер (кастрюля для приготовления, ака штука которая делает симуляции) , скидываем туда все точки, землю, корабль, там создаем гравитацию и добавляем ветер (шоб было покрасивше х2).
Варить в районе 20 минут в зависимости от цп (центральный процессор, а не то что ты подумал). Смотрим что получилось:
Убираем с плиты и начинаем сервировку:
В кастрюле у нас сварилось в районе 30 млн точек. Таким количеством можно накормить роту солдат, но нам такие запасы ни к чему. По этому удаляем все точки, которые уже не двигаются + те, которые не увидит камера. Получаем 5 млн.
Теперь преобразуем все точки в нужный формат - воксели (объемные пиксели), сохраняем на диск и подаём на стол. Приятного аппетита. Надеюсь все гости будут сыты, а хозяйка довольна.
Итак, половина дела сделана, теперь одна из самых узнаваемых частей процесса...
Симуляция
Внимательный читатель мог заметить, что мы уже симулили до этого, разве этого мало?
Вся наша жизнь — симуляция, скажи спасибо что не на шаре живем.
Самое сложное в симуляции, это сделать так, чтобы движение было естественным. И с этим возникает куча проблем. Открою секрет, который знают далеко не все кто даже работает в гудини — насколько бы он не казался точным и физически корректным, это в первую очередь софт для художников, а не инженеров. В нем очень много фейковых моментов для того, чтобы просчет не занимал недели. По этому, чтобы добиться правдоподобного результата — нужно художественное видение, примерное понимание как двигается воздух на разных масштабах, какое движение для чего характерно, а какого быть не может и всё такое. И чтобы точно не провтыкать эти моменты — существуют...
Референсы
Они помогают супервайзеру и тебе понять каким будет эффект. Он не обязательно должен быть точь в точь таким как в жизни (+ такой реф со всеми условиями найти трудно), это кино - художественное произведение, в котором работает одно правило - должно быть красиво. Однако я сторонник того, чтобы соблюдался примерный масштаб и какая никакая физ. корректность (если не говорить о магии). Размер деталей и скорость движения - главные аспекты которые помогают понять что происходит на экране, и пренебрегать ими в угоду чего-то другого - идея не лучшая. Разумеется хочется чтобы все эффекты выглядели физически корректными, но это нормально, если что-то утрируют в угоду зрелищности, тут главное найти баланс. Я в своём эффекте старался опираться на такую структуру:
Стоит заметить, что мне нужна структура - то, какую форму приобретает этот дым, - похожая на цветную капусту. Размер здания (длина) приблизительно совпадает с размерами корабля, и первоначальный выброс пыли, до полного обрушения, вполне подходит под наш масштаб.
Реф выбран, лямка завязана, пошёл делать. В общем набор будет такой же: пихаем в солвер корабль, землю, сохраненный уже на диске источник дыма (который с вокселями) и создаем внутри гравитацию и ветер:
после подключение тройцы нод - я захожу вовнутрь солвера и добавляю ветер там
Делаем в районе 10-20 итераций подбирая нужные параметры и получаем финальный результат:
Некоторым может показаться, что справа пыль "отпрыгивает", но это не так. Оригинальная модель корабля, как я сказал, была другой и в том участке был дополнительный удар части корабля, так что это новый выброс, а не "отскок" пыли от земли.
Сама пыль готова, остаётся добавить куски земли, вылетающих камней и отправить это всё дело в рендер (другой отдел). Там это всё правильно осветят и после этого следующий отдел попытается это всё грамотно склеить с другими составляющими + съёмочным материалом. Результат может получится как хороший, так и плохой. На это уже влияют даже не технический опыт художников, а кое-что другое. Если интересно узнать от чего зависит графика в кино, то об этом я подробно расписал в своей телеге. Так же я делал графику для Дома Дракона, но об этом уже есть целый видос, где я так же простым языком объясняю как сделать взрыв:
Всем спасибо за внимание <3