Все эффекты «Сталинграда»: компьютерная графика в фильме Федора Бондарчука

VFX в кино /

undefined


В октябре на наши экраны вышла картина Федора Бондарчука “Сталинград”, о которой говорили два долгих года, и зрители наконец смогли оценить работу команды кинематографистов: не только режиссера и актеров, но и потрясающую работу оператора Максима Осадчего,  невероятный труд художника-постановщика Сергея Иванова и, конечно, монументальные усилия VFX художников.   


Компьютерную графику для фильма делали в студии Main Road|Post под руководством супервайзера визуальных эффектов Армана Яхина.


Для моделирования использовался пакет Maya, для  анимации, шейдинга, сборки сцен и рендеринга – Houdini, все текстуры создавались в MARI, а для композитинга использовался Nuke. Всего для фильма было сделано 230 шотов с визуальными эффектами, многие из них были весьма продолжительными. В сумме они занимают около 30 минут экранного времени.


Начало

Main Road|Post начали работать над проектом в 2009 году, когда появилась первая версия сценария картины. В работу включились концепт-художники, разработав настроенческие эскизы, позволяющие понять атмосферу и стилистическое решение ряда сцен. Спустя два года, в 2011-м проект был запущен в производство.


На этапе препродакшена было проведено множество тестов, в том числе – в стерео. Сразу стало понятно, что многие сцены фильма, будут сильно полагаться на компьютерную графику.



Эскизы к фильму


Перед тем, как приступить к работе над визуальными эффектами, несколько художников  студии съездили на экскурсию в Волгоград, прежде всего – в музей Сталинградской битвы. Там для референсов была отснята миниатюра города, особенно – место, где стоял дом Павлова, чтобы корректно воссоздать архитектурный стиль, особенности застройки и характер местности для общих планов города и видов из окон.


При этом стоит отметить, что площадь, на которой разворачивается основное действие картины, изначально задумывалась как компиляция многих знаковых мест военного Сталинграда.


Действие первой сцены фильма разворачивается  в Японии. Для нее было сделано несколько полностью компьютерных шотов, кроме того, в кадрах, показывающих лежащих под обломками здания людей, нужно было достроить окружающую среду. Дело в том, что риг камеры был довольно большой, его нельзя было просунуть в то ограниченное пространство, где по сюжету должны были находиться герои. Поэтому на съемках делались частичные декорации, а остальное дорисовывалось.  


undefined


Full-CG шот из сцены «Япония»


Концепты для full-CG шотов с прибытием самолета МЧС были разработаны первыми. Открывающий сцену шот, в котором самолет летит на нас, занял достаточно много времени. По задумке режиссера  самолет появляется на фоне огромного красного солнца, похожего на флаг Японии. Снизу кадр обрамляют кучевые облака. Поскольку фильм делался в стерео, воспользоваться фотографиями из стоков было нельзя, нужно делать свои собственные цифровые облака, иначе в стерео они были бы плоскими плашками. Работа над шотом началась с момента запуска фильма, однако каждый раз, когда к нему возвращались, что-то в нем не до конца удовлетворяло команду. Облака выглядели слишком фантастическими и выдавали свое компьютерное происхождение. Неожиданно Федор Бондарчук предложил вообще отказаться от облаков. Ему был представлен новый концепт с другим цветовым решением. И когда облака из кадра исчезли, все стало замечательно.


Берег левый, берег правый

Следующая сцена фильма, в которой красноармейцы в предрассветных сумерках переправляются на другой берег в горящее пекло Сталинграда, потребовала очень тщательной работы с цветом. Дело в том, что съемки этих сцен проходили в дневное время, в расчете на последующую перекраску «под ночь» на постпродакшене. Но неожиданно Санкт-Петербург, где проходили съемки, и на чью пасмурную погоду делалась ставка, встретил съемочную группу ярким летним солнцем. Поэтому часть кадров пришлось снимать при прямом дневном освещении.


undefined



Кадры из сцены «Переправа»


Сцены с переправой и атакой горящих людей были самыми трудоемкими, работа над ними заняла примерно полтора года.


Во время переправы немцы взрывают нефтехранилище,  и огонь заливает все: холм, воду и людей. Сцена длинная и почти целиком состоит из шотов, в которых требовалось сильно обрабатывать съемочный материал. Компьютерная графика затрагивала ключевые элементы всей сцены: цвет, контраст, атмосферу, внешний вид огня и дыма.


Чтобы сохранить стилистическую целостность, для всех шотов были сначала созданы подробные  концепты, затем был собран аниматик всей сцены, позволяющий понять ритм и динамику действия.


