Unturned
25 个评价
Создание мода на транспорт для игры Unturned
由 X-RAY 制作
Это руководство расскажет вам, о том как создать свой транспорт для игры Unturned. Здесь я вам расскажу, о работе в Unity и дальнейшего экспорта, настройки мода. О моделировании в данном руководстве рассказываться не будет, с этим вы можете ознакомиться сами, поискав информацию в интернете.
   
奖励
收藏
已收藏
取消收藏
Подготовка к созданию
Загрузка Unity Hub
Для начала работы нам необходимо скачать и установить Unity hub. Для этого нам необходимо перейти на официальный сайт[unity3d.com] Unity и скачать Unity hub.

Установка Unity Hub
Теперь нам необходимо установить Unity, на наш компьютер. Для этого запускаем наш только что скаченный файл, после нажимаем на кнопку принять в нижнем правом углу. У нас появляется путь установки, который при желании можно изменить. После нажимаем на кнопку установить, и ждём некоторое время. После успешной установки закрываем программу установки. 

Скачивание самого Unity
Теперь для того чтобы нам скачать программу, необходимо зайти в Unity Hub, перейти в раздел Installs, нажать на кнопку Install Editor, и выбрать версию 2019.4.34f1. Дожидаемся полной установки, это довольно долгий процесс

Создание проекта
После загрузки Unity, нам необходимо создать проект в Unity. Для этого заходим в Unity hub, нажимаем на кнопку New project в верхнем правом углу, выбираем проект 3d core, меняем название проекта, и нажимаем на кнопку Create project.

Импортирование необходимых ресурсов в Unity проект
После того как мы создали проект в Unity, заходим в него, важно что бы Unity был открыт при импорте файлов. Нам нужно импортировать все необходимые ресурсы, для создания и экспорта нашего мода. Заходим в steam библиотеку, нажимаем правой кнопкой мыши по иконе игры, далее свойства, локальные файлы. У нас откроется папка с игрой Unturned, открываем Bundles, Sources. У нас будут 2 файла ExampleAssets и Project, необходимо загрузить оба файла в наш проект Unity. Для этого жмём по одному из них 2 раза левой кнопкой мыши, после у нас выскакивает окно, в котором необходимо выбрать программу, выбираем Unity. После у нас откроется Unity, и начнёт загрузку. После загрузки, у нас появится окно, в правом нижнем углу которого, необходимо нажать на кнопку Import. Unity начнёт загрузку файлов. После успешной загрузки, повторяем то же самое с другим файлом.


Проект готов для работы !
Подготовка Unity иерархии, для создания транспорта
Перед началом создания, нам необходимо создать иерархию, для будущего экспорта в MasterBundle и редактирования Vehicle. Для начала, нам необходим создать папку с любым названием. Для этого нажимаем правой кнопкой мышки, по нижней серой области, выскакивает большое окно, вверху которого нажимаем на кнопку Create, далее тоже вверху выбираем Folder. У нас создалась папка, нажимаем правой кнопкой мыши, по только что созданной папке, у нас появляется большое окно, где необходимо нажать на Rename и ввести желаемое вами название. После создание папки, нам необходимо внутри только что созданной папки создать ещё одну папку с другим названием. После создаём папку Bundles, внутри которой необходимо создать папку Vehicles. Теперь нам необходимо вернуться в начало проекта, и перейти по пути Coremasterbundle/Vehicles, ищем папку с названием Police_German, нажимаем правой кнопкой мыши, по папке Police_German, у нас появляется большое окно в котором нажимаем на пункт ShowInExplorer. У нас открывается проводник, копируем папку Police_German, и переходим в папку Vehicle, которую мы недавно, создавали и вставляем её туда, обязательно не забываем переименовать папку. Закрываем проводник, и обратно переходим в Unity, заходим в ту папку куда скопировали недавно файл.

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

Игровые объекты у транспорта

