
Можно сказать, что девиз почти всех инди-разработчиков — это «Большие мечты при ограниченных ресурсах». Когда я начал работать над первой игрой Motion Twin для Steam Dead Cells, эта фраза стала и моим девизом.
Меня зовут Тома Вассёр, в течение целого года я был единственным художником Dead Cells. Я занимался дизайном и анимациями каждого аспекта игры. В одиночку мне пришлось создавать графический стиль, персонажей, монстров, анимации, спецэффекты (FX) и большинство фонов Dead Cells… Пока, к счастью, мне на помощь не пришёл мой злой брат-близнец Генель Массе. Количество художников Dead Cells удвоилось.
Однако нехватка рабочих рук в нашем секторе является частой ситуацией, поэтому я расскажу, как мне удалось не сойти с ума, работая в одиночку всё это время (конечно же, если я ещё не умер и это всё не иллюзия).
3D-конвейер для быстрого создания качественных анимаций и новых моделей
Я начинал с рисования очень простого листа моделей в стиле двухмерного пиксель-арта, который затем использовал как основу для создания персонажа и его скелета в 3D (с помощью 3DS Max), после чего импортировал его в формате filmbox. 3D-модели были очень простыми и они скорее всего заставили бы кровоточить глаза любого опытного 3D-художника.

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


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



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


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

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

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



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

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

Наверно, это самый полезный небольшой трюк в нашем рабочем процессе, позволивший мне сэкономить сотни часов работы.
Зачем это нужно?
Всем нам нравится нарисованная от руки пиксельная анимация. Но я работал совершенно один, у меня не было навыков рисовки вручную и благодаря применённым хитростям выхода игры не пришлось ждать до следующего десятилетия.
Я попал в индустрию видеоигр в 2008 году, несколько лет работал над казуальными и F2P-играми, которые так и не были изданы, в французской компании, которой уже нет. Я начал рисовать пиксель-арт только в 2013 году, когда меня наняли в Motion Twin, где я работал над пятью играми: Brutal Teenage Crisis, Green Witch, FAFI 360, Uppercup Football и Monster Hotel. Я очень удивлюсь, если вам известно хотя бы одно из этих названий.
Чтобы объяснить контекст, я скажу, что когда мы начали в 2015 году разработку первой итерации Dead Cells, это был мой первый проект такого масштаба. Могу без стыда признаться, что я не был (да и сейчас не являюсь) опытным аниматором и по сей день чувствую себя новичком в пиксель-арте. Оглядываясь назад, могу сказать, что это очень хорошо повлияло на получившийся стиль Dead Cells, потому что я никогда не ощущал себя ограниченным условностями и традициями стиля «олдскульного пиксель-арта».
Чтобы справиться с нехваткой ресурсов и достичь необходимого уровня качества, нам пришлось искать процесс/конвейер/что угодно для получения красивого пиксель-арта без рисовки вручную. Мы стремились создать качественную игру, не тратя неразумное количество времени и энергии на процесс разработки.
С художественной точки зрения нам требовалось следующее:
- Множество разнообразных фонов с красивым освещением и декорациями.
- Мощные анимации, придающие бою нервное ощущение, похожее на игры в стиле beat’em-all.
- Кучи отвратительных монстров.
- Изобилие оружия, влияющего на стиль геймплея.
Описанный мной выше процесс работы в 3D для Dead Cells на самом деле основывался на другом проекте. В 2015 году Матьё Капдегель (один из разработчиков Dead Cells), Йоан Лаулан (также работавший над Dead Cells в должности звукорежиссёра) и я объединились, чтобы поучаствовать в Ludum Dare 32. В результате у нас получилась игра ScarKrow, точнее, сделанный за 72 часа прототип игры. Он стал первым свидетельством того, что мы хотим создать быстрый и жестокий платформер. Однако на рисование качественных анимаций в Flash у меня уходило слишком много времени, а получаемые результаты не соответствовали нашим ожиданиями.
Однако на тот момент мы уже увидели некоторый потенциал в этой концепции, а Motion Twin всегда была компанией, в которой эксперименты всегда поддерживаются, даже если из них ничего не выходит. После Ludum мы потратили добрых три недели на разработку ScarKrow и уже тогда я понял, что не смогу выдерживать нужный темп, работая в традиционном режиме.
Вдохновившись King of Fighters, Blazblue, а позже и последним Guilty Gear, мы решили делать в основном 3D-анимацию. Такой способ дал нам следующие преимущества:
- Не нужно перерисовывать каждый кадр
- Возможность использования одной анимации для разных моделей
- Автоматическая генерация интерполированных кадров для получения плавной анимации
- Быстрые и простые переделки для соответствия анимаций геймплею
Благодаря такому рабочему процессу нам удалось достичь 30 FPS в анимациях и сэкономить кучу времени. Если хотите посмотреть, как это работает, то прототип можно бесплатно скачать отсюда.
Для использования того же процесса в Dead Cells нам пришлось решить пару проблем. Во-первых, для ScarKrow мне приходилось рисовать во всех кадрах тени вручную. Такого затратного процесса нам удалось избежать благодаря созданию системы освещения, учитывающей этот фактор. Кроме того, Dead Cells, в отличие от ScarKrow, была игрой в стиле пиксель-арта, поэтому нам пришлось создать инструмент для «пикселизации» персонажей. Мы заранее знали, что он пригодится, потому что позволили себе поэкспериментировать с этим в прошлом. Именно поэтому рекомендую вам экспериментировать.
Результат
В ретроспективе оказалось, что самым важным преимуществом такого процесса оказалось упрощение работы над переделками. Мощная и нервная система боя Dead Cells является фундаментом для всех остальных механик. В предыдущих проектах, над которыми я работал, мы создавали традиционную отрисовываемую вручную анимацию, которую не могли переделывать после завершения. На это просто не оставалось времени. И это очень сильно сказалось на геймплее готовой игры. Изменение скорости анимации в коде не позволило решить проблему.
При создании нового оружия в Dead Cells мы можем буквально за пару минут сменить десятки таймингов анимации. И мы можем учитывать мнение сообщества фанатов игры, невзирая на время, необходимое для внесения изменений.
Разумеется, процесс работы с 3D-моделями имеет собственные недостатки. Нам пришлось искать способ рендеринга 3D-модели в пиксель-арте низкого разрешения. Мы решили эту проблему, использовав при рендеринге моделей в низком разрешении техники cell shading и без применения сглаживания, но нам не удалось, например, решить проблему мерцающих пикселей. Да, мы можем устранять их вручную, но весь смысл такого процесса заключается в скорости… а мы предпочитаем тратить время на дизайн концептов! Меня всегда раздражало и будет раздражать низкое качество деталей, но мы решили, что важнее всего анимации, и берём на себя всю ответственность за свой выбор. Движение — это главное.
Я надеюсь, что это краткое описание нашего процесса работы с анимациями Dead Cells поможет вам в следующих проектах. Но самый важный урок, как мне кажется заключается не в подробностях нашей работы, а в том, что хорошо продуманный рабочий процесс может принести проекту успех.
Даже несмотря на то, что наш выбор был в основном продиктован нехваткой ресурсов, сейчас я осознаю, что продумывание оптимизации соотношения затрат и качества — важнейший процесс в начале нового проекта, вне зависимости от его масштабов.