Поскольку почти во всех шотах сцену нужно было добавлять огонь либо на переднем плане, либо на съемочных или CG-солдатах, либо на заднем плане, либо везде сразу, а использовать стоки и подсъемы в стереопроекте почти невозможно, то нужно было засимулить огромное количество детализированного компьютерного пламени.


undefined


Кадр из сцены «Взрыв нефтебаков». Весь огонь в шоте — VFX.


CG-огонь на проекте «Сталинград» — это очень серьезная внутристудийная разработка, на исследования, создание и отладку которой потратили три месяца. Задачу решили с применением основанной на вольюметриках физически корректной технологии. При этом был найден способ увеличить детализацию уже готовой симуляции путем наложения дисплейсмента, что подняло уровень  реалистичности внешнего вида огня и дыма, особенно на передних планах, в несколько раз. Правда, это также сильно увеличивало время просчета симуляции. Там, где для обычного шота каждый кадр считался по 8-12 минут, при включении дисплейсмента время просчета увеличивалось до 2-3 часов. При этом результат напрямую зависит от качества симуляции, если она плохая, то дисплейсмент не спасет. Он может улучшить только хорошую симуляцию.  Все огни и дымы на проекте создавались с использованием данной технологии.После того как были получены первые огненные симуляции, арт-директор студии Андрей Максимов скомпозил несколько ключевых шотов, в которых было необходимо найти цветовое решение всей сцены. В последующем это сильно упростило остальную работу, поскольку изначально было сформировано некое единое видение того, какими должны быть взрывы, огонь и дым.



Кадры из сцены «Взрыв нефтебаков»: «До»/«после».


Но это был только один из аспектов работы. Для ряда планов этой сцены потребовалось делать цифровую массовку, поскольку снимать каскадеров в непосредственной близости от взрывающихся баков было нельзя. Вся массовка на общих планах – компьютерная графика.


В процессе решения этой задачи было испробовано несколько подходов.


Сначала была написана достаточно сложная динамическая система в Houdini, которая рассматривала каждого солдата, как интеллектуального агента, с набором типов поведения.  И он, в зависимости от ситуации, в которой оказывался, выбирал то или иное действие. Это был упрощенный аналог системы Massive. Получилось очень неплохо — во всех шотах, где было активное движение, аниматик делался при помощи этой технологии. Но когда включался творческий элемент, и требовалось менять поведение агентов исходя из художественных соображений, солдат переводили на ручной режим управления. В результате система с агентами очень выручала, когда людей в кадре было 30-40. Если же их было до 20, можно было сразу работать с ними вручную.


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


В сцене со взрывом баков создание клипов осложнялось еще и тем, что солдаты бежали по пересеченной местности. Обычно, когда персонаж движется по ровной поверхности, можно ограничится небольшим набором чередующихся циклов ходьбы или бега. Здесь же нужно было «обыгрывать» рельеф местности. Если персонаж наступил в ямку, значит, должен провалиться, а если перед ним пригорок, то он должен поднять ногу выше. Поэтому пришлось делать множество вариаций этих клипов с пробежками: как он забирается на горку, на более крутую горку, спускается с горки, скатывается с нее кубарем. Но чтобы точно попасть в рельеф местности даже этого было недостаточно. Отказываться от клипов и переходить на покадровую анимацию каждого солдата вручную было бы очень трудоемко, поэтому с помощью Houdini были разработаны специальные инструменты, которые позволяли чисто математически корректировать походку под особенности того рельефа, по которому солдат идет. Если в анимационном клипе он немного не дотягивался ногой до земли, он «сам» опускал ногу, если не хватало высоты – слегка ее приподнимал. И стопы свои ориентировал так, чтобы они всегда стояли параллельно поверхности.  


undefined


Кадр из сцены «Взрыв нефтебаков» с цифровой массовкой


Первоначально анимация делалась в Maya, а в Houdini передавались только уже закэшированные анимационные клипы в виде запеченной геометрии. Но потом решено было передавать в Houdini анимированные скелеты, с которыми можно было работать дополнительно, что и позволило делать процедурную «достройку» анимации по нюансам рельефа.


Анимационные клипы получали самыми разными способами: что-то анимировали вручную, а что-то – с помощью “классического” мокапа с маркерами и ИК-камерами. Часть этих клипов была записана еще для фильма «Август. Восьмого», но там их применить не успели, часть клипов взяли из бесплатных библиотек, а другую часть записывали при помощи Kinect.


