El siguiente paso en la carrera de la
integración de todos los elementos en el juego en Unity 5 era la
cámara. He hablado ya mucho de la cámara y le he dado muchas
vueltas, ahora toca la integración y alguna mejora.
Una vez integrado el sistema de la
cámara con todo lo que había hecho hasta ahora solo falta poner una
ruta y probar si la cámara se mueve correctamente por el rail
siguiendo al personaje. Y tengo un primer problema. En este nuevo
proyecto la escala es bastante pequeña, así que el hueco que dejo
entre la posición del personaje y la de la cámara era tan grande que
se me acababa el trozo de escenario que tengo antes de que la cámara
comenzase a moverse. Así que tendría que bajar esa distancia. Puedo
caer en un problema de precisión por usar una escala más pequeña,
pero por ahora funciona. La otra opción era reescalar todo lo que
tenía, modelos, escenarios, potencias, efectos de partículas, es
mucho trabajo.
También he cambiado el movimiento de la cámara para que no sea directo. Hasta ahora al moverse el personaje se triangulaba su posición respecto a la ruta de la cámara y se mueve la cámara al sitio donde debería. Ahora en lugar de mover la cámara directamente se mueve el punto de objetivo de la cámara y se va interpolando la posición de la cámara para que se acerque suavemente al punto objetivo.
He puesto un parámetro para ajustar el
suavizado del acercamiento de la cámara al punto deseado. Y he
estado jugando con ese parámetro y el de distancia de acercamiento
de la cámara al personaje. Si la cámara se adapta lentamente el
jugador quedará muy lejos cuando corra. Y si corre hacia la cámara
incluso podría salir de plano. Si se pone más rápido esa distancia
es menor, pero hay que tener cuidado que al pararse el personaje y
llegar la cámara a destino el personaje no quede cortado en el
plano.
Al final y aprovechando el suavizado
pude poner una cosa que tenía ganas: la distancia de cámara
dependiente de la dirección del personaje. Es algo que me di cuenta
hacían en el Crash Bandicoot y que tiene mucho sentido. Es tan fácil
como alejar la cámara si se anda hacia la cámara y ponerla más
cerca si se anda hacia el fondo. Hice la comprobación con el
producto escalar de los vectores forward de cámara y personaje, y
dependiendo del signo se si el personaje anda hacia el fondo o hacia
cámara y pongo una distancia de cámara u otra, y el suavizado de
cámara se encarga de que esa transición sea más o menos suave.
El resultado final es una cámara más
suave, y que nos da algo de aire si andamos hacia atrás para que
veamos hacia donde vamos, pero sigue de bastante cerca al personaje
si vamos hacia delante para poder ver la acción bien, no demasiado
pequeño.
No hay comentarios :
Publicar un comentario