¿Qué técnica de animación se usa en 'Dont Starve'? [cerrado]

12

Mientras jugaba algunos juegos en mi tiempo libre personal, me topé con un juego de supervivencia 2D / 3D de supervivencia. Aparentemente, el juego se hizo en SDL y GLUT (no se muera de hambre), pero lo que realmente me sorprendió fueron las animaciones en el juego.

Las animaciones son extremadamente suaves y fluidas. No hay distorsión durante la animación, lo que generalmente sucede en las animaciones hechas a mano es que los píxeles se eliminan, las animaciones son irregulares y simplemente no son tan suaves. Eso me hizo pensar en cómo lograron lograr tal calidad de animaciones. Fueron realmente hechos a mano (si lo fueron, entonces debe haber tenido un artista muy talentoso), ¿es una animación ósea o están utilizando otra técnica?

Bugster
fuente
2
Sugeriría que se ponga en contacto con los propios desarrolladores para obtener información tan precisa sobre las tecnologías utilizadas. Cualquiera que no haya trabajado en el juego puede estipular sin estar seguro.
DogDog el
2
Bueno, cuando hice esta pregunta, hice algunas suposiciones, que son: 1. Contactar a los desarrolladores tiene muy pocas posibilidades de éxito (¿por qué alguien compartiría sus secretos con una persona al azar y cuánto tiempo tienen para revisar sus correos electrónicos? ?) 2. Puedo obtener una respuesta mucho más rápida en este sitio web, que consiste en personas que tienen años de experiencia y cuyas respuestas valoro, incluso si son meras especulaciones y, por último, los propios desarrolladores pueden estar usando este sitio y podría responder esta pregunta, pero eso está muy lejos.
Bugster
1
La mayoría de los programadores están realmente abiertos a compartir sus conocimientos, y no creo que la forma en que hacen sus animaciones 2D sea un secreto, creo que vale la pena intentarlo. Tal vez si les cuentas un poco sobre ti y por qué quieres que sean más interesantes para ayudarte o darte consejos.
DogDog
1
Consulte las preguntas frecuentes sobre " qué tecnología utiliza un juego en particular ". Preguntar cómo lograr un efecto similar sería una pregunta mucho mejor. (Aunque probablemente sea un duplicado de algo que ya está en el sitio.)
MichaelHouse
Esta pregunta parece estar fuera de tema porque se trata de la tecnología que usa otro juego.
MichaelHouse

Respuestas:

40

Mi nombre es Kevin y soy programador / diseñador en Klei. Escribí un montón de material de animación que usamos en la serie Shank, Mark of the Ninja y Don't Starve.

Nuestros animadores trabajan en Flash. Tenemos el concepto de un personaje 'construir' que es un conjunto de símbolos de partes del cuerpo con múltiples vistas. Dependiendo de la fidelidad del juego dado, hay más o menos partes del cuerpo con más o menos "vista". Creo que Shank tenía aproximadamente 30 partes del cuerpo con 1-2 docenas de vistas cada una, mientras que Wilson de Don't Starve tiene aproximadamente una docena de partes del cuerpo con solo la misma cantidad de vistas. Las secuencias de comandos JSFL personalizadas se utilizan para analizar las líneas de tiempo de los símbolos flash y luego hornear las imágenes relevantes como una serie de archivos PNG de alta resolución, junto con un montón de metadatos que pegamos en un XML.

Dada la construcción de un personaje, nuestros animadores crean un nuevo símbolo raíz en otro archivo para contener una porción de animación para ese personaje. En esa línea de tiempo, crean el personaje a partir de símbolos de construcción y lo mueven, lo interpolan, etc. para crear animaciones individuales (que se delimitan con etiquetas de fotogramas). El script del exportador exporta estas líneas de tiempo a XML, tomando nota de la transformación 2D de cada pieza de construcción, y qué vista se muestra.

Con toda esta información exportada a XML y PNG, ejecutamos una serie de scripts de Python para convertirlos en datos de tiempo de ejecución. Un script reduce el tamaño, atlas y mips todas las texturas y las convierte a (uno o más) formatos comprimidos específicos de la plataforma. Otro script procesa los datos de animación XML en un formato binario más eficiente para cargar.

