История создания дракона для чемпионата по League of Legends

Если в твоём мире нет огромных рептилий — создай свою.

В 2017 году студия Riot Games провела турнир Worlds Championship по League of Legends в Пекине. Одним из главных событий на церемонии открытия стало появление дракона, который облетел стадион и приземлился на сцену благодаря технологии дополненной реальности. В своём блоге разработчики из Riot Games рассказали историю создания рептилии.

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

С февраля 2017 года мы разрабатывали план церемонии открытия: в нём было выступление музыканта с китайским народным инструментом эрху, маски пекинской оперы с лицами чемпионов LoL, появление суперзвезды Джей Чоу и исполнение песни Legends Never Die группой Against the Current. Но мы чувствовали, что не хватает чего-то особенного, что отражало бы размер и масштаб знаменитого стадиона «Птичье гнездо».

«Птичье гнездо»

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

Сначала мы придумали, чтобы Райз стрелял магией по стадиону, а Эш пускала стрелы из экрана на сцене. Но у нас также была старая шутка: «Давайте на сцену опустится дракон». У нас нет портала в Рунтерру, чтоб призвать настоящего дракона, и когда эта шутка появилась, технология, благодаря которой можно было бы создать видимость дракона, влетающего на стадион, ещё не появилась (или была слишком дорогой).

Но к 2017 году технологии дополненной реальности развились достаточно, чтобы справиться с задачей. Мы собрали команду из наших технологических новаторов и спросили: «Можем ли мы создать дракона?»

Самыми главными проблемами были:

  • Как сделать, чтоб дракон влетел на стадион и приземлился на край стадиона?
  • Как сделать, чтоб дракон отбрасывал тень не только на пол, но и на стены?
  • Сможем ли мы настроить освещение в день церемонии так, чтобы оно соответствовало погоде снаружи? Как?
  • Как синхронизировать появление дракона с выступлением танцоров?

Мечты о драконах

В League of Legends нет более мощного, опасного и страшного монстра, чем старший дракон. Мы объединились с партнёрами, чтобы создать новый концепт-арт дракона, который служил бы отправной точкой для работы над моделью существа.

Мы рассмотрели много вариантов, но больше всего нам понравились те, которые подчёркивали масштаб и эпичность дракона. Было важно сохранить его узнаваемость, чтобы игроки сразу поняли, что прилетел именно старший дракон.

Спустя множество переосмыслений каждого аспекта существа был готов финальный концепт-арт.

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

Рендеринг в реальном времени

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

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

Вот как проходил процесс моделирования.

Пока всё это происходило, другая команда работала над анимацией дракона, влетающего на стадион. Мы изучали поведение драконов в «Игре престолов», DragonHeart и других источниках, чтобы понять, как дракон мог бы взаимодействовать с окружением в «Птичьем гнезде». Как он будет летать? Как он приземлится? Как он отнесётся к людям снизу?

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

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

Когда анимация только начала получаться, мы столкнулись с другой проблемой: дракон был слишком большим. Его крылья пронзали стадион, разрушая иллюзию. Также куда-то исчезла его тень, которая должна была ложиться на аудиторию стадиона.

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

Настоящий хекстек

Дальше мы перечислили, что мы сделали для правильного отображения анимации и обеспечения надлежащего качества.

  • Убедились, что анимация рендерится с той же частотой, что и у трансляции — 59.94 кадра в секунду.
  • Убедились, что дракон отбрасывает мягкие тени на геометрические модели размером с «Птичье гнездо».
  • Создали 3D-маску, чтобы дракон находился за стадионом, когда появляется и улетает, а также за будками команд, когда приземляется.
  • Сделали так, чтобы освещение можно было настроить в реальном времени.
  • Включили возможность цветокоррекции дракона, чтобы он выглядел реалистично в объективах камер.
  • Использовали две камеры с возможностью отслеживания положения, подключенные к двум разным графическим движкам.
  • Добавили возможность включить анимацию одновременно на обоих движках, чтобы переключаться между двумя камерами.
  • Сделали так, чтобы анимация включалась в определённый момент, чтобы она была синхронизирована с музыкой.
  • Планировали и репетировали достаточно, чтобы операторы брали идеальные кадры, несмотря на всё происходящее.

Чтобы проверить, как всё это работает, мы собрали оборудование и призвали дракона на свою парковку. Вот результат теста. Мы были им очень довольны.

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

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

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

Здесь можно увидеть, как оператор снимает полёт дракона над трибуной.

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

За считанные минуты до трансляции мы открыли редактор и немного приподняли дракона. Также мы настроили его цвет, чтобы он больше подходил времени суток. Затем пришло время отправить нашего старшего дракона на турнир.

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

 
Источник: DTF

Читайте также