Как сделать машину в unity

Простая машинка в Unity

Урок по созданию простой машинки в среде Unity при помощи компонента WheelCollider. Описаны базовые настройки этого компонента. Для понимания урока необходимы базовые знания среды Unity.

Введение

С английским у меня неплохо, поэтому когда понадобилось сделать машинку в проекте, хватило стандартного примера, однако, хоть и написано, что он «аркадный», все же пример затрагивает гораздо больше вопросов, и один только pdf документ весит 11 мб, а сам пример 212 мб.

Как сделать машину в unity. Смотреть фото Как сделать машину в unity. Смотреть картинку Как сделать машину в unity. Картинка про Как сделать машину в unity. Фото Как сделать машину в unity

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

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

Создаем по шагам

1. Итак создадим четыре пустых объекта для удобной иерархии в нашем объекте:

    carRoot — контейнер для всех элементов машины (геометрия, свет, камеры, объекты для скриптов)
    car — контейнер для объектов именно машины,
    physic — контейнер для физических моделей колес,
    graphic — графические объекты.

Как сделать машину в unity. Смотреть фото Как сделать машину в unity. Смотреть картинку Как сделать машину в unity. Картинка про Как сделать машину в unity. Фото Как сделать машину в unity

2. Добавим в carRoot камеру и закинем на нее стандартный скрипт SmoothFollow, однако на 32 строке добавим или внешнюю переменную angle, или просто добавим поворот на 90 градусов, так как стандартный скрипт заставляет камеру быть сбоку от объекта :

Как сделать машину в unity. Смотреть фото Как сделать машину в unity. Смотреть картинку Как сделать машину в unity. Картинка про Как сделать машину в unity. Фото Как сделать машину в unity

3. в car добавляем компонент RigidBody, его масса — это масса корпуса машины, она будет влиять на устойчивость и на то, насколько сильно он прижимает колеса.

Для того чтобы на поворотах нас не сильно заносило, и при падении машина возвращалась в правильное положение, а не переворачивалась, нам потребуется два изменения — компонент ConstantForce в car, который будет прижимать машину на поворотах, кроме того, переместим центр массы машины вниз, добавив на нее скрипт carControl с кодом вроде этого:

Как сделать машину в unity. Смотреть фото Как сделать машину в unity. Смотреть картинку Как сделать машину в unity. Картинка про Как сделать машину в unity. Фото Как сделать машину в unity

4. В physic создаем пустой объект body с компонентом CapsuleCollider — это будет простой корпус машины, обтекаемый и не дающий застревать в стенках.

Как сделать машину в unity. Смотреть фото Как сделать машину в unity. Смотреть картинку Как сделать машину в unity. Картинка про Как сделать машину в unity. Фото Как сделать машину в unity

5. создаем пустой объект wheel_BL и добавляем ему компонент WheelCollider, и настраиваем его:

    Center — расположение колеса,
    Radius — радиус колеса,
    Suspension Distance — длинна пружин подвески.

Suspension Spring : Spring — сила пружины подвески, чем выше тем сильнее пружинит,
Suspension Spring : Damper — сила амортизатора, делает более плавным движение пружины.

Mass — масса колес, опять же влияет на поведение на заносах, прыжках.

Как сделать машину в unity. Смотреть фото Как сделать машину в unity. Смотреть картинку Как сделать машину в unity. Картинка про Как сделать машину в unity. Фото Как сделать машину в unity

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

Как сделать машину в unity. Смотреть фото Как сделать машину в unity. Смотреть картинку Как сделать машину в unity. Картинка про Как сделать машину в unity. Фото Как сделать машину в unity

6. Раскопируем наше колесо до нужного числа, например, 4 — в принципе, машинка уже готова.

Как сделать машину в unity. Смотреть фото Как сделать машину в unity. Смотреть картинку Как сделать машину в unity. Картинка про Как сделать машину в unity. Фото Как сделать машину в unity

Теперь нам нужно только заставить колеса вращаться с ускорением по нажатию клавиш и поворачиваться, что можно сделать например так :

Заключение

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

Источник

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Как сделать машину в unity. Смотреть фото Как сделать машину в unity. Смотреть картинку Как сделать машину в unity. Картинка про Как сделать машину в unity. Фото Как сделать машину в unity

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

Как сделать машину в unity. Смотреть фото Как сделать машину в unity. Смотреть картинку Как сделать машину в unity. Картинка про Как сделать машину в unity. Фото Как сделать машину в unity

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

Как сделать машину в unity. Смотреть фото Как сделать машину в unity. Смотреть картинку Как сделать машину в unity. Картинка про Как сделать машину в unity. Фото Как сделать машину в unity

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

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