En tiempo de ejecución, en realidad solo se trata de mostrar los símbolos de compilación correctos con las transformaciones y vistas correctas.

La construcción de este sistema tardó mucho tiempo y se ha perfeccionado a medida que lo hemos movido de un juego a otro. Hay muchos detalles que estoy pasando por alto (como la forma en que manejamos las capas y el intercambio de disfraces en tiempo de ejecución), pero ese es el esquema general.

Por supuesto, la tecnología que usamos es probablemente el aspecto menos importante de la 'Klei Look'. La parte más importante es que tenemos un montón de animadores realmente buenos. :)

De todos modos, espero que esto ayude. Si tiene más preguntas sobre Don't Starve, puede pasar por nuestros foros, donde generalmente estoy muy contento de hablar de compras.

Kevin
fuente
1
Gracias por la profundidad. Creo que el sistema que tiene realmente ayuda a facilitar una gran cantidad de personajes altamente fluidos, que la mayoría de los equipos de bajo presupuesto (y algunos equipos de alto presupuesto) solo podrían imaginar. Es seguro decir que si solo estuvieras haciendo sprite art, sin interpolación / transformaciones de partes del cuerpo, o simplemente transformaciones y sin estados / vistas, no sería tan increíble. Sin embargo, como dijiste, una herramienta está haciendo un buen trabajo cuando se sale del camino y permite que el artista brille, lo que Klei hace mucho. Debo decir que me han encantado todas tus cosas y gracias por los puertos de PC.
Norguard
2
Me alegro de poder ayudar! Creo que nuestros artistas en realidad preferirían trabajar bajo un sistema en el que acabamos de hornear cada cuadro como un sprite, pero luego no seríamos capaces de intercambiar disfraces, y los tamaños de textura serían prohibitivos.
Kevin
1
Increíble, nunca pensé que obtendría una respuesta de un desarrollador del juego real. Le agradezco por tomarse el tiempo para responder esto. +1
Bugster
7

Klei generalmente usa una combinación realmente agradable de animaciones esqueléticas y cambios de sprites.
Armaron un esqueleto, aplicaron sprites a los huesos y luego intercambiaron sprites como lo requiere un marco de animación.

El "cómo" exacto (flujo de trabajo / herramientas / etc.) en realidad solo puede provenir de ellos, sin embargo, ellos mismos lo dijeron al anunciar "Shank", prelanzamiento.

Y si miras Shank / ShankII, Mark of the Ninja y Don't Starve, notarás que la animación se parece mucho a las cosas que podrían salir de Nickelodeon.

Me imagino que también están trabajando con gráficos de escenas para mantener todo cuerdo, pero nuevamente, eso es más una suposición basada en la complejidad y lo que funciona para la animación (2d / 3d) que una garantía.

Norguard
fuente
Dado que esto es solo una suposición, probablemente funcionaría mejor como comentario. No es realmente tu culpa, no hay forma de no adivinar a menos que seas el desarrollador. (problema con la pregunta, no su respuesta)
MichaelHouse
Esto responde a la pregunta que hice, tenía algo similar en mente, pero parece que tienes razón.
Bugster
2

Creo que definitivamente usan animación de huesos. También usan sprites de alta resolución (para evitar irregularidades) o usan algún tipo de gráficos vectoriales. Es completamente posible, ellos pre-renderizaron gráficos vectoriales en sprites de alta resolución. Definitivamente no usaron pixel art para este. :)

AturSams
fuente
2
¿Más de un comentario que una respuesta no dirías?
MichaelHouse
gráficos vectoriales en openGL? Es posible, pero realmente dudo que un desarrollador independiente llegue a tal extremo.
Eric B el
1
@EricB Muy bien, puede ser renderizado previamente en sprites o puede ser dibujado a mano y renderizado en alta resolución. Definitivamente no son sprites en el "sentido clásico" (es decir, el arte de píxeles) como Spelunky y Cave Story.
AturSams
@ Byte56 Estoy de acuerdo contigo. Estoy respondiendo más sobre cómo lograr imágenes similares que lo que hizo su artista en este caso.
AturSams
@ Byte56 ya que la pregunta es tan difícil de responder, las únicas respuestas viables son suposiciones, pero esta respuesta podría ser una posibilidad, gracias.
Bugster