Skip to content
  • Политика конфиденциальности
  • Обратная связь

likeauto.ru

Автомобильный портал

  • Безопасность
  • Двигатель
    • Бензиновый двигатель
    • Дизельный двигатель
    • Клапана
    • Масло в двигатель
  • Законодательство
  • Кузов авто
  • Новости
  • Обзоры авто
  • Ремонт авто
  • Страхование
  • Топливная система
    • Гбо
  • Тормозная система
  • Трансмиссия
    • Акпп
    • Вариатор
    • Мкпп
    • Сцепление
  • Ходовая часть
    • Подвеска авто
    • Шины и диски
  • Электрика
    • Электроника
  • Toggle search form
Руководство к Car Tutorial (Unity3d): Изучение альтернативной физической модели (часть 1 из 3)
Posted on 20 декабря 2023 By likeauto_admin Комментариев к записи Руководство к Car Tutorial (Unity3d): Изучение альтернативной физической модели (часть 1 из 3) нет

Содержание

Toggle
  • Руководство к Car Tutorial (Unity3d): Изучение альтернативной физической модели (часть 1 из 3)
    • Изучение альтернативной физической модели:
  • Изучим описание скриптов.
  • Подготовка автомобиля
  • Настройка автомобиля
  • Создание колёс
  • Добавление центра тяжести и коллайдера автомобиля
    • Создание центра тяжести
    • Создание Collider для тела автомобиля
    • Создание Collider для крыши автомобиля
  • Создание и настройка автомобиля
  • Main Camera — настройки

Руководство к Car Tutorial (Unity3d): Изучение альтернативной физической модели (часть 1 из 3)

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

Изучение альтернативной физической модели:

В официальном руководстве говорилось о физике автомобиля, которая имеет упрощенную модель и имеет много недостатков, которые можно прочитать в самом конце Часть 3 руководства. Или посмотреть это видео:

P.S Для тех у кого модели экспортированы, можем сразу же перейти к настройке автомобиля Переход, а так же могут просмотреть видео по настройки автомобиля (дополнение к статье) :

Итак, давайте приступим по-порядку.

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

Изучим описание скриптов.

AerodynamicResistance.cs: Этот скрипт, должен быть добавлен к каждому автомобилю, чтобы вычислить аэродинамическое трение автомобиля.

AntiRollBar.cs: При необходимости добавьте, чтобы имитировать стабилизатор поперечной устойчивости для лучшей управляемости.

CarController.cs: скрипт для обработки управления автомобилем. Этот скрипт необходим для каждого автомобиля. Вы можете редактировать этот скрипт, если вы хотите изменить управление автомобилем или реализовать ИИ. Также устанавливает некоторые характеристики корпуса автомобилей, таких как центр тяжести и инерции.

CarCamera.cs: Скрипт для камеры. Который после настроек будет следить за нашим авто.

Drivetrain.cs: двигатель и трансмиссия автомобиля. Этот скрипт содержит коробку передач и двигатель. Один из скриптов необходимый в автомобиле.

SoundController.cs: Простой класс, чтобы проигрывать звуки автомобиля и другие звуки. Этот скрипт должен быть добавлен на автомобиль.

TractionHelper.cs: При необходимости добавьте этот скрипт на автомобиль, чтобы сделать его более устойчивым.

Wheel.cs: Этот скрипт имитирует модели шин и подвески колес, и действует в качестве замены в Unity встроенного компонента Wheel Collider.

Wing.cs: Добавьте один скрипт или более одного, если вы хотите имитировать прижимную силу аэродинамики для вашего автомобиля.

Подготовка автомобиля

На самом деле это самая важная часть, я столкнулся с рядом проблем в работе физики автомобиля из-за неправильного экспорта. И так давайте сначала познакомимся с системой координат правосторонней и левосторонней.

Blender использует правостороннюю систему координат с осью Z, направленной вверх. Такую систему координат используют почти все САПР. Смотрите рисунок:

image

Unity3d как почти любой другой игровой движок использует левостороннюю систему координат. Когда Y направлен вверх, X — вбок, Z- вперед. Смотрим рисунок:

image

Следовательно сначала для правильного экспорта автомобиля, мы должны для себя уяснить, что Z+ это будет направление в игре когда автомобиль движется вперед, (Z-) — направление когда автомобиль движется назад. (X+-) это направления поворота вбок — но это в Unity, которая использует левостороннюю систему координат. А в правосторонней системе координат (Blender, 3ds max) Y+ это будет направление когда автомобиль смотрит вперед и (X+-) это направления вбок. Это значит что автомобиль должен стоять в сцене так, как на рисунке, в противном случае ждите проблем с физикой:

