Détection et mouvement de collision FPS

11

Comment la détection des collisions et les mouvements sont-ils généralement gérés dans un FPS, en particulier pour gérer de légers changements de hauteur du sol tels que les escaliers (à la fois en pente et en pente)?

Jason Kozak
la source

Réponses:

12

Entités généralement représentées par une capsule (cylindre avec des sphères aux extrémités) contre la géométrie du monde (ou un maillage de collision simplifié) pour une collision mondiale.

Les escaliers sont généralement sans collision avec une rampe invisible, ou en dessous d'une certaine hauteur, vous obtenez généralement un soulèvement comme effet secondaire de la résolution de la collision. (vous obtiendrez une interpénétration avec le mouvement dans le cadre de la taille du pas, et la résolution le fera apparaître vers le haut en tant que plan le plus proche)

Je pense que c'est ainsi que fonctionne Unreal 3, mais je peux me tromper. Je me souviens avoir vu une hiérarchie de boîte englobante dans Source, mais je ne me souviens pas si c'était juste pour le combat. peu importe, les capsules sont simples et rapides

Aaron Brady
la source
1

Dans Unity 3D, le moyen le plus simple est d'avoir le contrôleur à la première personne. Habituellement, le personnage doit sauter si la hauteur du pas est supérieure au décalage du pas. Mais une autre façon de le faire est d'ajouter un collisionneur de boîtes et de le faire pivoter afin que le personnage puisse facilement parcourir les escaliers, comme s'il s'agissait d'une rampe.


la source
0

La réponse de Brady est bonne, mais si vous voulez un moyen hacky de le faire, vous pouvez simplement lancer un rayon vers la géométrie de collision de votre terrain, déterminer le triangle qu'il frappe, puis utiliser une moyenne pondérée de la hauteur des verts du triangle pour déterminer la hauteur du sol.

BigSandwich
la source
Et si c'est un grand triangle incliné? Vous ne trouvez pas en quelque sorte le point d'intersection du rayon?
Gustavo6046
Vous connaissez déjà la position dans l'avion, vous avez juste besoin de la hauteur, c'est pourquoi j'ai spécifié la moyenne pondérée. Je vous recommande de prendre un livre sur la détection des collisions si vous voulez vraiment aller plus loin. Ce n'est pas le meilleur format pour apprendre les mathématiques.
BigSandwich
Oh oui. Moyenne pondérée . Je pense que j'ai mal interprété cela. Ma faute.
Gustavo6046