FPS обнаружение и перемещение столкновений

Как обнаружение и перемещение столкновений обычно обрабатываются в FPS, особенно при незначительных изменениях высоты грунта, таких как лестницы (как наклон и уклон)?

10 голосов | спросил Jason Kozak 21 stEurope/Moscowp30Europe/Moscow09bEurope/MoscowTue, 21 Sep 2010 06:28:15 +0400 2010, 06:28:15

3 ответа


12

Субъекты, типично представляемые капсулой (цилиндр с шарами на концах) против мировой геометрии (или упрощенной сетки столкновений) для мирового столкновения.

Лестницы обычно либо не сталкиваются с невидимым пандусом, либо ниже определенной высоты, вы обычно поднимаете вверх как побочный эффект разрешения столкновения. (вы получите взаимопроникновение с движением как часть размера шага, а разрешение выведет его вверх как ближайшую плоскость)

Я думаю, что так работает Unreal 3, но я могу ошибаться. Я помню, как я видел иерархию ограничивающих ящиков в Source, но я не могу вспомнить, было ли это только для боя. независимо, капсулы просты и быстрые

ответил Aaron Brady 21 stEurope/Moscowp30Europe/Moscow09bEurope/MoscowTue, 21 Sep 2010 06:36:43 +0400 2010, 06:36:43
1

В Unity 3D проще всего иметь контроллер первого лица. Обычно персонаж должен прыгать, если высота шага выше смещения шага. Но другой способ сделать это - добавить коллайдер в коробку и повернуть его так, чтобы персонаж легко скользил по лестнице, как будто это был рамп.

ответил 18 MarpmFri, 18 Mar 2011 20:07:31 +03002011-03-18T20:07:31+03:0008 2011, 20:07:31
0

Ответ Брэди хорош, но если вам нужен хакерский способ сделать это, вы можете просто отбросить луч до геометрии столкновения, выяснить, какой треугольник он наносит, а затем использовать средневзвешенное значение высоты вершины треугольника для определения высоты земли.

ответил BigSandwich 21 stEurope/Moscowp30Europe/Moscow09bEurope/MoscowTue, 21 Sep 2010 10:41:31 +0400 2010, 10:41:31

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132