PhysX — прикрепляйте контроллеры к кинематическим акторам

По умолчанию кинематические акторы в PhysX просто отталкивают контроллеры или игнорируют их:

http://youtu.be/2bJDOjFIrRI

Очевидно, что это нежелательное поведение для таких вещей, как лифты или эскалаторы. Я не уверен, как на самом деле «приклеить» контроллер к платформе, чтобы плеер не упал.

Я попытался добавить кинематическое целевое смещение платформы к вектору смещения при перемещении контроллера на каждом шаге моделирования, однако это не предотвратило «толкание» кинематического актора и было не очень точным.

Как это обычно достигается? В документации упоминается использование препятствий для движущихся платформ, но я не понимаю, как это поможет в данном случае.

Я использую PhysX 3.3.0.


person Silverlan    schedule 12.07.2014    source источник


Ответы (1)


Вы можете создать виртуальную PxScene, которая представляет собой движущуюся платформу. Его пространство будет считаться локальным пространством платформы, поэтому дочерние контроллеры вообще не будут проталкиваться. Кроме того, вы можете добавить коллайдеры, препятствующие перемещению контроллера за пределы платформы.

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

Что касается преимуществ, то вы получите (бесплатно!) точную кинематику актера, стоящего на горизонтально движущейся платформе.

person game development germ    schedule 03.09.2014