Как сделать машину в unity. Смотреть фото Как сделать машину в unity. Смотреть картинку Как сделать машину в unity. Картинка про Как сделать машину в unity. Фото Как сделать машину в unity

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

Как сделать машину в unity. Смотреть фото Как сделать машину в unity. Смотреть картинку Как сделать машину в unity. Картинка про Как сделать машину в unity. Фото Как сделать машину в unity

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

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

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

Как сделать машину в unity. Смотреть фото Как сделать машину в unity. Смотреть картинку Как сделать машину в unity. Картинка про Как сделать машину в unity. Фото Как сделать машину в unity

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

Как сделать машину в unity. Смотреть фото Как сделать машину в unity. Смотреть картинку Как сделать машину в unity. Картинка про Как сделать машину в unity. Фото Как сделать машину в unity

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

Создадим 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 следующая:

Как сделать машину в unity. Смотреть фото Как сделать машину в unity. Смотреть картинку Как сделать машину в unity. Картинка про Как сделать машину в unity. Фото Как сделать машину в unity

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 у вас должны быть примерно такими:

Как сделать машину в unity. Смотреть фото Как сделать машину в unity. Смотреть картинку Как сделать машину в unity. Картинка про Как сделать машину в unity. Фото Как сделать машину в unity

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

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