Имя игрового объекта
Предназначение
Model_0
Модель высокой прорисовки, которая прорисовывается в близи
Model_1
Модель низкой прорисовки, которая прорисовывается в дали
Objects
Дополнительные Модели для транспорта
Steer
Модель руля
Headlights
Освещение, которое включается при нажатии на правую кнопку мыши
Taillights
Освещение задних фонарей. Включается автоматически при заходе в транспорт
Bumper
При наезде данным коллайдером на игрока будет его убивать
Nav
С ним взаимодействуют зомби, животные. При наезде на зомби, животное будет его убивать
Seats
Игровой объект, в котором находятся места для пассажиров
Seat_#
Место куда садится пассажир
Sound
Место появление звуков 
Fire
Эффект возгорание двигателя
Smoke_1
Слабый эффект повреждения двигателя
Smoke_0
Сильный эффект повреждения двигателя
Sirens
Место и звук появления звука сирены
Siren_#
Свет от сирены
Headlights_Model
Модель передних фонарей
Taillights_Model
Модель задних фонарей
Siren_0_Model
Первая половина модели сирены
Siren_1_Model
Вторая половина модели сирены
Wheels
Игровой объект, в котором находятся модель колёс автомобиля
Wheel_0
Модель колеса автомобиля
Tires
Игровой объект, в котором находятся физические объекты коллайдера колёс
Tire_#
Физическое колесо, которое взаимодействует с поверхностью

Каждый из этих игровых объектов, нужно будет подстроить под нашу модель, или удалить по ненадобности.
Замена моделей, у игровых объектов с компонентами Mesh Filter, Mesh Render
Замена сетки
К примеру, нам необходимо заменить модель нашего транспорта. Для этого сперва, нам нужна сама модель, которую мы перед этим должны были создать, или можете взять мою модель[cloud.mail.ru] сделанную специально для руководства. Создаём папку, куда мы будем импортировать наши модели, желательно создавать не в нашей недавно созданной иерархии. С рабочего стола или проводника, перетаскиваем нашу модель в Unity, где мы недавно создали папку, для моделей. Кликаем по модели которую мы скинули, справа открылось окно с настройками модели, ищем параметр Scale Factor, и ставим его на 100. Если модель оказалась больше чем вам нужно, то меняем этот параметр в меньшую сторону. Далее там же переходим во вкладку Materials, если будет параметр sRGB Albedo Colors, то напротив его мы должны убрать галочку, если не будет то просто закрываем. Обратно заходим в наш Vehicle, слева открываем игровой объект у которого бы хотели поменять модель, с компонентами Mesh Filter, и Mesh Render. Не выходя из нашего Vehicle, переходим обратно к нашей модели, там мы увидим небольшую стрелочку, направленную вправо, нажимаем по ней, и у нас раскрывается ваша модель, где будут все материалы и сетка вашей модели. Нажимаем на игровой объект у которого мы хотим поменять модель, и перетаскивает сетку с нашей модели в компонент mesh filter. 


Замена материалов
Будет представлено 2 способа. Для тех у кого идёт 1 текстура на всю модель, и для тех у кого много разных материалов в модели.

Для тех у кого текстура
Далее если у вас была текстура, то необходимо создать материал с текстурой. Для этого нужно, перекинуть текстуру, в нашу папку с моделью, нажимаем правой кнопкой мыши по свободно области, у нас выскочит большое окно где необходимо выбрать creat, далее выбрать Material. Нажимаем левой кнопкой, по только что созданному материалу, и перетаскиваем в параметр Albedo нашу текстуру. Далее нажимаем левой кнопкой мыши, по текстуре, и далее с права меняем настройки текстуры. Filter Mode меняем с Bilinear на Point (no Filter), Resize Algorithm меняем с Mitchell на Bilinear, Compression меняем с Normal Quality на None. Далее перетаскиваем наш только что созданный материалов в компонент Mesh Render.


Для тех у кого материалы
Если у вас материалы, то нужно закинуть все ваши текстуры вместе с моделью, если их нет – то это не требуется. Вытаскиваем вашу модель в окно вида, у нас должна появится ваша модель, слева появился новый игровой объект, нажимаем по нему левой кнопкой мыши, справа у него вы наблюдаем 2 компонента Mesh Filter и Mesh Render, нажимаем по компоненту Mesh Render правой кнопкой мыши, выбираем Copy Component, удаляем объект со сцены. Переходим обратно в Vehicle, там мы нажимаем на игровой объект, у которого недавно меняли сетку, видим там компонент Mesh Render, кликаем по нему правой кнопкой мыши, и выбираем Paste Component Values. Можете отдельно создать материал, задать ему цвет, зеркальность, и после перетащить прямо на модель.

