Машина не поворачивает в Godot 4

Решил себя попробовать в создании автомобиля, и добавлении его в игровой движок, выбрал Godot 4 так как уже был опыт работы с ним. Посмотрел туторы, покопался в документации, пришел к такому коду автомобиля:

extends VehicleBody3D

@export var MAX_STEER = 1.0
@export var ENGINE_POWER = 300

func _physics_process(delta):
    steering = move_toward(steering, Input.get_axis("move_right", "move_left") * MAX_STEER, delta * 5) # TODO: FIX ROTATION BUG!!!
    engine_force = Input.get_axis("move_forward", "move_back") * ENGINE_POWER

С движением проблем нет, ездит вперед и назад как и должна, но с поворотами начинаются проблемы. Колеса поворачиваются, но сама машина нет, вслед за ними. Выводил в терминал steering: при повороте налево он был 1 при повороте направо он был -1

Были мысли на счёт того, что значение steering очень мало, пытался умножать его но автомобиль при повороте в принципе терял контроль и крутился в пространстве не подчиняясь мне. Также пробовал вариант с тем, чтобы по каждому событию задать steering самостоятельно, вот код с этим подходом:

extends VehicleBody3D

@export var MAX_STEER = 1.0
@export var ENGINE_POWER = 300
@export var STEERING_SPEED = 5
@export var TORQUE_FACTOR = 300

func _physics_process(delta):
    var throttle_input = Input.get_axis("move_forward", "move_back")

    # Повороты 
    if Input.is_action_pressed("move_right"):
        steering = -100
        set_steering(steering)
        
    if Input.is_action_pressed("move_left"):
        steering = 100
        set_steering(steering)
        
    if Input.is_action_pressed("move_right") and Input.is_action_pressed("move_back"):
        steering = 100
        set_steering(steering)
        
    if Input.is_action_pressed("move_left") and Input.is_action_pressed("move_back"):
        steering = -100
        set_steering(steering)
        
    if not Input.is_action_pressed("move_right") and not Input.is_action_pressed("move_left"):
        steering = 0
        set_steering(steering)
    print(steering)

    # Обновление силы двигателя
    engine_force = throttle_input * ENGINE_POWER
    set_engine_force(engine_force)

    # Применение момента силы для поворота автомобиля
    var steering_torque = steering * TORQUE_FACTOR
    apply_torque(Vector3(0, steering_torque, 0))

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

На счёт настроек автомобиля и колес, в них очень долго копался и перебирал много разных вариантов подвески и колеса, центра массы автомобиля или его веса, но тоже безуспешно. Вот так на данный момент выглядят настройки узла VehicleBody3D: введите сюда описание изображения

Так задних колес: введите сюда описание изображения

А так передних колес: введите сюда описание изображения

Центр массы размещен по центру и как можно ниже.

Я перепробовал много вариантов, но ни один не приблизился к результатам из туториалов которые я смотрел даже близко)) Возможно, в Godot 4 недавно появились обновления узлов для автомобиля? Из-за которых старые подходы для его настройки больше не действуют? Буду благодарен за помощь в решении проблемы с поворотом автомобиля.


Ответы (0 шт):