Какая техника анимации используется в Dont Starve? [закрыто]


12

Играя в несколько игр в свободное от разработки время, я наткнулся на игру на выживание 2D / 3D. Игра была, очевидно, сделана в SDL и GLUT (не голодать), но что действительно поразило меня, так это анимация в игре.

Анимации очень плавные и плавные. Во время анимации нет искажений, что обычно происходит в анимациях, созданных вручную, это то, что пиксели удаляются, анимации неровные и просто не такие плавные. Это заставило меня задуматься о том, как им удалось добиться такого качества анимации. Были ли они действительно ручной работы (если они были, значит, это занял очень талантливый художник), это анимация костей или они используют другую технику?


2
Я бы предложил вам связаться с самими разработчиками, чтобы получить такую ​​точную информацию об используемых технологиях. Любой, кто не работал над игрой, может просто договориться, не будучи уверенным.
DogDog

2
Хорошо, задавая этот вопрос, я сделал несколько предположений, а именно: 1. Связь с самими разработчиками имеет очень низкий шанс на успех (зачем кому-то делиться своими секретами со случайным человеком, и сколько времени у них есть, чтобы проверить свою электронную почту). ?) 2. Я могу получить гораздо более быстрый ответ на этом сайте, который состоит из людей, которые имеют многолетний опыт работы и чьи ответы я ценю, даже если это всего лишь предположения и последние из них, сами разработчики могут использовать этот сайт и мог бы ответить на этот вопрос, но это очень далеко.
Bugster

1
Большинство программистов действительно открыто делятся своими знаниями, и я не думаю, что то, как они делают свои 2-мерные анимации, является большим секретом, я думаю, что стоит попробовать. Может быть, если вы расскажете им немного о себе и о том, почему вы хотите, чтобы им было интереснее помочь вам или дать вам совет.
DogDog

1
См. Раздел « Часто задаваемые вопросы о том, какую технологию использует определенная игра ». Задать вопрос о том, как добиться подобного эффекта, было бы гораздо лучше. (Хотя, вероятно, дубликат к чему-то уже на сайте.)
MichaelHouse

Этот вопрос кажется не по теме, потому что речь идет о технологии, используемой другой игрой.
MichaelHouse

Ответы:


40

Меня зовут Кевин, я программист / дизайнер в Klei. Я написал несколько анимационных материалов, которые мы использовали в сериале «Хвостовик», «Знак ниндзя» и «Не голодай».

Наши аниматоры работают во Flash. У нас есть концепция символа «сборка», представляющая собой набор символов части тела с несколькими видами. В зависимости от точности данной игры, есть больше или меньше частей тела с более или менее «видением». Я думаю, что у Шэнка было около 30 частей тела с 1-2 дюжинами видов, в то время как у Уилсона из Don't Starve - около дюжины частей тела с примерно одинаковым количеством видов. Пользовательские сценарии JSFL используются для анализа временных шкал символов флэш-памяти, а затем выпекают соответствующие изображения в виде серии файлов PNG с высоким разрешением вместе с набором метаданных, которые мы помещаем в XML.

Учитывая строение персонажа, наши аниматоры создают новый корневой символ в другом файле, который содержит кусок анимации для этого персонажа. На этой временной шкале они создают персонажа из символов сборки и перемещают его, анимируют и т. Д. Для создания отдельных анимаций (которые разграничиваются с помощью меток кадров). Сценарий exporter экспортирует эти временные шкалы в XML, принимая во внимание 2d-преобразование каждого элемента сборки и то, какое представление он показывает.

Со всей этой информацией, экспортированной в XML и PNG, мы запускаем серию скриптов Python для преобразования их в данные времени выполнения. Один скрипт сокращает, атласирует и обрабатывает все текстуры и преобразует их в (один или несколько) сжатых форматов, специфичных для платформы. Другой скрипт обрабатывает данные анимации XML в более эффективный для загрузки двоичный формат.

Во время выполнения, это действительно просто вопрос отображения правильных символов сборки с правильными преобразованиями и видом.

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

Конечно, технология, которую мы используем, является, вероятно, наименее важным аспектом «Klei Look». Самое главное, что у нас есть куча действительно хороших аниматоров. :)

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


1
спасибо за всестороннее Я думаю, что система, которая у вас есть, действительно помогает создавать отличные высоколиквидные персонажи, которые могут себе представить только малобюджетные команды (и некоторые высокобюджетные команды). Конечно, можно с уверенностью сказать, что если бы вы просто занимались спрайтовым искусством, без интерполяции / трансформации частей тела, или просто трансформации и без состояний / представлений, это было бы не так уж невероятно. Однако, как вы сказали, инструмент хорошо справляется со своей задачей, когда он убирается с дороги и позволяет художнику сиять, что делает Клей много. Я должен сказать, что я любил все ваши вещи, и спасибо за порты для ПК.
Норгард

2
Рад, что смог помочь! Я думаю, что наши художники на самом деле предпочли бы работать в системе, в которой мы просто выпекали каждый кадр в виде спрайта, но тогда мы не смогли бы выполнить замену костюма, а размеры текстур были бы чрезмерными.
Кевин

1
Удивительно, я никогда не думал, что получу ответ от разработчика настоящей игры. Я благодарю вас за то, что нашли время ответить на это. +1
Багстер

7

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

Точное «как» (рабочий процесс / инструменты / и т. Д.) Действительно может исходить только от них, однако, они так и сказали, когда рекламировали «Shank», предварительный релиз.

И если вы посмотрите на Shank / ShankII, Знак ниндзя и Не голодайте, вы заметите, что анимация очень похожа на материал, который может появиться в Nickelodeon.

Я полагаю, что они работают с графами сцен, чтобы сохранить все в порядке, но опять же, это скорее предположение, основанное на сложности и том, что работает для анимации (2d / 3d), чем на гарантии.


Поскольку это всего лишь предположение, оно, вероятно, будет лучше работать в качестве комментария. Не совсем ваша вина, нет никакого способа не угадать, если вы не разработчик. (проблема с вопросом, а не с вашим ответом)
MichaelHouse

Это в значительной степени отвечает на вопрос, который я задал, я имел в виду нечто подобное, но, похоже, вы правы.
Bugster

2

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


2
Больше комментариев, чем ответа, не правда ли?
MichaelHouse

векторная графика в openGL? Это возможно, но я действительно сомневаюсь, что инди-разработчик пошел бы на все.
Эрик Б

1
@EricB Хорошо, это может быть предварительно отрисовано в спрайты или нарисовано от руки и в высоком разрешении. Это определенно не спрайты в «классическом смысле» (то есть в пиксельной графике), как Spelunky и Cave Story.
AturSams

@ Byte56 Я согласен с тобой. Я отвечаю больше о том, как сделать подобные визуальные эффекты, чем то, что сделал их художник на этом.
AturSams

@ Byte56, поскольку на вопрос так сложно ответить, единственно возможными ответами являются предположения, но этот ответ вполне может быть возможным, спасибо.
Bugster
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.