Project Zomboid

Project Zomboid

33 ratings
создание модов на транспорт
By xapssy
это русская локализация официального руководства от RingoD123
   
Award
Favorite
Favorited
Unfavorite
1
Первое, что вы должны сделать, как и в большинстве модов, это создать свою структуру папок mods, используя изображение ниже в качестве ссылки, заменив MOD_NAME именем вашего мода:

Не беспокойтесь о файлах, показанных выше, вы будете создавать их, следуя этому руководству, просто убедитесь, что помните, что каждый раз, когда вы видите "MOD_NAME" в этом руководстве, замените его именем, которое вы выбрали для своего мода.
2
В вашей папке с модом создай файл "mod.info" текстовый файл, содержащий следующий код:

name=MOD_NAME
id=MOD_NAME
description=Some description
poster=MOD_NAME.png

Не забудьте заменить все "MOD_NAME" на фактическое имя вашего мода.
3
В той же папке создайте и поместите файл MOD_NAME.png, это будет миниатюра, используемая в игре в качестве обложки для вашего мода.
4
Далее, в папке " /MOD_NAME/media/lua/client", создайте свой MOD_NAME.lua файл со следующим кодом внутри:

local function info()

dir = getDir(MOD_ID);

loadVehicleModel("Vehicles_MOD_NAME",

dir.."/media/models/Vehicles_MOD_NAME.txt",

dir.."/media/textures/Vehicles/Vehicle_MOD_NAME_Shell.png");



VehicleDistributions[1].MOD_NAME = {

Normal = VehicleDistributions.Normal,

Specific = { VehicleDistributions.Groceries, VehicleDistributions.Carpenter, VehicleDistributions.Farmer, VehicleDistributions.Electrician, VehicleDistributions.Survivalist, VehicleDistributions.Clothing, VehicleDistributions.ConstructionWorker, VehicleDistributions.Painter },

}

ISCarMechanicsOverlay.CarList["Base.MOD_NAME"] = {imgPrefix = "smallcar_", x=10,y=0};

VehicleZoneDistribution.parkingstall.vehicles["Base.MOD_NAME"] = {index = -1, spawnChance = 30};

end


Events.OnInitWorld.Add(info);

Это скрипт, который загрузит вашу модель и скрипты в игру, он также контролирует скорость спавна для автомобиля в каждом типе зоны, а также обеспечивает наложение механики автомобиля. Не забудьте заменить все экземпляры "MOD_NAME" на фактическое имя, которое вы выбрали для своего мода.
5.1
Далее, в папке "/MOD_NAME/media/scripts/vehicles", создать свой MOD_NAME.txt файл содержащий следующий код:

module Base

