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)?

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


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.


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.


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.