Creando un buen Controlador de personajes 3D

Como parte de mi trabajo en Aventura en el Castillo de Hender he estado investigando mucho sobre la creación de un buen controlador de personajes 3D, en este post quiero compartir algunos recursos y pensamientos sobre el proceso.

Conclusiones Iniciales:

Crear un BUEN controlador 3d:

  • Es difícil, crear un buen controlador toma tiempo y hay que estar dispuesto a trabajar duro.
  • Investiga referentes, busca juegos que tengan controles parecidos a los que tu quieres hacer, y compara videos de tu controlador con videos de tus referentes, esa es la mejor forma de ver que tan cerca (o tan lejos) estas del objetivo.
  • Hay que hacer varias iteraciones y play testear mucho hasta que llegues a un resultado esperado, lo mejor es empezar cada iteración desde cero.
  • Necesitas aprender matematicas de vectores y algunas formulas de fisica, que es un vector, como los sumas, restas, multiplicas, restas, que es el producto escalar? como calcular una velocidad?

revisar estos cuatro puntos de cerca es un gran inicio. Miremos ahora algunos links y videos de apoyo:

Unity 3D Game Kit

Unity Learn | 3D Game Kit | Tutorials | Unity Asset Store
Use Unity Learn | 3D Game Kit from Unity Technologies to elevate your next project. Find this & more Tutorials and templates on the Unity Asset Store.

Este Proyecto de Unity es gratuito en el asset store y te deja observar un juego de aventuras y accion 3d con varias mecanicas ya implementadas, si estas empezando en la creacion de juegos es un buen punto de partida.

  • tiene una pantalla de titulo y menus de pausa
  • tiene un sistema de meele combat basico
  • tiene un controlador configurado con su animador.

El proyecto usa Root Motion para mover al personaje esto quiere decir que el movimiento es manejado por las animaciones, lo cual puede funcionar para cierta clase de juegos. Pero si quieres hacer un controlador realmente preciso revisa otras opciones.

Unity Movement Tutorial de Cat-like Coding:

Unity Movement Tutorials
A series about controlling the movement of a character.

Esta serie de tutoriales cubren la creacion de un controlador de movimiento desde 0 en unity, los considero contenido avanzado por lo rapido que sube la complejidad de los calculos que realizan, pero si quieres tener un entendimiento total sobre generar movimiento en Unity, este es el mejor tutorial que he encontrado.

Game Makers Tool Kit Juego Ensayo

Platformer Toolkit by Game Maker’s Toolkit
From Game Maker’s Toolkit

Este proyecto mitad video juego mitad ensayo es una gran explicacion de los conceptos que se deben tener en cuenta para generar movimiento en unity. Con una explicacion interactiva, lo mejor de todo es que el codigo del proyecto y la forma en que logro el movimiento de su personaje esta disponible para todo el mundo y explicado en su propio blog: https://gmtk.itch.io/platformer-toolkit/devlog/395523/behind-the-code

Kinematic Character Controller:

Kinematic Character Controller | Physics | Unity Asset Store
Get the Kinematic Character Controller package from Philippe St-Amand and speed up your game development process. Find this & other Physics options on the Unity Asset Store.

Este asset solia ser de pago y costar unos 90 usd, pero su creador lo volvio gratuito, se trata de un paquete de "character controller" kinematico que lidia con deteccion de colisiones, plataformas que se mueven y muchos otros casos de eje. En resumen es una mejor version del character controller que viene incluido con Unity.

No es una solucion completa, sobre este paquete se debe escribir la funcionalidad de un controlador propio, haciendo cosas como recibir el input del jugador y calcular la velocidad del movimiento, por lo que tambien es algo avanzado.

Maquinas de Estado:

La ultima parte de mi investigacion tiene que ver con manejar el "estado" del jugador y el movimiento que se ejecuta a cada momento, y lo que he encontrado al respecto son las Maquinas de Estado para Personajes. en youtube hay varias explicaciones sobre como construirlas y utilizaralas Por ejemplo este video:

las palabras claves para poder encontrar este tipo de contenido son "state machine character controllers"

esto es el resumen de mi investigacion actual, espero que si lo has leido te haya sido de ayuda!