{

vehicle MOD_NAME

{

mechanicType = 1,

offRoadEfficiency = 0.8,

engineRepairLevel = 4,

playerDamageProtection = 0.8,

/* The first model is always used as the vehicle's model. */

model

{

file = Vehicles_MOD_NAME,

scale = 2.15,

offset = 0 0.20 0,

}


/* List the different skins for this vehicle here.

A random skin will be chosen when a vehicle is first created.*/

skin

{

texture = Vehicles/Vehicle_MOD_NAME_Shell,

}



textureRust = Vehicles/Vehicle_MOD_NAME_Rust,

textureMask = Vehicles/Vehicle_MOD_NAME_Mask,

textureLights = Vehicles/Vehicle_MOD_NAME_Lights,

textureDamage1Overlay = Vehicles/Vehicle_MOD_NAME_Overlays_Damaged01,

textureDamage1Shell = Vehicles/Vehicle_MOD_NAME_Shell_Damaged01,

textureDamage2Overlay = Vehicles/Vehicle_MOD_NAME_Overlays_Damaged02,

textureDamage2Shell = Vehicles/Vehicle_MOD_NAME_Shell_Damaged02,




sound

{

horn = vehicle_horn1,

}


/* The size (in physics coordinates, not affected by model scale)

of the collision body. */

extents = 1.75 1 4.7,

/* shadowOffset - Shadow boundaries shift:

(right), (left), (front), (rear) */

shadowOffset = 0.0 0.0 0.0 0.0,

mass = 650,

physicsChassisShape = 1.75 0.85 4.7,


/* Center of mass relative to the chassis origin. The lower it

is, the less likely the vehicle is to flip.

Setting y too low will cause the vehicle to lean the wrong way

in turns and when accelerating/braking. */

centerOfMassOffset = 0.0 0.30 0.0,

/* Amount of torque applied to each wheel.

This provides the vehicle's acceleration */

engineForce = 3600,

engineQuality = 60,

engineLoudness = 55,

maxSpeed = 70f,

/* Amount of braking torque applied to each wheel. */

brakingForce = 60,


gearRatioCount = 4,

gearRatioR = 4.7,

gearRatio1 = 3.6,

gearRatio2 = 2.2,

gearRatio3 = 1.3,

gearRatio4 = 1.0,


extentsOffset = 0.5 0.5,


stoppingMovementForce = 2.0f,


/* Reduces the rolling torque applied from the wheels that

cause the vehicle to roll over.

This is a bit of a hack, but it's quite effective.

0.0 = no roll, 1.0 = physical behaviour.

If m_frictionSlip is too high, you'll need to reduce this to

stop the vehicle rolling over.

You should also try lowering the vehicle's centre of mass */

rollInfluence = 1.0f,


/* How quickly the front wheels change facing direction. */

steeringIncrement = 0.02,


/* Maximum steering angle. */

steeringClamp = 0.3,


/* The stiffness constant for the suspension.

10.0 - Offroad buggy,

50.0 - Sports car,

200.0 - F1 Car */

suspensionStiffness = 30,


/* The damping coefficient for when the suspension is compressed.

Set to k * 2.0 * btSqrt(m_suspensionStiffness) so k is

proportional to critical damping.

k = 0.0 undamped & bouncy, k = 1.0 critical damping

0.1 to 0.3 are good values */

suspensionCompression = 2.83 /*0.88*/ /*4.4*/, /* aka wheelsDampingCompression */


/* The damping coefficient for when the suspension is expanding.

See the comments for m_wheelsDampingCompression for how to

set k.

m_wheelsDampingRelaxation should be slightly larger than

wheelsDampingCompression, eg 0.2 to 0.5 */

suspensionDamping = 2.88 /*1.76*/ /*2.3*/, /* aka wheelsDampingRelaxation */


/* The maximum distance the suspension can be compressed

(centimetres) */

/* float minSuspensionLength = wheel.getSuspensionRestLength() - wheel.maxSuspensionTravelCm * 0.01f;

float maxSuspensionLength = wheel.getSuspensionRestLength() + wheel.maxSuspensionTravelCm * 0.01f; */

maxSuspensionTravelCm = 100,


/* The maximum length of the suspension (metres) */

suspensionRestLength = 0.3f,


/* The coefficient of friction between the tyre and the ground.

Should be about 0.8 for realistic cars, but can be increased

for better handling.

Set large (10000.0) for kart racers */

wheelFriction = 1.6f /*1000*/, /* aka frictionSlip */


/* The amount of collision damage the vehicle can sustain while

still being driveable. */

frontEndHealth = 150,

rearEndHealth = 150,

seats = 4,


wheel FrontLeft

{

front = true,

/* offset of wheel-model origin from chassis origin, in unscaled model coordinate space */

offset = 0.32f 0.14f 0.60f,

radius = 0.3f,

width = 0.2f,

}


wheel FrontRight

{

front = true,

offset = -0.32f 0.14f 0.60f,

radius = 0.3f,

width = 0.2f,

}


wheel RearLeft

{

front = false,

offset = 0.32f 0.14f -0.67f,

radius = 0.3f,

width = 0.2f,

}


wheel RearRight

{

front = false,

offset = -0.32f 0.14f -0.67f,

radius = 0.3f,

width = 0.2f,

}


template = PassengerSeat4,


passenger FrontLeft

{

position inside

{

offset = 0.2 0 -0.0121,

rotate = 0.0 0.0 0.0,

}

position outside

{

offset = 0.5698 0 -0.0121,

rotate = 0.0 0.0 0.0,

}

}

passenger FrontRight

{

position inside

{

offset = -0.2 0 -0.0121,

rotate = 0.0 0.0 0.0,

}

position outside

{

offset = -0.5698 0 -0.0121,

rotate = 0.0 0.0 0.0,

}

}

passenger RearLeft

{

position inside

{

offset = 0.2 0 -0.4,

rotate = 0.0 0.0 0.0,

}

position outside

{

}

}

passenger RearRight

{

position inside

{

offset = -0.2 0 -0.4,

rotate = 0.0 0.0 0.0,

}

position outside

{

}

}



area Engine

{

xywh = 0 1.3256 0.814 0.4651,

}

area TruckBed

{

xywh = 0 -1.3256 0.814 0.4651,

}

area SeatFrontLeft

{

xywh = 0.6395 -0.0121 0.4651 0.6512,

}

area SeatFrontRight

{

xywh = -0.6395 -0.0121 0.4651 0.6512,

}

area GasTank

{

xywh = 0.6395 -0.668 0.4651 0.4651,

}

area TireFrontLeft

{

xywh = 0.6395 0.6 0.4651 0.4651,

}

area TireFrontRight

{

xywh = -0.6395 0.6 0.4651 0.4651,

}

area TireRearLeft

{

xywh = 0.6395 -0.67 0.4651 0.4651,

}

area TireRearRight

{

xywh = -0.6395 -0.67 0.4651 0.4651,

}


template = TrunkDoor,


template = Trunk/part/TruckBed,


part TruckBed

{

itemType = Base.SmallTrunk,

container

{
5.2
Этот пример сценария содержит все параметры для управления моделированием транспортного средства, такие как мощность двигателя, передаточные числа, куб столкновения и многое другое. Вы (надеюсь) найдете его хорошо прокомментированным, чтобы дать вам представление о том, что делает каждый параметр. Вы можете посмотреть в папке игры "media\scripts\vehicles" сценарий vanilla vehicle, который более точно отражает добавляемый вами автомобиль, а не начинать с приведенного выше примера, внимательно просмотрите их все, чтобы получить представление о различных шаблонах, которые вы можете использовать, и о различных изменениях, которые могут быть внесены в различные компоненты.
6 моделирование
Теперь вам нужно (если вы еще этого не сделали) сделать 3d-модель для вашего автомобиля. Мы предлагаем использовать Blender, но пока вы имеете опыт в 3d-моделировании, любую программу, которая может экспортировать .ply-файлы должны работать, просто убедитесь, что ваши лица триангулированы, в Blender вы можете сделать это, выбрав свою модель в режиме редактирования, затем нажав Ctrl + T. затем перетащите экспортированный файл ply в конвертер, поставляемый ниже (распакуйте нижеприведенный файл, перетащите его .курсируйте прямо на поле .exe, не нажимайте дважды на exe), он выведет новый txt-файл с тем же именем, что и у вас .курсируйте в том же каталоге.

Скопируйте новый .txt-файл помещается в папку "mods/MOD_NAME/media / models" как " Vehicles_MOD_NAME.формат txt
7 текстуры
Теперь пришло время создать ваши текстуры, все они должны быть помещены в папку "mods/MOD_NAME/media / textures/Vehicles". Во-первых, это ваш " Vehicles_MOD_NAME_Shell.png", это основное текстурное изображение для вашего автомобиля и должно быть 512x512 пикселей, как и все ваши текстуры, ниже приведен пример:

Далее есть 6 различных наложений / детализаций .png, первый из которых предназначен для автомобильных огней ("Vehicles_MOD_NAME_Lights.формат PNG"):

Затем наложение текстуры ржавчины ("Vehicles_MOD_NAME_Rust.формат PNG"):

Следующие 2 примера изображений
("Vehicles_MOD_NAME_Shell_Damaged01.png " и "Vehicles_MOD_NAME_Shell_Damaged02.png")
должны показывать легкие и тяжелые повреждения, соответственно, на корпусе автомобиля. Они используются для представления вмятин в кузове автомобиля:


Последний файл, который нам нужен, - это цветовая маска транспортного средства ("Vehicles_MOD_NAME_Mask.png"), который также должен быть помещен в вашу папку" mods/MOD_NAME/media/textures/Vehicles". Это говорит игре, какие части текстуры вашего автомобиля соответствуют какой части модели вашего автомобиля и необходимы для отображения повреждений, опущенных окон и удаленных элементов и т. д:

Значения цветов:

Скопируйте всю структуру папок mod в свою папку C:\Users\Имя пользователя\Zomboid\Mods, загрузите игру, включите мод в меню модов и начните новую игру, ваш новый автомобиль теперь готов к тому, чтобы его нашли и уехали в Казахстан.
ЗАКЛЮЧЕНИЕ
Обратите внимание, Основная текстура прозрачна, в то время как детали были перенесены на vehicle_lights .png. Это позволяет игре автоматически и процедурно генерировать различные цвета вашего автомобиля, когда они появляются.
СЧАСТЛИВОГО МОДИНГА!
ССЫЛКА НА ОРИГИНАЛЬНОЕ РУКОВОДСТВО
22 Comments
[G4TAS]veliganina73 Jul 4, 2024 @ 8:59am 
а как загрузить файл в конвертер
xapssy  [author] Apr 9, 2024 @ 9:53am 
В низу руководства есть ссылка на ориг руководство
xapssy  [author] Apr 9, 2024 @ 9:52am 
♥♥♥ мне в падлу у меня тильт уже ♥♥♥ года 4
accur Apr 5, 2024 @ 5:34pm 
допили мужик
xapssy  [author] Apr 15, 2023 @ 12:03pm 
я бы перевёл и доделал это руководство но настроения нет прост
xapssy  [author] Apr 15, 2023 @ 12:01pm 
там ссылка на конвертер
xapssy  [author] Apr 15, 2023 @ 11:58am 
да у зомбоида свой конвертер
Asriel Storyshift Apr 15, 2023 @ 11:29am 
как я понял, надо этот PLY конвертировать в txt, но все конвертеры в которых я был выдают ошибку и я сейчас в тупике.
xapssy  [author] Apr 15, 2023 @ 11:00am 
чел я давно криво первёл руководство ply там была ссылка на скачивание конвертера в другой формат чекни ориг руководство я думал что я его убрал из общего доступа