Создадим пустой объект для каждого из колёс — (нужно что бы к каждому отдельному колесу применить скрипт 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 в соответствии с нашими колесами.

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

Как сделать машину в unity. Смотреть фото Как сделать машину в unity. Смотреть картинку Как сделать машину в unity. Картинка про Как сделать машину в unity. Фото Как сделать машину в unity

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

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

Как сделать машину в unity. Смотреть фото Как сделать машину в unity. Смотреть картинку Как сделать машину в unity. Картинка про Как сделать машину в unity. Фото Как сделать машину в unity

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

Как сделать машину в unity. Смотреть фото Как сделать машину в unity. Смотреть картинку Как сделать машину в unity. Картинка про Как сделать машину в unity. Фото Как сделать машину в unity

Как сделать машину в unity. Смотреть фото Как сделать машину в unity. Смотреть картинку Как сделать машину в unity. Картинка про Как сделать машину в unity. Фото Как сделать машину в unity

Как сделать машину в unity. Смотреть фото Как сделать машину в unity. Смотреть картинку Как сделать машину в unity. Картинка про Как сделать машину в unity. Фото Как сделать машину в unity

Как сделать машину в unity. Смотреть фото Как сделать машину в unity. Смотреть картинку Как сделать машину в unity. Картинка про Как сделать машину в unity. Фото Как сделать машину в unity

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

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

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

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

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

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

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

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

Как сделать машину в unity. Смотреть фото Как сделать машину в unity. Смотреть картинку Как сделать машину в unity. Картинка про Как сделать машину в unity. Фото Как сделать машину в unity
Как сделать машину в unity. Смотреть фото Как сделать машину в unity. Смотреть картинку Как сделать машину в unity. Картинка про Как сделать машину в unity. Фото Как сделать машину в unity

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

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

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

Как сделать машину в unity. Смотреть фото Как сделать машину в unity. Смотреть картинку Как сделать машину в unity. Картинка про Как сделать машину в unity. Фото Как сделать машину в unity
Как сделать машину в unity. Смотреть фото Как сделать машину в unity. Смотреть картинку Как сделать машину в unity. Картинка про Как сделать машину в unity. Фото Как сделать машину в unity
Как сделать машину в unity. Смотреть фото Как сделать машину в unity. Смотреть картинку Как сделать машину в unity. Картинка про Как сделать машину в unity. Фото Как сделать машину в unity

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

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

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

Как сделать машину в unity. Смотреть фото Как сделать машину в unity. Смотреть картинку Как сделать машину в unity. Картинка про Как сделать машину в unity. Фото Как сделать машину в unity
Как сделать машину в unity. Смотреть фото Как сделать машину в unity. Смотреть картинку Как сделать машину в unity. Картинка про Как сделать машину в unity. Фото Как сделать машину в unity
Как сделать машину в unity. Смотреть фото Как сделать машину в unity. Смотреть картинку Как сделать машину в unity. Картинка про Как сделать машину в unity. Фото Как сделать машину в unity

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

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

Как сделать машину в unity. Смотреть фото Как сделать машину в unity. Смотреть картинку Как сделать машину в unity. Картинка про Как сделать машину в unity. Фото Как сделать машину в unity

Конечно, можно использовать 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.

Как сделать машину в unity. Смотреть фото Как сделать машину в unity. Смотреть картинку Как сделать машину в unity. Картинка про Как сделать машину в unity. Фото Как сделать машину в unity

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

Как сделать машину в unity. Смотреть фото Как сделать машину в unity. Смотреть картинку Как сделать машину в unity. Картинка про Как сделать машину в unity. Фото Как сделать машину в unity

Как сделать машину в unity. Смотреть фото Как сделать машину в unity. Смотреть картинку Как сделать машину в unity. Картинка про Как сделать машину в unity. Фото Как сделать машину в unity

Как сделать машину в unity. Смотреть фото Как сделать машину в unity. Смотреть картинку Как сделать машину в unity. Картинка про Как сделать машину в unity. Фото Как сделать машину в unity

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

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

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

Как сделать машину в unity. Смотреть фото Как сделать машину в unity. Смотреть картинку Как сделать машину в unity. Картинка про Как сделать машину в unity. Фото Как сделать машину в unity

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

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

Источник

Руководство к Car Tutorial (Unity3d) часть 2 из 3

Итак, приступим к изучению нашего руководства.

Часть 2: Тонкая настройка автомобиля

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

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

Главная сила Unity3d является его возможность тонкой настройки (tweakability) — как вы видели, все публичные переменные в скриптах показаны в инспекторе, так что вы можете изменить значения, не изменяя его в коде. И даже более мощные настройки: как только вы сделали изменения, вы можете сразу же увидеть результат изменений. Вам никогда не придется перекомпилировать игру, что бы увидеть результат изменений.

Центр массы

Теперь самая очевидная вещь, которая должна быть оптимальной, что бы автомобиль не смог очень легко перевернуться при повороте (если вы еще не пробовали, то поиграйте снова и ускорьтесь немного, а затем поворачивайте из стороны в сторону, ускоренный автомобиль будет переворачиватся довольно-таки легко). Причина этому переворачиванию является то, что мы еще не где не определили центр массы автомобиля. Все силы, которые применяются к Rigidbody автомобиля, все они применяются и к центру массы в Rigidbody. Поскольку центр массы в автомобиле, как правило является не центром автомобиля (вероятно и не центр массы, которое Unity3d высчитывает), мы хотим установить центр массы сами.

Положение центра масс для автомобиля зависит от размещения двигателя и других факторов, и оно может меняться много раз, от одной модели автомобиля до другой. Для автомобиля в проект данного руководства центр массы может быть немного позади двигателя и немного выше высоты дна автомобиля. Увидеть его положение можно в этой картинке:

Как сделать машину в unity. Смотреть фото Как сделать машину в unity. Смотреть картинку Как сделать машину в unity. Картинка про Как сделать машину в unity. Фото Как сделать машину в unity

• Создайте новый игровой объект и перетащите его в игровой объект автомобиль «Car».
• Переименуйте его в CenterOfMass
• Сбросьте положение координат CenterOfMass (нажмите на маленькую зубчатое колесо справа от Transform (Положение) в
инспекторе и выберите «Reset». Это даст ей такую же позицию, как своего родителя — автомобиля (Car).
• Отрегулируйте положение как вам удобно. Сделайте это путем перетаскивания или задав координаты положения,
хорошая позиция для центра массы этого автомобиля может быть (0, 0.1, 0.65).
• В инспекторе назначьте CenterOfMass в слот для нее в скрипте компонента «Car».

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

Подвеска

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

Характеристики упругого элемента(пружины) и демпфирующего(амортизатор) задают характеристику связи подвижных элементов подвески и кузова. По сути задавая АЧХ этой связи. Таким образом система может быть оптимизирована на поглощение мелких или более крупных неровностей с минимальной потерей контакта шин с поверхностью. Эти параметры также влияют на крены и перераспределение веса между колесами в поворотах, тем самым оказывая значительное влияние на управляемость в разных режимах движения.
Соотношение параметров передней и задней оси определяют характер автомобиля в предельных режимах на повороте(т.н. «поворачиваемость»). Она бывает избыточная(задняя ось сходит с траектории раньше передней), недостаточная(переднюю сносит раньше) и нейтральная(сход с траектории происходит одновременно).

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

Как сделать машину в unity. Смотреть фото Как сделать машину в unity. Смотреть картинку Как сделать машину в unity. Картинка про Как сделать машину в unity. Фото Как сделать машину в unity

Диапазон подвески

Это длина подвески от рамы автомобиля (чем меньше значение тем ближе к раме).

Пружины подвески

Установленное здесь значение определяет жесткость пружины подвески (suspension spring). Установка очень высокого значения сделает более вероятным, что подвеска будет полностью растянута, так что колеса будут далеко от рамы и установка подвески (suspension) очень низкого значения сделает гораздо более оживленным автомобиль. Когда изучите настройки этого значения, то станет ясно, что масса автомобиля также имеет большое значение в установки пружиной подвески (suspension spring). Очень тяжелый автомобиль требуется пружину с большей жесткостью, чем очень легкий автомобиль. Поумолчанию мы установили заднюю пружину подвески (suspension spring ) менее жесткой, чем в передней части и причина в том, что центр массы распределяется более к передней части автомобиля, нуждающиеся в улучшении подвески (suspension). Играя с различными значениями для передней и задней подвески (suspension) может дать очень разные результаты.

Амортизация

Амортизация (Dampening) помогает контролировать движение в подвеске (suspension). Без амортизации (Dampening), пружина подвески (suspension spring) была бы расширена и освободила бы свою энергию на неконтролируемой скорости. Это приведет к крайне неконтролируемому автомобилю. Амортизация (Dampening) во время управлением автомобилем преобразовывает ненужную кинетическую энергию в тепловую, которая будет передана далеко в гидравлическую жидкость, что делает поездку значительно легче.

Множитель сопротивления

Когда мы добавили Rigidbody к машине, мы увидели, что он имел свойство сопротивления (drag). Это сопротивление является инерцией или сопротивлением воздуха, которое влияет на Rigidbody, оно затрудняет движение. Когда автомобиль разрабатывается, много внимания часто уделяется его форме, которая должна сводить к минимуму трение от сопротивления воздуха при движении. Но так как автомобиль предназначен для движения вперед, форма учитывает это — просто взгляните на модель автомобиля в редакторе с фронтальной стороны (Front) и сверху (top) и вы поймете, то что спереди воздух намного больше обтекает автомобиль чем сзади или сбоку.

Мы принимаем это во внимание, создавая свое собственное свойство множитель сопротивления (drag multiplier), который мы используем вместо стандартного свойства сопротивления (drag), встроенного в RigidBody. Взгляните на этот компонент скрипта «Car» в инспекторе, где вы увидите, что мы имеем переменную Drag Multiplier, которая имеет вектора X,Y,Z значения. Это позволяет нам устанавливать различные значения свойства сопротивления (drag) для передней, боковой и верхней части автомобиля, имитируя реальные условия, будто вы за рулем.

Как сделать машину в unity. Смотреть фото Как сделать машину в unity. Смотреть картинку Как сделать машину в unity. Картинка про Как сделать машину в unity. Фото Как сделать машину в unity

• значение X является сопротивление на боковые стороны автомобиля.
• значение Y является сопротивление на крышу автомобиля.
• значение Z является сопротивление на перед автомобиля.

Значение X играет важную роль в управлении силой, предотвращающую машину скользить вбок при повороте. Чем выше значение X, тем больше в сторонах автомобиля сопротивление. Значение Z является на сегодняшний день наиболее интересным, потому что это может привести к снижению или увеличению силы, которая замедляет скорость автомобиля. Если вы установите его на значение менее 1, то вы получите меньше сопротивления, быстрое ускорение и высокую максимальную скорость. Если более 1, то автомобиль должен бороться против более мощной силы, что делает автомобиль более медленным. Значения сопротивления (Drag) очень чувствителен, поэтому мы советуем вам поэкспериментировать с небольшими изменениями для тонкой настройке сопротивления (Drag). Так как автомобиль не должен ездить вверх, значение Y не так интересно, чтобы изменять его. Наиболее важным фактором, который регулирует автомобиль в оси Y, это фактор «сила тяжести», которая влияет на Rigidbody.

Скорость, поворот и коробка передач

Теперь мы дошли до более очевидных переменных, которые также имеют довольно большое влияние на поведение автомобиля. Переменная максимальная скорость (Top Speed) не является легкой задачей: она устанавливает, насколько быстро (или медленно) ваш автомобиль может ездить. Так как наша модель автомобиля намного проще, чем в модели реального автомобиля, на ускорение влияет (кроме сопротивления (drag)), переменная максимальная скорость (Top Speed) также косвенно влияет на ускорение. Созданный автомобиль очень быстро должен достичь высокой скорости. Если вы хотите, играть с максимальной скоростью и ускорением, вы можете попробовать настроить значения максимальная скорость (Top Speed) и переменной Z сопротивления (Drag Z) (сопротивление воздуха в направлении спереди (Front)).

Для включения у нас есть две переменные — максимальный поворот (Maximum Turn) и минимальный поворот (Minimum Turn). Оба значения означают на сколько хорошо автомобиль поворачивает. Высокое значение означает превосходные возможности поворота, а низкое значение означает очень ограниченные возможности поворота. Мы используем их в скрипте автомобиля, чтобы изменить способность автомобиля к более «плавному» повороту автомобиля на высокой скорости.

• При очень низких скоростях, это значение устанавливается для максимального поворота (Maximum Turn).
• Чем выше скорость автомобиля становится, тем ближе «способность поворота» к значению минимальный поворот (Minimum Turn).

Всё это сводится к тому, что когда используется значение по умолчанию для автомобиля (которые равны 10 для минимального поворота (Minimum Turn) и 15 для максимального поворота (Maximum Turn)) является то, что становится все труднее поворачивать когда автомобиль ездит быстро. Это смотрится более реалистично, гарантируя то, что вы не сможете просто въехать на полной скорости в крутой поворот и ожидать, того что машина «въедит» в этот поворот. Вы можете поэкспериментировать с обоими значениями, чтобы сделать автомобиль лучше или хуже при повороте на маленькой или большой скорости.

Наконец то мы дошли до переменой коробка передач ( Number Of Gears). Когда мы доберемся до части, где мы будем изучать скрипт автомобиля (Car) мы увидим, как это используется в расчетах. Так как автомобиль основан на простой модели, трансмиссия не имитирует реальное поведение коробки передач. Тем не менее, она используются для расчета силы двигателя, и возможно, более важно, то что она используется в скрипте управления звуком (controlling the sound) для изменения звука двигателя, основываясь на том какая сейчас передача и как быстро мы в настоящее время ездим. Это создает автомобильный звук на разных передачах, как у реалистичной модели автомобиля. Установка значения коробки передач ( Number Of Gears), просто создает иллюзию через звук, сколько передач автомобиль имеет.

Экспорт автомобиля в виде пака

Если вы следовали руководству и собрали свою собственную версию автомобиля, теперь у вас есть знания, необходимые для ее реализации в своих проектах. Самый простой способ перенести его между проектами, это сделать Unity Package (Unity Пак) из необходимых Prefabs

Во первых мы перетащим автомобиль (Car) в префаб (Prefab), что бы мы могли использовать его повторно, не делая сборку и настройки:

• в панели проекта (Project view) нажмите «Создать» (Create) и выберите «префаб» (Prefab). Вы получите пустой префаб в панели проекта (Project view) под названием «new prefab».
• Переименуйте Prefab на «Race Car» (гоночный автомобиль) (хорошее название) или любое другое имя по своему вкусу.
• Перетащите игровой объект «Car» (автомобиль) из панели иерархии (Hierarchy view) на префаб (Prefab).

Это уже было сделано для вас (находится в Prefabs/Car), но теперь у вас также есть свой собственный вариант автомобиля.

Есть несколько частей, которые необходимы кроме Prefab Car (Автомобильного Префаба) для того, чтобы создать пак, который будет работать с нуля. Это Skidmarks, Main_Camera и Directional_Light_Car_Road. К счастью, они были уже перенесены в Prefabs. Есть также несколько скриптов, которые мы должны включить в наш пак, которые не будут включены, если мы не указываем их: SoundToggler.js, ImageEffects.cs и ImageEffectsBase.cs. Причина в том, что эти скрипты не включены в сцене, но используется с помощью других скриптов, когда игра запущена. Скрипты изображений (ImageEffects.cs и ImageEffectsBase.cs) включены в Pro Standard Assets, но мы их включаем в пак, так что они смогут быть импортированы в совершенно пустой проект и будут работать.

Как сделать машину в unity. Смотреть фото Как сделать машину в unity. Смотреть картинку Как сделать машину в unity. Картинка про Как сделать машину в unity. Фото Как сделать машину в unity

• В панели проекта (Project view) выберите всё из этих пунктов:
• Prefabs/VFX: Directional_Light_Car_Road, Main_Camera, Skidmarks
• scripts/Javascripts: SoundToggler.js
• Pro Standard Assets/Image Based/ImageEffects.cs и ImageEffectsBase.cs
Car Prefab (Автомобильный префаб), который вы создали.
• Нажмите кнопку «Экспортировать пак» (Export package)
• В появившемся всплывающем окне убедитесь, что включить зависимости (Include dependenci) галочка стоит. Это соберет все активы (Assets), которые вы выбрали, а также все зависящие от них активы (Assets), кроме активов (Assets), которые получают доступ только через скрипты.
• Нажмите кнопку «Экспорт» (Export), задав имя для вашего пака и сохраняем!

Процесс импорта вашего автомобиля в собственном проекте:

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

Источник

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

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