«Я ставил Kinect рядом с рабочим местом, и отыгрывал те движения, которые мне требовались, моментально перенося их на солдат, — объясняет Александр Липилин, супервайзер анимации студии. — Это было удобно. Наши соотечественники, iPi Soft, сделали программу, которая является уникальным решением для безмаркерного мокапа тела с использованием Kinect, и аналога этой технологии пока нет».



Еще одной подзадачей была симуляция одежды. Поскольку, солдаты одеты в шинели и быстро двигаются, одежда тоже развивается. Правильно отсимулированная одежда позволяет скрыть огрехи анимации, если те имеются. Для симуляции ткани был использован стандартный солвер Houdini, он не самый быстрый, если сравнивать его с другими имеющимися решениями, но в данном случае у него было одно большое преимущество: поскольку Houdini является частью пайплайна студии, все расчеты можно было распараллеливать на ферме.


В фильме есть сцена с переправой, во время которой мы видим людей на плотах и лодках. Здесь также потребовалось создавать цифровую массовку, в ряде аспектов задача была чуть сложнее, чем в сцене взрыва нефтехранилища, потому что там не приходилось ставить CG людей рядом с отснятыми актерами массовки. А тут массовка в предрассветном полумраке уже была отснята. Но ее было недостаточно, поэтому пришлось «размножать» плывущие по реке лодки с бойцами, размещая их между существующими.  И сделать это надо было так, чтобы никто не заметил разницы.


undefined


undefined


Кадр из сцены «Переправа» с цифровой массовкой


Пришлось доработать шейдинг, и внимательно относиться к тому, что видно на съемочном материале, а что — на цифровом. С точки зрения анимации эта сцена была проще: солдаты никуда не шли, сидели или стояли на плотах и лодках, толкались шестом или гребли — эту анимацию можно было снять при помощи Kinect, не отходя от рабочего места.


Сложности этой сцене также добавили водяные взрывы. В реальной жизни взрыв в воде поднимает характерный столб брызг, но с компьютерной симуляцией все сложнее: при подходе «в лоб» взрыв получается шарообразным, поэтому компьютер приходится обманывать. Важно было найти начальную скорость разлета  брызг, только тогда из них можно сформировать  столб воды нужной формы. Решение этой проблемы заняло достаточно много времени.  Красивые водяные взрывы были сделаны в программе Naiad, которая отлично зарекомендовала себя еще на проекте «Метро».


Поскольку в этой сцене, как и в большинстве кадров фильма, также был заменен задний план: небо и панорама горящего города, потребовалось заменить все настоящие водяные взрывы компьютерными, потому что ротоскопировать съемочные брызги в стерео было бы сложнее.


undefined


undefined


Кадр с CG-туманом из сцены «Переправа»


Крепким орешком оказался шот, в котором солдаты подплывали к берегу, выныривая из тумана, весь туман нужно было добавить на постпродакшене. Первоначально наложение тумана на персонажей планировалось реализовать только композными средствами, делая туман прозрачнее в тех местах где должны были быть люди, но в процессе стало понятно, что на стереопроекте это не работает — даже если мы вырезаем из нарендереных облаков тумана людей масками, по фактуре тумана в стерео все равно прослеживается, что хоть он и становится прозрачнее, но все равно расположен за людьми, а не перед ними. Поэтому пришлось кропотливо вырезать вручную каждого человека по отдельности, методом проб и ошибок выяснять его настоящую глубину в трехмерной сцене, и потом считать туман вместе с этими вырезанными плашками с людьми. Считался он очень медленно, при этом погрешности даже в половину пикселя моментально становились очевидными при финальном наложении тумана и просмотре в стерео, поэтому шот отнял очень много времени на постоянные поправки вылезающих каемок на разных персонажах.


Город и звезды

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


Изначально было понятно, что в фильме будет довольно большое количество шотов с видами города, и конечно, декорации не хватит, какой бы большой она ни была. CG художники начали делать город по картам и историческим съемкам: овраг, река, ее изгиб, еще одна река, которая впадает в Волгу, железная дорога, и так далее.


Моделлеры проделали огромную работу, каждого дома было по четыре варианта: целый, чуть сломанный, наполовину разрушенный и руины. Позже в студии научились «разрушать» модели процедурно: брались целые дома, которые еще не успели разрушить вручную, к ним применялся специальный алгоритм (еще одна внутристудийная разработка), и дом получался сломанным наполовину или от него оставались одни руины.  Детализация процедурно разрушенных домов не была слишком высокой, но для заднего плана они вполне годились. Те здания, что были видны достаточно хорошо, основательно «разрушались» вручную.


undefined



CG-декорация и мейт-пейтн использовались в значительной части экстерьерных шотов


