W jaki sposób wykrywanie kolizji i ruch są zazwyczaj obsługiwane w FPS, szczególnie w przypadku niewielkich zmian wysokości gruntu, takich jak schody (zarówno na pochyłości, jak i spadku)?
W jaki sposób wykrywanie kolizji i ruch są zazwyczaj obsługiwane w FPS, szczególnie w przypadku niewielkich zmian wysokości gruntu, takich jak schody (zarówno na pochyłości, jak i spadku)?
Odpowiedzi:
Podmioty zwykle reprezentowane są przez kapsułę (cylinder z kulkami na końcach) przeciw geometrii świata (lub uproszczoną siatkę kolizyjną) w celu zderzenia ze światem.
Schody zwykle albo nie kolidują z niewidzialną rampą, albo poniżej pewnej wysokości zwykle podnosi się jako efekt uboczny rozwiązania kolizji. (dostaniesz wzajemne przenikanie z ruchem w ramach wielkości kroku, a rozdzielczość wyskoczy w górę jako najbliższa płaszczyzna)
Myślę, że tak działa Unreal 3, ale mogę się mylić. Pamiętam, że widziałem hierarchię pól ograniczających w Source, ale nie pamiętam, czy to była tylko walka. niezależnie od tego, kapsułki są proste i szybkie
W Unity 3D najprostszym sposobem jest posiadanie kontrolera z perspektywy pierwszej osoby. Zwykle postać musi podskoczyć, jeśli wysokość kroku jest większa niż przesunięcie kroku. Ale innym sposobem jest dodanie zderzacza pudełek i obrócenie go, aby postać mogła swobodnie prześlizgiwać się po schodach, jak gdyby była to rampa.
Odpowiedź Brady'ego jest dobra, ale jeśli chcesz zrobić hacky sposób, możesz po prostu rzucić promień na geometrię kolizji gruntu, dowiedzieć się, w który trójkąt uderza, a następnie użyć średniej ważonej wysokości wierzchołków trójkąta obliczyć wysokość gruntu.