Estoy trabajando en un juego en primera persona y me he encontrado con un problema. En mi juego, se muestra el arma del jugador, así como una retícula en el centro de la pantalla, como esta:
Primero, imaginemos que no se renderizó ningún modelo de arma. Luego disparar la bala es fácil: solo genera la bala exactamente donde están los "ojos" del jugador, y luego usa trigonométrico para calcular la velocidad en función de la dirección que esté mirando el jugador.
Pero ahora, cuando agregamos el modelo de arma ... no podemos generar la bala donde están los ojos de los jugadores, tenemos que generarla en la punta de la pistola (¿verdad?). Entonces haces eso, pero entonces ... ¿cómo mueves la bala de manera que golpee donde sea que apuntara la retícula?
Tenga en cuenta que la bala en mi juego (en realidad es un cohete, en este caso) se moverá lo suficientemente lento como para que se pueda ver su movimiento, por lo que alguna solución que generalmente funcionaría si la bala es demasiado rápida para ser observada no funcionará . Por ejemplo, si no lo engendraste para que parezca que sale de la punta del arma, el jugador definitivamente lo notará.
fuente
Respuestas:
Dispara un rayo desde la cámara a través del centro / retícula al mundo. Descubra en qué parte del mundo golpea. Dispara la bala desde el cañón de la pistola en ese punto en lugar de sacarla directamente de la pistola.
Puntos de bonificación por animar las manos y la pistola para que apunten en esa dirección mientras apuntan para que la bala todavía parezca disparar directamente desde el hocico en lugar de salir en ángulo.
Si haces la animación, siempre puedes disparar la bala directamente del hocico. Solo haz tu mejor esfuerzo para que la pistola apunte al punto al que apunta la retícula dentro de límites razonables. También es útil tener dos retículas de manera que, naturalmente, muestren el centro de la pantalla al que el jugador está tratando de apuntar y el punto al que apunta realmente el arma.
O puede mostrar una retícula única que es donde apuntará el arma después de terminar la animación y disparar la bala en esa dirección en lugar del lugar donde el arma apunta actualmente en su animación. De esta manera, la retícula siempre muestra lo que el jugador realmente golpeará pero no pretenderá que, por ejemplo, puede disparar alrededor de una pared solo porque la cámara ve algo que el arma no puede hacer.
Todos estos se han utilizado en juegos reales. Lo que prefiera dependerá del estilo de juego que esté haciendo, qué compensación entre la simulación y el juego que está buscando, ya sea multijugador o no, etc.
fuente
¿Qué hay de deshacerse de la retícula? Entonces, las balas podrían ir en línea recta desde el arma, como en la realidad. Apuntar hacia abajo significaría más, ya que alinearías el objetivo y el cañón del arma (menos unas pocas pulgadas en el modelo del jugador).
fuente