Кроме того, стало понятно, что все это должно быть покрыто строительным мусором, обломками кирпича, вещами, битыми панелями и хламом.  Для создания груд мусора брали случайные наборы готовых предметов: бочка, лестница, качели, скамейка, из чего формировали облако, а потом «роняли» его на землю. Результаты симуляции кешировались, после чего поверх набрасывался еще один слой. Так создали несколько подобных куч, которые потом художественно «разбросали» по городу.


По всему городу также были расставлены трамваи, разбитые машины, даже затонувшие корабли у пристани.


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


Над освещением CG города пришлось поработать особо. Изначально предполагалось придерживаться исторической достоверности – в студии работает человек, который родился и вырос в Волгограде. Он говорил: «Солнце встает здесь, а зимой — там». Но при этом солнце было где-то за правым плечом или сзади, иными словами, оно было совсем не там, где светило бы эффектно освещало город. И на первых тестах Федор Бондарчук сказал: «Все хорошо, но мне нужна река, она должна четко просматриваться. Это же Сталинград, там Волга». Но при таком расположении источника света был невозможно заставить реку блестеть. В итоге команда студии приняла решение отказаться от исторической достоверности в пользу художественной красоты, и солнце расположили так, чтобы река блестела.


Кроме того, город постоянно домоделивался, изменялся. Если какое-то здание оказывалось близко к камере и было хорошо видимо, его забирали на «допиливание», специально «разрушая» так, чтобы именно в этом шоте оно смотрелось особенно красиво.


undefined


Часть моделей использованных при создании декораций города


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


«И каждый раз, когда появлялось что-то новое, мы старались оптимизировать существующее, — поясняет Станислав Пологрудов, один из ключевых TD студии. – Это происходило пошагово, после добавления новых объектов в сцену мы заново искали пути оптимизации. И каждый раз все-таки умудрялись вписываться в наши мощности, хотя, конечно, обсчет отнимал очень много ресурсов».  


Все объекты на «карте» расставляли в Maya, а в Houdini  получали только точки-локаторы с информацией о доме: его тип, подтип, стадия разрушения – и так по всем объектам.


При отправке на рендер Houdini брал точки из Maya с записанной в них информацией, обрабатывал их соответствующим образом, считывал информацию, раскладывал ее, читал файлы с диска с определенной моделью дома и задавал текстуры, которые должны быть к нему применены.  Это все долго отлаживалось и уточнялось, постоянно появлялись новые объекты и вносились коррективы.  Всего в модели Сталинграда было более 13 тысяч домов.


Падающий самолет

Одной из самых зрелищных сцен картины была эффектная сцена с падающим немецким бомбардировщиком Хейнкель He 111, который сбивает купол театра и разваливается на части, в финале сцены проезжает по земле, взрывая ее своим винтом. На ее создание ушло полгода.


undefined


Шот с падением He 111 — визитная карточка VFX в фильме.


Работа над эпизодом началась с единственного раскадрованного шота.  В нем было изображено начало сцены, когда главный герой стоит на крыше, зритель видит его сзади, потом его облетает камера, панорамируя город, небо, и захватывая начало падения самолета.  Дальше вводные данные были следующие: самолет при падении должен задеть крышу театра, снести купол, и упасть в заданном месте, что сразу выстраивало определенную траекторию падения. Кроме того, во время падения от самолета отваливается  крыло и падает в ротонду. Изначально по сюжету это было важно, потому что через эту ротонду потом должен был стрелять снайпер. В итоге в фильм это не вошло, но на тот момент об этом еще не знали — нужно было продумать кадры с отвалившимся крылом, которое бы влетело в ротонду, и сделать их органичными и убедительными.



Сначала был сделан превиз, сцену воссоздали полностью от начала до конца, в правильном масштабе, правда вместо модели самолета был низкополигональный драфт, но анимация была близка к финальной.  Этот превиз был сделан не только для того, чтобы оператор на съемке понимал, как работать камерой, он был началом работы над анимацией. Теперь можно было расставить камеры и «снимать» объект с любых точек.


«Мы поставили порядка 16-17 камер для поиска ракурсов,  — рассказывает VFX арт-директор студии Андрей Максимов, — Самый первый ракурс был задан из раскадровки, а дальше нужно было рассказать историю того, как падает этот самолет, и понять, какие ракурсы нужны и сколько шотов в итоге получается в секвенции.  Сняли с 15 камер, смонтировали, посмотрели, позвали оператора-постановщика Максима  Осадчего.  Он сидел с нами, предлагал свои художественные решения.  После двух недель работы с Осадчим остановились на четырех планах, где как минимум один – полностью CG план».


