Unity 6.3
0 онлайн 72 гостей 3 в системе
Вход
Физика Шаг 28 из 99

Введение в колесные коллайдеры

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

Компонент колесного коллайдера представлен в API в качестве WheelCollider class.

Колесо коллайдера raycast

Колесный коллайдер появляется в представлении Scene как круг 2D (см. Визуализация колесного коллайдера). Однако на самом деле это одиночный Физика проецирования луча. PhysX проецирует луч вниз по локальной оси Y в направлении подвески через центр колеса. Начало и конец проецирования луча находятся в следующих точках:

  • Поток лучей начинается чуть выше верхней части колеса при максимальном сжатии подвески (т.е. чуть за пределами Радиус, в верхней части Расстояние подвеса по оси Y).
  • Луч заканчивается чуть ниже нижней части колеса при максимальном выдвижении подвески (т.е. чуть за пределами Радиус, в нижней части Расстояние подвеса по оси Y).

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

Более подробную информацию о настройке рассеивания лучей коллайдера колес в PhysX см. в документации по PhysX 4.1 транспортным средствам SDK.

Подготовка почвы для колесных коллайдеров для рассеивания лучей

Важным следствием настройки raycast является то, что колеса не всегда плавно катятся вверх или вниз при изменениях уровня дороги (например, катятся с дороги на ступеньку). При столкновении с ступенью или бордюром, колесо, вероятно, заклинивает и затем «всплывает» только тогда, когда центральная линия пересекает ступеньку:

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

Потоки лучей также могут скользить вниз в небольшие капли или ступеньки на дороге, когда центральная точка достигает их:

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

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

Визуализация колесного коллайдера

Когда вы выбираете коллайдер колес, в представлении Scene отображается гаджета, который предоставляет визуализацию некоторых ключевых свойств коллайдера колес.

Одиночный гаджет коллайдера колес в представлении Scene. На этом скриншоте все меши отключены, чтобы четко отобразить гаджет.
Одиночный гаджет коллайдера колес в представлении Scene. На этом скриншоте все меши отключены, чтобы четко отобразить гаджет.

Визуальные показатели гаджета следующие:

  • Большой круг 2D: Представляет размер колеса физики. Чтобы изменить размер, используйте свойство коллайдера Wheel Радиус.
  • Горизонтальная зеленая линия: представляет собой середину колесного коллайдера вдоль оси X. Угол этой линии представляет собой вращение колеса.
  • Маленькая сфера 3D: Представляет точку, в которой применяются силы колеса. Чтобы изменить это значение, используйте свойство коллайдера колеса Force Applic Point Distance.
  • Вертикальная оранжевая линия: Верхняя и нижняя точки линии представляют максимальное расстояние, на которое колесо может перемещаться вверх и вниз (по вертикальной оси Y) от своей центральной точки в результате действия на него сил. Чтобы изменить это значение, используйте свойство коллайдера колес Расстояние подвески. Точка, где оранжевая линия пересекает зеленую линию, представляет собой точку «отдыха», где колесо находится, когда на него не действуют силы или действуют равные силы. Чтобы изменить это значение, используйте свойство коллайдера колес Положение цели.

Вы можете использовать визуализацию гаджета для быстрой справки и отладки.