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:
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.
Réponses:
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.
la source
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).
la source