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

https://www.gamasutra.com/view/news/313026/Art_Design_Deep_Dive_Using_a_3D_pipeline_for_2D_animation_in_Dead_Cells.php
  • Перевод
image

Можно сказать, что девиз почти всех инди-разработчиков — это «Большие мечты при ограниченных ресурсах». Когда я начал работать над первой игрой 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 поможет вам в следующих проектах. Но самый важный урок, как мне кажется заключается не в подробностях нашей работы, а в том, что хорошо продуманный рабочий процесс может принести проекту успех.

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

Поделиться публикацией

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

Комментарии 29
    0
    Достаточно стильно выглядит
      0
      Немного не понял: в движок в итоге анимация в каком виде идёт? 2Д спрайты, просто отрендеренные заранее в той самодельной программке?
        0
        Да, спрайты с картами нормалей.
        0
        Неплохо. Раньше думал, что они от руки всё рисовали.

        Игра, кстати, классная. Ещё в EA играл, но уже тогда достойно смотрелось. Любителям рогаликов советую.
          +1
          Не уверен, что вы понимаете что такое рогалик. Игру наверное куплю, выглядит интересно.
            –2
            Автогенерация, необратимость смерти т.п. Почему вы не считаете игру рогаликом?
              +1
              Судя по геймплею, это платформер реального времени. Рогалик? Не думаю.
                0
                Платформер не может быть рогаликом?
                  0
                  С элементами рогалика как и Rogue Legacy (которая тоже платформер).
                  0
                  Потому что это Rogue-lite, именно lite, т.е. элементы рогалика, а не рогалик.
              0
              Игра понравилась, купил. Но вот как обычно обещанные сроки раннего доступа уже просрочены и опять складывается впечатление, что игра будет вечность в раннем доступе.
                0
                  0
                  Игра не играбельна, баги не дают насладиться игровом процессом или мало контента? Чем вас смущает вечный ранний доступ конкретно в этой игре?
                  На данный момент выглядит законченным проектом с ярлычком «ранний доступ». Вон Фортнайт тоже «ранний доступ», если бы не лейба на заглавной страницы, вы бы об этом и не узнали.
                    0
                    В раннем доступе обычно беру то что нравится (хотя и очень аккуратно), чтобы поддержать разработчиков, а играю уже после релиза. Уже пытался играть в игры в раннем доступе, зато потом не хочется играть после релиза и в итоге не вижу релизный контент.
                      0
                      Я уточнил, что разговор про конкретную игру :) Да, есть игры которые в раннем доступе весьма условно играбельны и контента на 5 минут (а некоторые и после релиза). А есть игры в раннем доступе (Subnautica, Dead Cell, Slay the Spire, Fortnite etc.) в которых о раннем доступе можно узнать только по соответствующей отметке.
                        0
                        Ну вот поиграл я в Subnautica до релиза, после релиза уже не тянет. Вот и терплю, страдаю. И я не ругаю Dead Cell за объёмы контента, просто хочется уже с релиза начать, до релиза уж дотерплю.
                          0
                          Надо заставить себя пройти Subnautica! Там теперь есть концовка.
                      0
                      Хм…
                      Заголовок спойлера
                      А то, что после Руки Короля тупик и всё только с начала начинать — это разве законченный продукт? Или что буквально на днях поменяли всю концепцию раскачки?
                      .
                        0
                        Если бы вы не сказали, я бы и не знал что там что-то еще должно быть (не слежу за проектом, просто в него играю) :) Изменения в игре вносить можно и после релиза, (если у коллектива разработчиков есть на это желание и финансы).
                    0
                    На каком движке?
                      0
                        0
                        Почему не libgdx или unity?
                          0
                          Это не у меня надо спрашивать. Но, насколько я знаю, они с этим движком уже много лет работают. Поэтому и не видели смысла менять на что-то другое.
                      0

                      Даже на Intel UHD выдаёт стабильно 60 fps. Зачёт, Motion Twin.

                        0
                        Это колоссальное упрощение создания пиксельной анимации. Эксперимент удался. Было бы здорово, если бы разработчики поделились программой рендеринга из 3D в «пиксель».
                          0
                          На форуме tigsource разработчикам задали вопрос по этому поводу:

                          Congrats on your success! Very sweet look you guys have. Is your homebrew FBX Cruncher GUI something you think you may share at some point?

                          -Cheers


                          Never say never… but there is no doc, it's the very definition of «not user friendly» and you need to figure out Haxe before ^^. It requires some work before we can do that, so maybe if we've some time… one day...
                            0
                            В Блендере можно получить примерно такие же результаты, но неидеальные конечно. Поставить ortho-камеру, отключить сглаживание при рендеринге, назначить шейдер Toon и подогнать разрешение.
                              0
                              Так не просто же спрайт получить надо, а именно серию. Да так, чтоб потом анимацию нормальную на них построить можно было.
                                +1
                                Блендер позволяет рендерить анимацию в серию файлов PNG, так что с этим всё в порядке.

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

                          Самое читаемое