Приступаем к изменению Vehicle.prefab
Снизу у вас будут появляться якобы ошибки, на них внимания не обращаем !

Заменим для начала наши модели в Model_0, Model_1. Если хотите поменять прорисовку, то нажимаем вот сюда.
Справа вы заметите компонент LOD Group. LOD # отвечает за прорисовку моделей. В LOD 0 находятся модели высокой прорисовки, которые прорисовываются вблизи. Переместив курсор в самый конец LOD 0, и зажав кнопку мыши, можно увеличить его, что увеличит дальность прорисовки LOD 0. LOD 1 отвечает за прорисовку моделей в дали, можно удалить model_1, это не желательно. После чего модели LOD 0 будут прорисовываться на любом расстоянии которое мы настроим, желательно увеличить LOD 0, при удалении LOD1. Теперь нам необходимо, поменять модель в Headlights_Model, и с помощью инструментов, в левом верхнем углу перемещаем, Headlights_Model под нашу модель, рекомендую при вращении зажимать Ctrl. То же самое делаем с Taillights_Model. Если вы хотите сделать мигалки, то меняем модель у Siren_0_Model, Siren_1_Model и так же инструментами в левом верхнем углу, перемещаем под нашу модель машины. Если вам не нужны мигалки, то просто удаляем Siren_0_Model, Siren_1_Model, Sirens. Далее настроим Headlights, перемещаем его поближе к фарам машины, и компонент Lamp который находится в Headlights, передвигаем к одной из фар, также делаем с другим, компонент с прожектером мы перемещаем между фар, и выше к капоту машины. Если вам необходимо больше источников света фар, то нажимаем правой кнопкой мыши, по одному из Lamp, выбираем Duplicate. То же самое делаем с Taillights, только с задними фарами. Зажав Ctrl кликаем по компонентам Fire, Smoke_1, Smoke_0, и перемещаем туда, где у вас должен появляться эффект возгорания. Теперь будем менять модель у колёс, можете оставить стандартные, перед заменой убедитесь, что центр вашей модели, на которую вы будете менять, находится посередине. Раскрываем компонент Wheels, и видим Wheel_#, у каждого из них необходимо поменять, Model_0, Model_1, которые находятся внутри него. Меняем на нашу модель которую мы приготовили. Обязательно надо проверить что у Model_0, Model_1, значения позиции стоят на 0. Это можно посмотреть в компоненте Transform, вращаем чтобы колёса смотрели от стороны машины. Далее после того как поменяли везде модели, выбираем Wheel_#, и каждый из них перемещаем, так как считаем нужным. Теперь раскрываем Tires, и видим там Tire_#, их необходимо переместить, под каждое колесо которое мы недавно настраивали, если радиус Tire маленький, то можете в компоненте Wheel Collider, изменить параметр Radius. Далее раскрываем Objects, и видим seat_#, это модель сиденья, если хотите эту модель заменить. Раскрываем Seats, видим seat_#, на это месте будет игрок при посадке на это место, их мы можем сделать бесконечное количество, но необходимо соблюдать нумерацию. С зажатым ctrl кликаем по seat_#, расположенный у нас в seats, и по тому который находится в Objects. Обязательно соблюдаем нумерацию, чтобы seat_# в seats и в Objects были одинаковы, и при выборе seat_0, выбираем так же steer. Перемещаем наше выделывание, так чтобы это подходило к вашей модели машины. Так делаем со всеми Seat_#. Кликаем по Nav, справа видим компонент Box Collider, это навигация для зомби, животных. Кликаем в этом компоненте на кнопку в пункте Edit Collider, в окне вида мы теперь можем редактировать данный Box Collder. Настраиваем его таким образом, что бы он захватывал полностью модель, и что бы его стенки не уходили далеко от модели машины. Кликаем по Bumper, справа видим компонент Box Collider, настраиваем его таким же способом, как и Nav только не учитываем крышу нашей мышины. Теперь кликаем по игровому объекту Vehicle, который находится в самом верху. Здесь мы видим 2 Box Collider, кликаем по Edit Collider,  первый  Box Collider мы настраиваем так же как мы настраивали Bumper, 2 под крышу нашей модели.
Замена Clip.prefab
Для того что бы наш транспорт корректно работал на серверах. Заходим в нашу папку с Clip и Vehicle, кликаем правой кнопкой мыши по свободной области, и в открывшимся окне выбираем Show In Explorer. У нас открылась папка в проводнике с Clip, Vehicle, удаляем Clip, копируем Vehicle и переименовываем его в Clip. Заходим в Unity, нажимаем по Clip левой кнопкой мыши 2 раза. В окне вида у вас открылся ваш транспорт. Удаляем все игровые объекты кроме Seats, Clip, Nav, Bumper, Tire, Turrets. Возможно у вас нету некоторых игровых объектов из этого списка, в этом нет ничего страшного.
Добавление, замена звуков.
Чтобы добавить звуки включения двигателя, необходимо импортировать звуковой файл с названием Ignition, в папку с Vehicle. Кликаем по нему левой кнопкой мыши, и справа у нас появляются настройки звука, необходимо выставить в пункте Load Type, параметр Compressed In Memory.
В пункте Compression Format, ставим Vorbis. В пункте Sample Rate Setting ставим Override Sample Rate. Считаем что звук запуска двигателя, мы поменяли. Теперь заменим звук гудка, у нашего транспорта. Для этого закидываем звук c названием Horn, в папку с Vehicle. Настраиваем звук так же, как мы настраивали звук запуска двигателя. Для того чтобы заменить звук двигателя при езде, надо импортировать звук с любым названием в папку с Vehicle. Настраиваем его так же как мы настраивали звуки до этого. Заходим в Vehicle, и кликаем вот сюда .Справа мы увидим компонент Audio Source. В параметр AudioClip перетаскиваем наш звук, заменяем его с Engine_Medium, на наш. Для замены звука сирены нам необходимо кликнуть Vehicle, кликаем по игровому объекту Sirens. У него есть компонент Audio Source, В параметр AudioClip перетаскиваем наш звук, заменяем его с Engine_Medium, на наш. Не забываем перед этим настроить звук, как мы это делали до этого с остальными. Назвать его необходимо Siren.
Вот вам стандартные звуки Horn[cloud.mail.ru], Ignition[cloud.mail.ru].
Экспорт мода, настройка .dat
Для начало нам необходимо задать имя assetbundle, для дальнейшего экспорта мода. Заходим в Unity, выходим из всех папок, в главную Assets. Кликаем по начальной папке нашей иерархии. Переходим в правый нижний угол. В окне Asset Labels, кликаем по None, далее в открывшимся окне выбираем New. С начала пишем имя нашей выделенной папки маленькими буквами, после приписываем без пробелов .masterbundle . Теперь нам необходимо создать путь из папок, на рабочем столе, или где считаем нужным, похожий на нашу иерархию которую мы создавали в Unity, все названия папок должны полностью совпадать. Теперь начнём экспорт мода из Unity, в нашу иерархию которую мы создавали на рабочем столе. Для этого заходим обратно в Unity. В левом верхнем углу нажимаем на кнопку Window, далее Unturned, Master Bundle Tool.  Раскрываем все пункты в открывшимся окне, в пункте Asset Bundles, нажимаем галочку напротив имя которое мы задавали, в пункте Master Bundles нажимаем на три точки, выбираем первую папку иерархии созданной на вами вне Unity. У нас стала доступна кнопка Export, экспортируем, это довольно долгий процесс. Запоминаем имя которое мы прописывали в Unity, для первой папки иерархии. Закрываем Unity. Теперь переходим в корневую папку игры, далее Bundles, копируем файл MasterBundle. Заходим в папку куда мы экспортировали мод, вставляем туда файл MasterBundle. Заходим в него, в пункте Asset_Bundle_Name пишем имя, которое мы прописывали в Unity для первой папки иерархии. В пункте Asset_Prefix Assets/, пишем имя первой папки иерархии. Переходим в корневую папку игры, далее Bundles, Vehicles, копируем папку с названием Truck_Red, вставляем в папку Vehicles, которая находится в нашей иерархии вне Unity. Переименовываем  Truck_Red, так как мы называли папку с транспортом в Unity, обязательно название должно полностью совпадать. Заходим в папку которую недавно переименовали, файл с названием  Truck_Red.dat, нужно переименовали так как сейчас недавно называли папку Truck_Red. Заходим в English.dat, и в пункте Name меняем имя, на такое которое вы хотите, сохраняем и выходим. Заходим во второй файл .dat, который вы переименовывали, удаляем строчку GUID, удаляем строчки, 
IgnitionAudioClip, HornAudioClip. Добавляем физический профиль, для этого пишем Physics_Profile и айди профиля с пробелом, я поставлю стандартный 6b91a94f01b6472eaca31d9420ec2367. Можно изменить скорость, для этого увеличиваем число в параметре Speed_Max. Можно много что настроить у транспорта, обо всех настройка говорится тут https://unturned.info/Modding/AssetPropertiesReferences/VehicleData/ . Меняем ID у транспорта на любое число, главное чтобы это было число не выше 60000. Можно всё закрывать. Для проверки можете данный мод закинуть в папку с картой, в ней необходимо будет создать папку Bundles, и скинуть туда мод.
Мод готов!
Если у вас не заработал мод
1. Первое надо проверить правильность иерархии, в корневой папке Unturned, и Unity. Они должны полностью совпадать, даже большие или маленькие буквы. После того как заново проверили, экспортируем мод в Unity, в окне Master Bundle Tool.

