Tirer la balle hors du pistolet au lieu de la caméra, tout en la gardant précise par rapport au réticule

14

Je travaille sur un jeu à la première personne et j'ai rencontré un problème. Dans mon jeu, il y a le rendu du pistolet du joueur, ainsi qu'un réticule au centre de l'écran - comme ceci:

entrez la description de l'image ici

Tout d'abord, imaginons qu'aucun modèle d'arme à feu n'a été rendu. Il est alors facile de tirer la balle - il vous suffit de faire apparaître la balle exactement là où se trouvent les «yeux» du joueur, puis d'utiliser le trig pour calculer la vitesse en fonction de la direction dans laquelle le joueur regarde.

Mais maintenant, lorsque nous ajoutons le modèle de pistolet ... nous ne pouvons pas simplement faire apparaître la balle là où se trouvent les yeux des joueurs, nous devons la faire apparaître à la pointe du pistolet (non?). Alors vous faites ça, mais ensuite ... comment déplacez-vous la balle de manière à ce qu'elle frappe là où le réticule pointait?

Gardez à l'esprit que la balle dans mon jeu (c'est en fait une fusée, dans ce cas) se déplacera suffisamment lentement pour que son mouvement soit visible, donc une solution de contournement qui fonctionnerait généralement si la balle est trop rapide pour être observée ne fonctionnera pas . Par exemple, si vous ne l'avez pas fait apparaître, il semblerait qu'il sorte du bout de l'arme, le joueur le remarquera certainement.

Aaron
la source
1
La réponse à votre question est, Raycasting =)
Gray
C'est de la fumée et des miroirs; les balles restituées n'ont rien à voir avec le trajet ou le rayon réel de la balle.
congusbongus
@congusbongus Je veux dire, OFC la balle rendue n'a pas besoin d'être exactement alignée avec les mathématiques de la balle elle-même, mais si vous ne le faites pas dans une certaine mesure, cela commence à mal paraître, et c'est là que je suis coincé .
Aaron

Réponses:

20

Tirez un rayon de la caméra à travers le centre / réticule dans le monde. Découvrez où dans le monde il frappe. Tirez la balle de la bouche du pistolet à ce point au lieu de sortir directement du pistolet.

Des points bonus pour animer les mains et le pistolet pour pointer dans cette direction tout en visant autour de sorte que la balle semble toujours tirer directement hors de la bouche au lieu de sortir à un angle.

Si vous faites l'animation, vous pouvez toujours tirer la balle directement hors du museau. Faites simplement de votre mieux pour que le pistolet pointe vers le point que le réticule vise dans des limites raisonnables. Il est également utile d'avoir deux réticules d'une manière qui, naturellement, montre à la fois le centre de l'écran que le joueur essaie de viser et le point que le pistolet vise réellement.

Ou vous pouvez montrer un seul réticule qui est l'endroit où le pistolet visera après avoir terminé l'animation et tirer la balle dans cette direction plutôt que l'endroit où le pistolet vise actuellement dans son animation. De cette façon, le réticule montre toujours ce que le joueur va réellement toucher mais ne prétendra pas que vous pouvez par exemple tirer autour d'un mur simplement parce que la caméra voit quelque chose que le pistolet ne peut pas faire.

Tous ces éléments ont été utilisés dans de vrais jeux. Ce que vous préférez dépendra du style de jeu que vous créez, du compromis entre la simulation et le jeu que vous visez, que ce soit multijoueur ou non, etc.

Sean Middleditch
la source
de nombreux jeux n'utilisent même pas de modèles pour les balles mais tirent simplement un rayon comme mentionné pour vérifier une collision, ce que vous pouvez faire est d'afficher pour les autres joueurs un modèle de pistolet différent de celui qui apparaît dans la vue actuelle des joueurs et d'aligner cela avec l'endroit où la balle est congédié avec le personnage semblant viser vers le bas
Matthew Pigram
Counter-Strike Source utilise cette méthode (elle a des modèles de vue, de joueur et du monde)
Matthew Pigram
-1

Qu'en est-il de se débarrasser du réticule? Ensuite, les balles pouvaient aller en ligne droite avec le pistolet, comme dans la réalité. Viser vers le bas signifierait alors plus car vous aligneriez la cible et le canon du pistolet (moins quelques pouces sur le modèle du joueur).

Jason Reed
la source
Bien que de nombreux jeux fassent quelque chose comme ça, il s'agit d'une décision de conception très large ayant des implications sur l'ensemble du rythme et du combat du jeu.
Katana314
Pour moi, il s'agit plus d'éviter le problème que de le résoudre.
Aaron