Хабрахабр

[Перевод] Dead Cells: использование 3D-конвейера для 2D-анимации

image

Можно сказать, что девиз почти всех инди-разработчиков — это «Большие мечты при ограниченных ресурсах». Когда я начал работать над первой игрой Motion Twin для Steam Dead Cells, эта фраза стала и моим девизом.

Я занимался дизайном и анимациями каждого аспекта игры. Меня зовут Тома Вассёр, в течение целого года я был единственным художником Dead Cells. Количество художников Dead Cells удвоилось. В одиночку мне пришлось создавать графический стиль, персонажей, монстров, анимации, спецэффекты (FX) и большинство фонов Dead Cells… Пока, к счастью, мне на помощь не пришёл мой злой брат-близнец Генель Массе.

Однако нехватка рабочих рук в нашем секторе является частой ситуацией, поэтому я расскажу, как мне удалось не сойти с ума, работая в одиночку всё это время (конечно же, если я ещё не умер и это всё не иллюзия).

Я начинал с рисования очень простого листа моделей в стиле двухмерного пиксель-арта, который затем использовал как основу для создания персонажа и его скелета в 3D (с помощью 3DS Max), после чего импортировал его в формате filmbox. 3D-модели были очень простыми и они скорее всего заставили бы кровоточить глаза любого опытного 3D-художника.

Но если в игре рост персонажа составляет всего 50 пикселей, то трата кучи времени и энергии на 3D-модель кажется не особо эффективной.

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

Теперь нам нужно научить модель двигаться. Анимации Dead Cells, как и 2D-анимации, основаны на ключевых кадрах. После того, как анимация становится убедительной с как можно меньшим количеством кадров, я добавляю между ключевыми кадрами интерполированные кадры. То есть наши анимации атак по сути являются анимациями поз, и мы используем VFX, чтобы придать им ощущение движения, силы и мощи.

На этом этапе бОльшая часть работы уже сделана. Мы экспортируем каждый кадр созданной с помощью 3D-скелета анимации в .png вместе с её картой нормалей, что позволяет нам рендерить объём с помощью простейшего toon-шейдера.

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

Разумеется, программистам геймплея никогда не удаётся сделать ничего правильно с первого раза… Они постоянно меняют подходы. Хотя на самом деле так и должно быть. В моём случае процесс переделки был довольно прост и требовал мало времени. Если у вас есть проблемы с таймингами, то их можно устранить перемещением ключевых кадров по таймлайну. Можно также без проблем изменить позу.

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

Чтобы порадовать программиста (да и себя, ведь мне не придётся выбрасывать всю сделанную работу), мы просто переместим ключевые кадры и изменим позу в соответствии с новыми таймингами.

На самом деле, все эти переделки в целом заняли меньше времени, чем создание GIF для статьи, но, возможно, я просто не очень хорош в работе с GIF.

Во-первых, если мы хотим добавить к старой модели новые элементы, например, броню, то это оказывается очень просто сделать. Такой рабочий процесс в 3D также обеспечивает два серьёзных преимущества по сравнению с более традиционным 2D-процессом. Достаточно всего лишь прикрепить к 3D-модели соответствующую деталь.

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

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

Я начал рисовать пиксель-арт только в 2013 году, когда меня наняли в Motion Twin, где я работал над пятью играми: Brutal Teenage Crisis, Green Witch, FAFI 360, Uppercup Football и Monster Hotel. Я попал в индустрию видеоигр в 2008 году, несколько лет работал над казуальными и F2P-играми, которые так и не были изданы, в французской компании, которой уже нет. Я очень удивлюсь, если вам известно хотя бы одно из этих названий.

Могу без стыда признаться, что я не был (да и сейчас не являюсь) опытным аниматором и по сей день чувствую себя новичком в пиксель-арте. Чтобы объяснить контекст, я скажу, что когда мы начали в 2015 году разработку первой итерации Dead Cells, это был мой первый проект такого масштаба. Оглядываясь назад, могу сказать, что это очень хорошо повлияло на получившийся стиль Dead Cells, потому что я никогда не ощущал себя ограниченным условностями и традициями стиля «олдскульного пиксель-арта».

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

С художественной точки зрения нам требовалось следующее:

  • Множество разнообразных фонов с красивым освещением и декорациями.
  • Мощные анимации, придающие бою нервное ощущение, похожее на игры в стиле beat’em-all.
  • Кучи отвратительных монстров.
  • Изобилие оружия, влияющего на стиль геймплея.

Описанный мной выше процесс работы в 3D для Dead Cells на самом деле основывался на другом проекте. В 2015 году Матьё Капдегель (один из разработчиков Dead Cells), Йоан Лаулан (также работавший над Dead Cells в должности звукорежиссёра) и я объединились, чтобы поучаствовать в Ludum Dare 32. В результате у нас получилась игра ScarKrow, точнее, сделанный за 72 часа прототип игры. Он стал первым свидетельством того, что мы хотим создать быстрый и жестокий платформер. Однако на рисование качественных анимаций в Flash у меня уходило слишком много времени, а получаемые результаты не соответствовали нашим ожиданиями.

После Ludum мы потратили добрых три недели на разработку ScarKrow и уже тогда я понял, что не смогу выдерживать нужный темп, работая в традиционном режиме. Однако на тот момент мы уже увидели некоторый потенциал в этой концепции, а Motion Twin всегда была компанией, в которой эксперименты всегда поддерживаются, даже если из них ничего не выходит.

Такой способ дал нам следующие преимущества: Вдохновившись King of Fighters, Blazblue, а позже и последним Guilty Gear, мы решили делать в основном 3D-анимацию.

  • Не нужно перерисовывать каждый кадр
  • Возможность использования одной анимации для разных моделей
  • Автоматическая генерация интерполированных кадров для получения плавной анимации
  • Быстрые и простые переделки для соответствия анимаций геймплею

Благодаря такому рабочему процессу нам удалось достичь 30 FPS в анимациях и сэкономить кучу времени. Если хотите посмотреть, как это работает, то прототип можно бесплатно скачать отсюда.

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

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

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

Нам пришлось искать способ рендеринга 3D-модели в пиксель-арте низкого разрешения. Разумеется, процесс работы с 3D-моделями имеет собственные недостатки. Да, мы можем устранять их вручную, но весь смысл такого процесса заключается в скорости… а мы предпочитаем тратить время на дизайн концептов! Мы решили эту проблему, использовав при рендеринге моделей в низком разрешении техники cell shading и без применения сглаживания, но нам не удалось, например, решить проблему мерцающих пикселей. Движение — это главное. Меня всегда раздражало и будет раздражать низкое качество деталей, но мы решили, что важнее всего анимации, и берём на себя всю ответственность за свой выбор.

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

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

Показать больше

Похожие публикации

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»