2. Возможно вы допустили ошибку при написании .masterbundle, для самой первой папки иерархии, в Unity. Также проверти как вы написали в .masterbudle в иерархии которая находится в игре. Если написали неправильно то просто следуя по началу раздела экспорт мода, редактирование .dat, создаём имя заново но только уже правильно.

3. Возможно у вас нету какого-то игрового компонента в Vehicle.prefab, или он назван неправильно. Исправляем если это так, заново экспортируем мод из окна в Unity Master Bundle Tool.

4. Если совсем ничего не помогает, то можете мне написать в личные сообщения, я постараюсь вам помочь.


Конец руководства
Это руководство ещё не приняло свою конечную завершённость. Оно ещё будет дорабатываться, переделываться. Можете написать свои пожелания, что изменить, что добавить, так вы мне поможете сделать руководство лучше. Если у вас что-то не получилось, не отчаивайтесь, не всегда всё получается с первого раза, пробуйте заново, до тех пор пока у вас не получится. Желаю чтобы у вас всё получилось, и чтобы вы смогли создать свой транспорт). В будущем если я замечу отдачу от вас, то я продолжу писать руководства. На самом деле ещё есть много о чём хотелось бы рассказать.
58 条留言
X-RAY  [作者] 5 月 12 日 下午 11:56 
Сделай через UI Canvas и активируй его при прицеливании через Vehicle Turret Event Hook
hanow 5 月 12 日 上午 11:28 
Как добавить прицел к танку, чтобы он был эффектом?
hanow 4 月 2 日 上午 4:53 
как добавить анимации к орудию танка. Тоесть мне нужно чтобы во время выстрела оно откатывалось, после шел дым.
X-RAY  [作者] 2 月 16 日 上午 9:51 
Ну посмотри как сделан стандартный Tank_Cannon
hanow 2 月 16 日 上午 6:00 
тоесть взять какой нибудь автомат и заменить у него модельку. После чего поменять звуки и накинуть вместо пушки.
X-RAY  [作者] 2 月 15 日 上午 7:58 
Для этого отдельно надо создать предмет оружия с параметром Turret. В Unity у предмета оружия будут 2 звука: Shoot и Reload, их и меняй
hanow 2 月 15 日 上午 6:53 
Делаю первый танк в своей жизни. Хочу заменить звук перезарядки и выстрела. Где это сделать
X-RAY  [作者] 1 月 14 日 上午 10:34 
Ну значит что-то не сделал, делай всё как в руководстве
hanow 1 月 14 日 上午 8:45 
так же пишет что нету ассетов
hanow 1 月 14 日 上午 8:42 
проблему с отсутствием файла решил, но появилась новая. нажимаю экспорт но экспорт не начинается ни окошка ничего