image

Все параметры вращения должны стоять на 0 для дальнейшей работы и для правильной генерации Меша (Mesh), надо Scale установить по умолчанию. Для этого мы сделаем следующие действия в Blender.

1)Выделим все объекты в сцене (клавиша A)
2)Object>Apply>Rotate & Scale.

image

Теперь все параметры вращения приняты и установлены на 0. А параметры масштабирования (Scale) установлены на по умолчанию (1). Смотрим рисунок:

image

Теперь можем делать «Правильный экспорт» из правосторонней системы координат в левостороннюю систему координат.

1)Выделим все объекты (клавиша A)
2)Жмем последовательность R>X>-90.
3)Object>Apply>Rotate.
4)Жмем последовательность R>X>90.

Обязательно делайте в данной последовательности. Далее экспортируем модель в Unity. File>Export>FBX со следующими настройками:

image

После экспорта модели, идем в папку с этой моделью и копируем папку Textures (папку с текстурами) и наш FBX файл. В папку Assets нашего проект. Это позволит Unity импортировать модель прямо с текстурами, которые были настроены в Blender.

image

Настройка автомобиля

Создадим Prefab и закинем наш объект в Prefab.
1)Вкладка Assets>Create>Prefab
2)Переименуем new prefab в Car
3)Перетащим методом D&D наш Ассет Vaz_2106_mesh в наш Prefab с именем Car.
4)Перетащим методом D&D наш Prefab с именем Car на сцену.

Структура Prefab Car следующая:

image

VAZ2106_Car_body — Содержит множество элементов, это и двери и фары и бампера и т.д (упрощенная структура автомобиля)
VAZ2106_Car_window — Окна автомобиля.
VAZ2106_WheelFL — Переднее левое колесо.
VAZ2106_WheelFR — Переднее правое колесо.
VAZ2106_WheelRL — Заднее левое колесо.
VAZ2106_WheelRR — Заднее правое колесо.

Теперь добавим физику нашему автомобилю.
1) Выделим наш объект — автомобиль (у меня это Car).
2) Перейдем на вкладку Inspector нажмем кнопку Add component>Physics>Rigidbody.
3) Заходим в компонент Rigidbody и делаем настройки (желательно более приближено к оригинальной модели).

В моем случае полная масса автомобиля 1445 кг. Mass= 1445. Все остальные характеристики ставим на 0. т.к они отвечают за сопротивление. А за сопротивление у нас будет отвечать отдельный скрипт AerodynamicResistance.cs.

Настройки Rigidbody у вас должны быть примерно такими:

image

Кроме массы автомобиля.

Создание колёс

Создадим пустой объект для каждого из колёс — (нужно что бы к каждому отдельному колесу применить скрипт Wheel).

1)Правый клик мыши по Prefabs нашего автомобиля > Create Empty
2)Переименуем наш пустой объект с именем GameObject на WheelFL (по аналогии с VAZ2106_WheelFL)
3)Изменим координаты X,Y,Z объекта WheelFL на координаты объекта VAZ2106_WheelFL, а координаты объекта VAZ2106_WheelFL сменим на 0.
4)Перетащим методом D&D наш VAZ2106_WheelFL в объект WheelFL.
5)Повторим пункт 1-4 еще 3 раза меняя название GameObject в соответствии с нашими колесами.

У нас должна получится следующая структура файлов:

image

Далее добавим скрипт Wheel.cs к нашим колесам.
1) Выделим WheelFL перейдем на вкладку inspector.
2) Нажмем кнопку Add component>Script>Wheel.
3) Повторим пунктов 1-2 еще 3 раза к WheelFR, WheelRL, WheelRR.

На каждом колесе должна быть такая структура компонентов:

image

Настройки для колёс.

image

image

image

image

Основные настройки тут:

Radius: — радиус колеса, значение это надо подбирать в зависимости от размера колеса.
Suspresion Travel: — подвеска автомобиля, в прошлых частях речь шла более подробно об этом.
Dumping: — жесткость пружины.

Остальные настройки тоже очень важны, но их я думаю разберем в следующей части.

С колесами закончили.

Добавление центра тяжести и коллайдера автомобиля

Создание центра тяжести

1) Правый клик мыши по Prefabs нашего автомобиля > Create Empty.
2) Переименуем наш пустой объект с именем GameObject на СoG (сокращение center of gravity).
3) Зададим координаты в компоненте Transform объекта CoG так как на рисунках.

Примерно должно выглядеть так:

image
image

