Реалистичная физика автомобиля для 3D-игр на рейкаст-подвеске. • 4 независимые подвески: луч от каждого колеса до земли, пружина + демпфер + отбойник. Машина приседает при разгоне, клюёт носом при торможении, кренится в поворотах, прыгает на кочках и мягко приземляется. • Модель шин: продольное и боковое сцепление по нагрузке на колесо, круг трения — машина сносит и заносит, как настоящая. • Привод 4×4, тормоза, задний ход, ручник для заноса, удержание на склоне. • Перенос веса, инерция по трём осям, сопротивление воздуха. • Подшаги ~120 раз в секунду — подвеска не дрожит на любом FPS. • Столкновения со стенами (отскок, разворот от удара углом) и машин друг с другом, счётчик сильных ударов для звука. • Визуал: кузов с тангажом и креном, колёса крутятся, поворачиваются рулём и ходят на подвеске. • Камера-преследователь. • Все параметры — поля компонента: от тяжёлого джипа до лёгкого картинга.
1. Импортируйте ассет. В game.json добавьте: Add Module → vehicleview.json Add System по порядку → vehicle_input.json, vehicle_prep.json, vehicle_physics.json, vehicle_contacts.json, vehicle_view.json 2. Зарегистрируйте действия (Register Action): KeyW → up, KeyS → down, KeyA → left, KeyD → right, Space → jump (ручник). 3. Создайте таблицу veh_boxes с числовыми колонками id, x, y, z, w, h, d. Строка — коробка мира (центр и размеры). Низкие коробки машина считает дорогой (мосты, бордюры, платформы), высокие — стенами. Таблица может быть пустой. 4. Пол — ровная плоскость на высоте поля floorY (по умолчанию 0). 5. Создайте машину: Create Entity → Add vehicle (x, y, z, player = true, camera = true) → Add vehiclePhys → Register Entity 6. Модель собирается из кузова и колеса (левого и правого), колёса — отдельные glb с центром в нуле. Загрузите три модели вложенными Load Model и в последнем вызовите: vehicleview.attach(машина, кузов, колесоЛевое, колесоПравое) scale — масштаб модели, modelZ — сдвиг кузова вдоль машины. 7. Управление: player = true — клавиатура; player = false — задавайте сами throttle (−1…1), steer (−1…1, плюс — влево), handbrake (для ИИ и сцен). camera = true — камера едет за машиной. 8. Что читать: speed (км/ч), x, y, z, yaw, p и r (тангаж и крен), hit (растёт при сильном ударе — повесьте звук), s0…s3 (ход подвески). Настройка (поля компонента vehicle): • колёса: wheelX, wheelFront, wheelRear, radius • подвеска: mount, rest, travel, spring, damper • мотор и тормоза: power, topSpeed, brake, reverse, reverseTop • шины: grip, handbrakeGrip, cornering • руль: steerMax, steerRate, steerFalloff • крен и клевки: comHeight (выше — сильнее) • столкновения: bodyRadius, circleFront, circleMid, circleRear По умолчанию — внедорожник длиной ~4.5 м.