
Sense títol
Resumen del proyecto y explicación
En esta entrega he desarrollado un pequeño juego de peleas ambientado en un evento de wrestling. Para ello, el escenario se asemeja a un estadio lleno de personas donde los asistentes pueden ver a los luchadores tanto subidos al ring como en tiempo real en las pantallas del evento y desde diferentes ángulos.
Para el desarrollo, he empezado implementando un movimiento básico con el componente Character Controller, ya que para este tipo de juego (o por lo menos con mecánicas tan simples) no son necesarias las físicas. Una vez hecho esto, el siguiente paso fue organizar el Animator.
En el diagrama, creé un estado por cada una de las animaciones que hice en la entrega anterior. Siendo el estado base la animación “idle”, esta tiene transición tanto de entrada como de salida con el estado “walk”, ya que es manejado por un parámetro de tipo booleano que cambia de estado según si el personaje se está moviendo o no. El resto de animaciones, como son acciones instantáneas y que no se mantienen, están enlazadas con el estado “any state” de forma que en cualquier estado puede transicionar a “attack”, “kill” o “defend” al triggerear cualquiera de las variables correspondientes.
Esto lleva a un problema, ya que lo esperado es que pueda atacar o defenderse mientras está parado o andando, pero teniendo la transición en “any state” también puede hacerlo a mitad de ataque o defensa, cosa que no se quiere. Para solucionarlo y desde el código, se han implementado estados en los personajes de los que entra y sale al principio y fin de cada animación.
Para el manejo de los estados, se hizo uso de los eventos en las animaciones. Con una función ya preparada en el script del personaje que prepara la entrada y salida del estado PlayerState. De esta forma, antes de lanzar cualquier otra acción, se comprobará si el jugador no está ya en otra para no interrumpirla.
Con estos mismos eventos, pero con otra función, también se detecta la colisión del ataque de un jugador contra el otro, lanzando un evento que detecta la colisión en X frame de la animación.
Conclusiones de las entregas
Crear los assets para el juego y sus animaciones ha sido un proceso nuevo para mi que me ha hecho tener curiosidad y ganas de aprender nuevas técnicas y crear nuevos assets para los próximos proyectos que haga. Aunque por otro lado me ha costado entender trabajos como el rigging y el pintado de pesos y como estos repercuten en el modelo, otros aspectos como el modelado en sí y el despliegue y pintado de UVs ha sido bastante divertido, ya que podía plasmar directamente mis ideas. Y para esta última entrega, como ya tenía experiencia con Unity y en el desarrollo de proyectos, el proceso ha sido básicamente juntar lo viejo conocido con lo nuevo, creando algo con lo que estoy bastante satisfecho.
Visión de futuro
En el caso de encontrar un equipo de arte más extenso, que no consistiera en mi, y ayuda en el desarrollo, se podrían abarcar las siguiente mejoras:
- Sistema de combos que no estuviera limitado a atacar y defenderse, consistiendo en combinaciones de ataques ligeros y pesados como pasa en otros juegos de peleas.
- Modularización de los robots, creando previamente al combate una pantalla que dejase elegir de 3-4 partes básicas del robot (torso, brazo izquierdo y derecho y tipo de piernas) otorgando estadísticas en base a las partes elegidas y sus sinergias.
- Nuevos escenarios en los que pelear
- Mejor diseño sonoro, donde los sonidos tengan coherencia entre sí.
- Creación de modo contra la IA y otro online, los cuales llevarían bastante tiempo.
Recursos utilizados
Assets
Interfaz:
https://www.kenney.nl/assets/ui-pack-sci-fi
Música y sonidos
Música juego:
https://freesound.org/people/levelclearer/sounds/346200/
Sonido de gente animando:
https://freesound.org/people/ken788/sounds/386762/
Sonido ataque:
https://freesound.org/people/Riley_Garinger/sounds/726620/
Sonido defensa:
https://freesound.org/people/kyles/sounds/452620/
Sonido fin de ronda
https://freesound.org/people/BennettFilmTeacher/sounds/523788/
Sonido movimiento robot derecha:
https://freesound.org/people/ChrisGrundlingh/sounds/765635/
Sonido movimiento robot izquierda
https://freesound.org/people/craigsmith/sounds/675727/
Debatcontribution 0el Sense títol