Центр тяжести примерно должен быть впереди чуть выше дна автомобиля. но в принципе для каждого автомобиля индивидуально настраивается. Всё это будет отлаживаться во время тестирования.

Создание Collider для тела автомобиля

1) Правый клик мыши по Prefabs нашего автомобиля > Create Empty
2) Переименуем наш пустой объект с именем GameObject на Collider_body
3) Добавим Box Collider компонент. (Add component>Physics>Box Collider)
4) Сделаем настройки компонентов как на рисунке. Возможно у вас будут другие настройки, смотрите как должно покрывать автомобиль Box collider.

image
image
image

Коллайдер нужен для создание столкновений и правильной физики автомобиля.

Создание Collider для крыши автомобиля

1) Правый клик мыши по Prefabs нашего автомобиля > Create Empty.
2) Переименуем наш пустой объект с именем GameObject на Collider_head.
3) Добавим Box Collider компонент (Add component>Physics>Box Collider).
4) Сделаем настройки компонентов как на рисунке. Возможно у вас будут другие настройки, смотрите, как должно покрывать автомобиль Box collider.

image
image
image

Коллайдер нужен для того, что бы, если какой то объект упадет на крышу автомобиля, что бы он взаимодействовал с крышей а не с телом автомобиля.

В общем итоге должно получится что-то вроде этого:

image

Конечно, можно использовать Mesh Collider, но Mesh Collider затребует больше ресурсов чем примитивные объекты. Решать вам.

Создание и настройка автомобиля

Итак, с колесами частично разобрались, настройки колес мы произведем позже, а сейчас мы займемся добавлением компонентов к нашему Prefab car.

1) Выделяем prefab автомобиля.
2) На вкладке inspector жмем кнопку Add Component>Script>Car Controller.

Добавится скрипт CarController и зависимый от него скрип Drivetrain

3) Жмем кнопку Add Component>Script>Sound Controller.
4) Жмем кнопку Add Component>Script>Anti Roll bar.
5) Повторим пункт 4.
6) Жмем кнопку Add Component>Script>Aerodynamic Resistance.
7) Жмем кнопку Add Component>Script>Traction Helper.

image

После того как добавили скрипты, делаем следующие настройки для наших скриптов.

image

image

image

Main Camera — настройки

Осталось последняя часть, сделаем настройки нашей камеры.

1) Жмем кнопку Add Component>Script>Car Camera.
Делаем следующую настройку:

image

Target — объект, на который будет ориентироваться камера.
Height — Высота камеры.
Distance_to_back — дистанции от объекта до камеры.
Distance_from_back — дистанции от объекта до камеры после разгона автомобиля (эффект приближения).

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

  • unity3d уроки
  • c#
  • game development
  • разработка игр
  • tutorial
  • руководство для разработчика

https://habr.com/ru/articles/249363/

Трансмиссия

Навигация по записям

Previous Post: Как прокачать тормоза на jcb
Next Post: Запись музыки на диск – как нарезать mp3 или Audio CD

Related Posts

Автомобили. Конструкция, конструирование и расчет. Трансмиссия » — Литературный гуру Трансмиссия
Привод FWD — что это такое, характеристики и особенности Трансмиссия
Понятие исправного и неисправного технического состояния автомобиля Трансмиссия
RWD, FWD, 4WD или AWD — какие типы привода существуют (и их особенности) Трансмиссия
Неисправности АКПП Трансмиссия
Шасси автомобиля и все,что нужно об этом знать. Трансмиссия

Добавить комментарий Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Свежие записи

  • Строительство дорог в России стало дороже
  • “Серые” автомобили Li Auto в России будут легализованы
  • Прорыв в технологиях: как 3D печать больших размеров меняет промышленность
  • Помощь в оформлении пропусков для грузовых автомобилей: виды, сроки, документы
  • Как снять краску с пластика салона автомобиля

Информация для правообладателей

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

Облако тегов

Ваш браузер не поддерживает тег HTML5 CANVAS.

  • Бензиновый двигатель
  • Акпп
  • Масло в двигатель
  • Тормозная система
  • Ремонт авто
  • Законодательство
  • Электрика
  • Кузов авто
  • Ходовая часть
  • Вариатор
  • Клапана
  • Трансмиссия
  • Подвеска авто
  • Электроника
  • Шины и диски
  • Страхование
  • Новости
  • Гбо
  • Дизельный двигатель
  • Топливная система
Июнь 2025
Пн Вт Ср Чт Пт Сб Вс
 1
2345678
9101112131415
16171819202122
23242526272829
30  
« Май    

Copyright © 2025 likeauto.ru.

Powered by PressBook Media WordPress theme