FPS Kollisionserkennung und -bewegung

11

Wie wird die Kollisionserkennung und -bewegung in der Regel in einem FPS gehandhabt, insbesondere bei geringfügigen Änderungen der Bodenhöhe wie Treppen (sowohl bei Steigung als auch bei Gefälle)?

Jason Kozak
quelle

Antworten:

12

Entitäten, die typischerweise durch eine Kapsel (Zylinder mit Kugeln an den Enden) gegen die Weltgeometrie (oder ein vereinfachtes Kollisionsnetz) für eine weltweite Kollision dargestellt werden.

Treppen kollidieren normalerweise entweder nicht mit einer unsichtbaren Rampe oder unterhalb einer bestimmten Höhe wird normalerweise als Nebeneffekt der Kollisionsauflösung angehoben. (Sie erhalten eine gegenseitige Durchdringung mit der Bewegung als Teil der Schrittgröße, und die Auflösung wird sie als nächstgelegene Ebene nach oben herausspringen lassen.)

Ich denke, so funktioniert Unreal 3, aber ich könnte mich irren. Ich erinnere mich, dass ich in Source eine Bounding-Box-Hierarchie gesehen habe, aber ich kann mich nicht erinnern, ob das nur für den Kampf war. Unabhängig davon sind Kapseln einfach und schnell

Aaron Brady
quelle
1

In Unity 3D ist es am einfachsten, den First-Person-Controller zu haben. Normalerweise muss das Zeichen nach oben springen, wenn die Schritthöhe höher als der Schrittversatz ist. Eine andere Möglichkeit besteht darin, einen Box-Collider hinzuzufügen und zu drehen, damit der Charakter die Treppe leicht überfliegen kann, als wäre es eine Rampe.


quelle
0

Bradys Antwort ist gut, aber wenn Sie einen hackigen Weg suchen, können Sie einfach einen Strahl auf Ihre Bodenkollisionsgeometrie werfen, herausfinden, auf welches Dreieck es trifft, und dann einen gewichteten Durchschnitt der Höhe der Verts des Dreiecks verwenden um die Bodenhöhe herauszufinden.

BigSandwich
quelle
Was ist, wenn es ein großes, geneigtes Dreieck ist? Kannst du den Schnittpunkt des Strahls nicht irgendwie finden?
Gustavo6046
Sie kennen die Position im Flugzeug bereits, Sie benötigen nur die Höhe, weshalb ich den gewichteten Durchschnitt angegeben habe. Ich empfehle Ihnen, ein Buch über Kollisionserkennung in die Hand zu nehmen, wenn Sie wirklich weiter gehen möchten. Dies ist nicht das beste Format, um Mathematik zu lernen.
BigSandwich
Oh ja. Gewichteter Durchschnitt. Ich glaube, ich habe das irgendwie falsch verstanden. Mein Fehler.
Gustavo6046