Skip to content

Conducción

UO269984 edited this page Jan 8, 2022 · 7 revisions

En el segundo y tercer nivel el personaje conducirá un coche por calles en las que aparecerán peepos que cruzarán la carretera y el jugador tendrá que esquivarlo, o no...

Para esto hemos implementado la lógica de conducción de un coche genérico (con dirección delantera) en el archivo CarDriving.cs. El jugador configurado para la conducción se ha añadido a un prefab (CarPlayer.prefab). Ahora cada vez que queramos un nivel con conducción solo tenemos que añadir el prefab y configurar la conducción, indicando la velocidad máxima del coche, el angulo de giro máximo de la dirección, el modelo del coche que se mostrará en el juego, y la posición de los ejes del coche en el modelo.

Controles

Para girar se usa el joystick izquierdo del mando, pudiendo regular cuanto quiere girar el jugador.

Para acelerar, frenar y activar la marcha atrás se usan los gatillos del mando (R2 y L2 en un Dualshock4). De esta forma el jugador puede regular la velocidad a que velocidad quiere ir, y cuanto quiere pisar el freno. La marcha atrás se activa cuando el jugador activa el freno estando el coche parado, y el freno yendo marcha atrás se activa con el acelerador. Con estos controles de marcha atrás tan intuitivos, usados en la mayoría de juegos con conducción arcade (acelerador para ir hacia delante y freno hacia atrás) se busca que el jugador no tenga que aprender a conducir el PeepoCar.

Oculus

En futuras versiones estos controles se añadirán a los gatillos de las oculus quest.

Físicas del coche

Para que el coche se sienta un poco mas real se ha implementado una aceleración y freno dependiente de la velocidad. De esta forma se simula el hecho de que al acelerar a fondo los primeros metros las ruedas derrapan, y una vez que se acerca a la velocidad máxima la aceleración disminuye considerablemente, el motor ya no da mas de si. De forma similar, al final de una frenada el coche pierde agarre y frena menos. También se ha simulado la fricción y el freno motor con una deceleración mucho menor y más progresiva que el freno que se aplica cuando no se está acelerando ni frenando.

Para gestionar las colisiones con los objetos del entono y la gravedad se ha usado un "RigidBody" con coliders personalizados para de coche. Ya que, un Character Controller está pensado para un personaje, y el Capsule Colider que usa por defecto no se puede adaptar a un coche.

El colider principal del coche es un Mesh Colider con una mesh con muy pocos vértices que recubre el PeepoCar excepto en las ruedas. Para estas últimas se han usado cuatro Mesh Colliders independientes. Con todos estos coliders se consigue simular las cuatro ruedas a la hora de pasar por baches y bordillos, para notar como se levanta el PeepoCar de cada una de las ruedas. Para esto no se ha podido usan un único Mesh Collider porque para que funcione con el Rigidbody del PeepoCar tendría que estar en modo Convex, lo que eliminaría la zona del suelo del coche más elevada entre las ruedas, comportándose como una única rueda. Colliders del PeepoCar

Retrovisores

Se han configurado los tres espejos retrovisores para que se vea el reflejo. Esto se ha implementado con tres cámaras posicionadas en los espejos, y un una Render Texture asociada a cada cámara. Estas render textures se han aplicado en el material del espejo, consiguiendo este resultado: Reflejo retrovisores

Sonido

Se han añadido los tres sonidos más característicos de un coche al PeepoCar, acelerar, frenar y el motor en ralentí. Cuando se acelera o se frena, ya sea yendo hacia delante o hacia atrás, se oyen los sonidos correspondientes (acelerador o freno). Cuando no se esta acelerando ni frenando se escucha el motor en ralentí.

Clone this wiki locally