Segundo prototipo de cámara en tercera persona

Ayer me dediqué otra vez a trabajar en un prototipo con cámara en 3ra persona. Me estoy volviendo reiterativo con esto, pero al final me di cuenta que copiar el sistema de The Witcher 3 no iba a servir para un juego cuya mecánica sería más parecida a Dragon Age. O sea, estaba copiando el sistema incorrecto, aunque existe una justificación para eso: no estoy implementando un juego como tal con un diseño definido y aprobado. Además, el conocimiento adquirido me sirvió para esta segunda iteración.
Una vez concluido mi esfuerzo por justificar lo injustificable, pasemos a los detalles técnicos. Dragon Age: Inquisition utiliza un esquema clásico de los primeros RPGs en tercera persona: usamos el mouse para seleccionar objetivos o utilizar la barra de acciones rápidas (esencial este detalle). La rotación y movimiento de la cámara/personaje se controla mediante las teclas WASD. Tenemos una forma de reubicar la cámara, manteniendo presionado un botón del mouse. O sea, sí tenemos un free look, pero funciona cuando queremos, no todo el tiempo. También A/D rotan la vista de la cámara, aunque no el personaje, que rota solo al avanzar.
The Witcher 2/3 y Mass Effect usan una vista libre permamente porque el número de habilidades que podemos usar es limitado. The Witcher tiene las señales y bombas, mientras que Mass Effect ofrece una pequeña barra con 4-5 botones que se activa al presionar una tecla que también pausa el juego mientras seleccionamos la acción a ejecutar.
En el caso específico que me atañe, la idea era ofrecer múltiples habilidades, dependientes de la clase o especialización del personaje, pero al mismo tiempo permitir explorar más que lo que queda frente al jugador. Una de las ventajas de la vista en 3ra o 1ra persona es que da la posibilidad de mostrarle al jugador escenas más ricas, por ejemplo, poniendo contenido no solo a nivel del suelo, sino también más alto.
Me tomó apenas unos minutos hacerlo, usando como base el código anterior. Todo el sistema lo monté en un solo script, del cual sacaré también la parte de raycasting, que iría a la lógica de juego, como debe ser. En caso de que lo integre en un juego real, claro.

Comentarios