Приемы кино в Unity: маркетинговые ролики для игр внутри движка

Приёмы реальной жизни и видео в 360 градусов.

В закладки

Видеомонтажёр из студии Pixonic Василий Мазалов в колонке для DTF рассказал о том, как создаются маркетинговые ролики на движке Unity для игры War Robots.

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

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

In-house набор инструментов

В основном скрипты нам нужны для удобства съёмки, чтобы при комбинировании с особенностями движка добиваться нужного эффекта. Например, когда появилась необходимость снять бои на разных картах с участием новых роботов, мы использовали скрипт, который «откреплял» камеру, позволяя свободно перемещаться по сцене в процессе геймплея подобно квадрокоптеру. В Unity это выглядит вот так.

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

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

Тот же эффект в Unity.

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

Движок в сочетании с нашими скриптами позволяет также манипулировать со временем в игре и делать пролеты с замедлением или полной остановкой боя, чтобы получить такие эффекты (ещё одно знакомство игроков с паком новых роботов, на этот раз в стилистике Дикого Запада).

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

Видео 360

Ещё мы очень хотели снять панорамное видео внутри War Robots. Для этого были взяты скрипты Helios (позволяющий снимать на 360 градусов) и Pegasus (для управления камерой во время движения), и слегка адаптировали под наши нужды. Но тут мы столкнулись со следующими проблемами:

  • некорректное «поведение» визуальных эффектов;
  • рассинхронизация действий игроков во время съемок;
  • потеря ряда кадров при съёмке.

Из-за особенностей скрипта камеры эффекты стрельбы преломлялись, тени отображались некорректно, а эффекты попаданий в роботов то появлялись, то снова исчезали (видео можно вращать с помощью мыши прямо в браузере).

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

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

В итоге вместе с программистами мы подружили камеры скрипта с визуальными эффектами игры и добились хорошего качества записи.

Хромакей и интеграция графики

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

Сравнение картинки до и после работы моушн-дизайнеров

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

Этот же принцип мы применили в Unity для ролика, который рассказывает о новом режиме игры — Beacon Rush.

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

Финальный ролик

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

#pixonic

Материал опубликован пользователем. Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Андрей Верещагин", "author_type": "editor", "tags": ["pixonic"], "comments": 4, "likes": 22, "favorites": 1, "is_advertisement": false, "subsite_label": "gamedev", "id": 11880, "is_wide": false }
{ "id": 11880, "author_id": 22254, "diff_limit": 1000, "urls": {"diff":"\/comments\/11880\/get","add":"\/comments\/11880\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/11880"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 64954 }

4 комментария 4 комм.

Популярные

По порядку

–1

А теперь в Unity есть потрясающий Cinemachine, и подобные ролики делать стало совсем просто. Будете на него переходить, или пока думаете пользоваться самописными решениями?

Ответить
1

В случае с проектом War Robots, мы будем использовать различные механики Cinemashine для решения конкретных задач.

Ответить
0

Ну что же вы делаете то, эт же роботы, они тяжёлыми должны казаться)
Сделайте анимацию шага чтоб проседал под весом хоть немного :)

Ответить
0

обработка ног для нормального наступания на землю, думаю тоже смотрелась бы круто, а то они ходят по воздуху

Ответить
0

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjog" } } }, { "id": 10, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-250597-0", "render_to": "inpage_VI-250597-0-1134314964", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=clmf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudo", "p2": "ftjf" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvc" } } } ]
Невероятно! Skyrim портировали на...
Подписаться на push-уведомления