Quiero crear un juego en 2D, pero me gustaría tener el personaje para usar toneladas de equipos diferentes en diferentes combinaciones, como un juego de rol o algo así.
Entonces, digamos que el usuario cambia sus hombros y pantalones, esto debe mostrarse al jugador y todos estos equipos diferentes deben seguir la acción de los diferentes personajes (golpear, ser golpeado, deletrear magia, etc.).
Veo algunos problemas que me gustaría conocer el mejor enfoque / algoritmo / arquitectura para resolver.
1 - Sprites o animaciones
¿Debo crear diferentes sprites para cada equipo en cada animación de acción?
¿Es mejor tener el equipo sprite y animarlo directamente en código como rotar y traducir (usando algo como interpolación en Flash)?
¿Hay alguna otra mejor opción? (Realmente no me gustan las ideas anteriores)
2 - Posiciones
Digamos que durante uno de los movimientos del personaje, comienza a mirar directamente al frente de la vista del jugador, pero termina su movimiento mostrando su lado derecho al jugador (como si balanceara su espada de un lado a otro).
Si consideramos una parte del usuario, como su cabeza, por ejemplo, comienza al frente y luego gira a la izquierda.
Significa al menos 3 posiciones diferentes para cada equipo de cabeza (casco, gorra, lo que sea).
Esto seguramente influye en la respuesta de la pregunta # 1. ¿Cómo es la mejor manera de lograr eso?
3 - Capas
Consideremos un movimiento del personaje donde gira 360 grados con los brazos abiertos. Al comienzo de la animación, su mano derecha está cerca de la vista del usuario y luego, en el medio del movimiento, esto probablemente esté detrás del cuerpo del personaje en la animación.
Cualquiera que sea la opción en la pregunta # 1, seguramente necesita usar algún tipo de modelo de capa para hacer que este sprite o animación comience más cerca de la vista del jugador y luego se aleje de la vista del jugador.
¿Hay alguna buena manera de hacer eso?
Sé que la pregunta es bastante larga y difícil de entender. Avíseme si cree que es mejor tener algunos dibujos para tratar de explicar cuál e intentaré hacerlo.
Respuestas:
Creo que parece que estás buscando un sistema de animación esquelética 2D, ¿quizás? Desafortunadamente, no conozco ningún sistema comercial para eso, ya que ha sido reemplazado en su mayoría por la tendencia del juego 3D-gfx-but-2D-game.
fuente
Como dice Zorba, la mayoría de los juegos retro no hicieron esto específicamente porque necesitarías (con sprites) tener animaciones de múltiples cuadros para cada pieza de equipo.
Algunas alternativas "flojas":
fuente
En juegos antiguos como la serie Ultima, de hecho dibujarían una pieza de equipo en cada pose de personaje posible. La oclusión se trataría no dibujando el equipo (si el guante izquierdo está detrás del sprite del jugador no necesita preocuparse por ello) o simplemente dibujando el equipo en orden de atrás hacia adelante.
Obviamente, esto requería mucha mano de obra y, como resultado, había relativamente pocas piezas de equipo único, con muchas versiones de ese equipo intercambiadas con paleta y modificadas con paleta.
En un juego moderno, recomiendo encarecidamente hacer personajes en 3D. Si desea arte de aspecto 2D o su plataforma no tiene la potencia para el 3D real, es probable que sea mejor modelar todo en 3D, renderizar y luego ajustar el resultado final a mano.
Alternativamente, si decide que no necesita ajustes, no tiene potencia para el 3D completo, pero no desea enviar una gran biblioteca de sprites, puede empaquetar los modelos 3D y convertirlos en una textura en tiempo real cuando sepa El modelo está a punto de aparecer en el juego.
fuente
Consulte el libro de James Da Silva donde explica cómo hizo The Dishwasher: Dead Samurai. Te mostrará cómo KISS puede resolver esto. La sugerencia de usar animaciones esqueléticas en 3D o 2D son válidas y están en el mismo ámbito.
fuente
Esta es una gran pregunta, pero creo que la ha respondido usted mismo: necesita un sistema de huesos 2D que admita capas de cambio de huesos, de modo que diferentes miembros puedan ir uno detrás del otro a medida que el personaje gira. También necesitarás dibujar tus sprites desde 4 u 8 ángulos (o cuantos necesites). Dependiendo de las habilidades que tenga en su equipo, podría ser más fácil crear estos activos en 3D y renderizarlos desde los ángulos que necesita.
Usar un motor 3D también es una buena solución, aunque esto traerá su propio conjunto de desafíos.
fuente