Играя в несколько игр в свободное от разработки время, я наткнулся на игру на выживание 2D / 3D. Игра была, очевидно, сделана в SDL и GLUT (не голодать), но что действительно поразило меня, так это анимация в игре.
Анимации очень плавные и плавные. Во время анимации нет искажений, что обычно происходит в анимациях, созданных вручную, это то, что пиксели удаляются, анимации неровные и просто не такие плавные. Это заставило меня задуматься о том, как им удалось добиться такого качества анимации. Были ли они действительно ручной работы (если они были, значит, это занял очень талантливый художник), это анимация костей или они используют другую технику?
Ответы:
Меня зовут Кевин, я программист / дизайнер в Klei. Я написал несколько анимационных материалов, которые мы использовали в сериале «Хвостовик», «Знак ниндзя» и «Не голодай».
Наши аниматоры работают во Flash. У нас есть концепция символа «сборка», представляющая собой набор символов части тела с несколькими видами. В зависимости от точности данной игры, есть больше или меньше частей тела с более или менее «видением». Я думаю, что у Шэнка было около 30 частей тела с 1-2 дюжинами видов, в то время как у Уилсона из Don't Starve - около дюжины частей тела с примерно одинаковым количеством видов. Пользовательские сценарии JSFL используются для анализа временных шкал символов флэш-памяти, а затем выпекают соответствующие изображения в виде серии файлов PNG с высоким разрешением вместе с набором метаданных, которые мы помещаем в XML.
Учитывая строение персонажа, наши аниматоры создают новый корневой символ в другом файле, который содержит кусок анимации для этого персонажа. На этой временной шкале они создают персонажа из символов сборки и перемещают его, анимируют и т. Д. Для создания отдельных анимаций (которые разграничиваются с помощью меток кадров). Сценарий exporter экспортирует эти временные шкалы в XML, принимая во внимание 2d-преобразование каждого элемента сборки и то, какое представление он показывает.
Со всей этой информацией, экспортированной в XML и PNG, мы запускаем серию скриптов Python для преобразования их в данные времени выполнения. Один скрипт сокращает, атласирует и обрабатывает все текстуры и преобразует их в (один или несколько) сжатых форматов, специфичных для платформы. Другой скрипт обрабатывает данные анимации XML в более эффективный для загрузки двоичный формат.
Во время выполнения, это действительно просто вопрос отображения правильных символов сборки с правильными преобразованиями и видом.
На создание этой системы ушло много времени, и она была усовершенствована по мере того, как мы перемещали ее из игры в игру. Есть много деталей, которые я приукрашиваю (например, как мы справляемся с наложением слоев и изменением костюма во время выполнения), но это общая схема.
Конечно, технология, которую мы используем, является, вероятно, наименее важным аспектом «Klei Look». Самое главное, что у нас есть куча действительно хороших аниматоров. :)
Во всяком случае, я надеюсь, что это поможет. Если у вас есть еще вопросы о «Не голодать», вы можете зайти на наши форумы, где я, как правило, очень рад пообщаться в магазине.
источник
Клей обычно использует действительно хорошую комбинацию скелетной анимации и спрайт-изменений.
Они устанавливают скелет, применяют спрайты к костям, а затем меняют спрайты, как это требует кадр анимации.
Точное «как» (рабочий процесс / инструменты / и т. Д.) Действительно может исходить только от них, однако, они так и сказали, когда рекламировали «Shank», предварительный релиз.
И если вы посмотрите на Shank / ShankII, Знак ниндзя и Не голодайте, вы заметите, что анимация очень похожа на материал, который может появиться в Nickelodeon.
Я полагаю, что они работают с графами сцен, чтобы сохранить все в порядке, но опять же, это скорее предположение, основанное на сложности и том, что работает для анимации (2d / 3d), чем на гарантии.
источник
Я думаю, что они определенно используют анимацию костей. Они также используют спрайты с высоким разрешением (для предотвращения появления неровностей) или используют некоторую форму векторной графики. Вполне возможно, они предварительно визуализировали векторную графику в спрайтах с высоким разрешением. Они определенно не использовали пиксельную графику для этого. :)
источник