Были сделаны схемы движения камеры, чтобы на площадке все отсняли правильно. Но, как это часто случается, во время съемки нужный кран не приехал, а тот, который был, немного не подходил – длины его стрелы не хватало. В результате съемочный материал сильно отличался от задуманного и вносил большие коррективы во внешний вид падения. Главная проблема состояла в том, что длина тормозного пути самолета очень сильно сократилась. Точнее – почти в два раза. Это выглядело бы крайне неестественно. Поэтому от съемочного материала было решено отказаться и сделать все в CG.


undefined


Дело в том, что материал был довольно сложен для трекинга камеры: камера теряет самолет из виду, переводит внимание на ротонду и падающее крыло, потом возвращается к самолету, при этом у нее работают зумы. Команда студии посчитала, что в данном случае сделать полностью компьютерный шот окажется дешевле и быстрее, чем бороться с проблемами съемочного материала. Кроме того, для фильма все равно воспроизводили в CG всю съемочную площадку, поэтому делать ее специально для этого шота не пришлось — цифровую декорацию использовали по всей ленте.


К концу работы над сценой от моделлеров пришла новая геометрия купола – ее размер изменился, поэтому пришлось немного сместить самолет и подправить крен его падения.  Но главную сложность здесь составляли симуляции, поскольку в шоте много различных эффектов и разрушений, и они оказались весьма ресурсоемкими.  


Во-первых, была использована динамика твердых тел для визуализации разрушений, во-вторых, флюидный солвер — для симуляции пыли, плюс в сцене также присутствуют дым от горящего самолета и огонь (с использованием дисплейсмента). Самолет довольно большой, поэтому у его конструкции есть жизнь: машина деформируется в полете, а от столкновений со зданием крылья ходят ходуном. Эти нюансы делались с помощью симуляций мягкого тела.


undefined


Еще одной сложностью был тянущийся за самолетом дымный шлейф, работа с которым заняла три недели. Дело в том, что объем дыма в сцене довольно большой, и он показан довольно крупно, поэтому содержащий его контейнер должен быть высокого разрешения. Проблема очень быстро упирается в вычислительные ресурсы: в память и процессорные мощности. Поэтому нужно было исходить из имеющихся возможностей и оптимизировать просчет. Нужно было придумать, как насимулить несколько фрагментов дымов и бесшовно сложить их воедино. Здесь очень помог тот момент, в который взгляд камеры уходит на ротонду и теряет из вида самолет. Это позволило заменить симуляцию на новую. Таким нехитрым образом решили сложную техническую проблему. Специально, чтобы облегчить себе задачу с дымом,  камеру от самолета не уводили, это было необходимо сюжетно, но после реализации этой сцены было решено применять подобный маневр, чтобы «обхитрить» компьютер при работе с вольюметриками высокого разрешения.



А вот анимация падающего в ротонду крыла никак не хотела поддаваться – не выходила правдоподобно. Получившаяся анимация все время не дотягивала до того, чтобы нравиться всем. Тогда было решено отдаться на волю законам физики и отсимулить крыло вместе с разрушением ротонды. Результат превзошел ожидания.


Третий шот в этой связке планов – это рапидный шот пролетающего за окном самолета, когда на переднем плане оказываются персонажи. Здесь анимация самого самолета крайне простая: два ключевых кадра в начале и в конце сцены. Сложность этого шота заключалась в вольюметрических симуляциях, которые непросто заставить двигаться медленно – их надо заново настраивать.


Модель самолета «весила» около 10 миллионов полигонов, частично даже его кабина была построена и «обставлена» изнутри приборами. Для самолета было создано около 20 цветовых текстур, десяток спекулярных, несколько бамп-текстур, всего на самолет было сделано около 40 текстур в разрешении 4К.  


В самолете даже присутствует пилот, хотя при просмотре фильма его не очень видно. В процессе работы VFX художникам показалось, что самолет несколько пустоват без человека внутри, и на каком-то больше «подсознательном» уровне смотрится неубедительно.


Самой сложной в этой секвенции была сцена падения, в создании этой сцены принимало участие большое количество специалистов. Два месяца заняло решение собственно взаимодействия машины с землей, когда самолет падает и «собирает» частицы земли своим корпусом или подбрасывает ее  лопастями винта. Этим моменты потребовали весьма основательной работы.  


Всего в сцене присутствовало около 50 вольюметрических симуляций (дымы, пыль, контакт с землей), около 30 симуляций твердых тел. Для создания секвенции потребовалось от 30 до 50 слоев на композе – в зависимости от сложности шота.


~ ~ ~


undefined


Это только первая часть рассказа о VFX в «Сталинграде». Продолжение тут!

0 комментариев

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.