В этой теме я раскажу вам как сделать мод, при наличии уже готовой 3D модели.
Для начала создадим папку с названием мода (на англ. языке) (у меня это будет микроавтобус старт)
и закинем туда модель вместе с папкой текстур, и папку с звуками.
Теперь нам понадобиться стандартный мод (огромный трактор) (он есть у всех обладателей LS11) лежит в папке SDK.
разархивируем его и перекинем в папку с нашим модом файлы exhaustParticle.dds ; exhaustParticleSystemBig.i3d ; lizard2000.lua и оба xml файла, можно сразу создать картинку которая будет в меню магазина (внимание! она должна быть формата png размером 256х256 либо 512х512 это самое оптимальное)
должно получиться так:
теперь открываем i3d файл стандартного трактора и выделяем то что показано здесь:
и жмем file>export selection
сохраняем где- нибудь. все больше трактор нам не нужен
терерь переходим к нашей модели, надо открыть пустой I3d файл и импортировать в него коллизию нашего авто (проще говоря кубик размегом с нашу тачку) ВНИМАНИЕ! это главная деталь всего мода, она должно иметь нулевые координаты и размеры X-1 Y-1 Z-1 и в списке она должна быть первой иначе ничего не получится, заатем ставим у нее параметр dynamic, и ниже в стоке collision masc вместо букв вписываем цифры 202042. ставим галочку на против параметра Non Renderable
сохраняем, закрываем и снова открываем, если ничего не изменилось значит все сделали правильно, все дальнейшие части авто будем вставлять именно в этот обьект
теперь из нашей модели импортируем колеса ВНИМАНИЕ! колеса не должны быть повернуты все параметры должны быть на нуле, кроме положения, иначе будут крутится как захотят, а не как нам надо
после импортируем те части которые мы сперли с стандартного трактора
и саму модель авто
настраиваем камеры в нужное положение, двигаем фермера, и руль(не саму баранку а полностью его группу)
теперь про выхлоп: в импортируемых частях есть группа particles в ней находится 2 точки, вот от их положения зависит от куда будет дым идти
upperTrailerAttacherJoint и lowerTrailerAttacherJoint это место сцепки прицепа
группа cameras должна находится выше калес, а то камера будет под землей
все с моделью закончили
СКРИПТОВАЯ РАБОТА
открываем сворованный нами файл с названием трактора (lizard2000.xml)
смотрим:
Quote
<?xml version="1.0" encoding="utf-8" standalone="no" ?>
<vehicle type="lizard2000">
<annotation>Copyright © GIANTS Software GmbH, All Rights Reserved.</annotation>
<name>
<en>Lizard 2000</en>
</name>
это можно не трогать, идем далее
<filename>lizard2000.i3d</filename> здесь меняем название lizard2000 на то под каким мы сохранили свою модельку
Quote
<wheels autoRotateBackSpeed="2.5">
<wheel rotSpeed="70" rotMax="32" rotMin="-32" driveMode="2" repr="0" radius="1.015" deltaY="0.10" suspTravel="0.15" spring="120" damper="20" mass="0.225" />
<wheel rotSpeed="70" rotMax="32" rotMin="-32" driveMode="2" repr="1" radius="1.015" deltaY="0.10" suspTravel="0.15" spring="120" damper="20" mass="0.225" />
<wheel rotSpeed="0" driveMode="1" repr="2" radius="2.2115" deltaY="0.13" suspTravel="0.15" spring="120" damper="20" mass="0.6" />
<wheel rotSpeed="0" driveMode="1" repr="3" radius="2.2115" deltaY="0.13" suspTravel="0.15" spring="120" damper="20" mass="0.6" />
</wheels>
здесь нам надо repr="х" это порядковый номер колеса(индекс), но если все делали как я писал выше то то это в редактировании не нуждается. спускаемся
Quote
<motor minRpm="100" maxRpm="1700 2600 8000 1200" maxTorques="0.45 0.65 -1 0.33" brakeForce="14" lowBrakeForceScale="0.5" lowBrakeForceSpeedLimit="1" accelerations="1 1 1 1" forwardGearRatio="44" backwardGearRatio="44" differentialRatio="1" rpmFadeOutRange="5">
<torque rpm="8000" torque="2"/>
<backwardTorque rpm="800" torque="3"/>
<backwardTorque rpm="2000" torque="0.5"/>
</motor>
настройка двигателя тормозов и т.д. пропускаем, идем ниже
<fuelCapacity>140</fuelCapacity> объем бака, цифры редактируем по усмотрению
<fuelUsage>0.0005</fuelUsage> расход топлива аналогично обьему. далее
Quote
<cameras count="2">
<camera1 index="4|0|0" rotatable="true" rotateNode="4|0" limit="true" rotMinX="-1.4" rotMaxX="0" transMin="4" transMax="40" />
<camera2 index="4|1" rotatable="true" limit="false" rotMinX="0" rotMaxX="0" transMin="0" transMax="0" />
</cameras>
<tipCamera index="4|2" />
камеры нашего мода, если модель делали правильно редактировать не надо. далее
Quote
<lights count="2">
<light1 index="5|0" />
<light2 index="5|1" />
</lights>
свет опять если все правильно не трогаем. спускаемся
Quote
<lightCones>
<lightCone index="18" />
</lightCones>
<lightCoronas>
<lightCorona index="17" />
</lightCoronas>
удаляем. идем ниже
<size width="3.5" length="5.5" lengthOffset="-0.4"/> не трогаем <exitPoint index="7" /> поинт выхода, в модели считаем индекс меняем на нужный, если все делали правильно будет 6
<steering index="8|0" rotationSpeed="6"/> руль и скорость вращения. меняем индекс, если все делали правильно будет 7|0
<enterReferenceNode index="0>" /> не трогаем. спускаемся
Quote
<trailerAttacherJoints>
<trailerAttacherJoint index="13" />
<trailerAttacherJoint index="14" low="true" />
</trailerAttacherJoints>
места сцепки прицепа меняем индекс если все делали правильно будет 9 и 10. далее
Quote
<attachSound file="lizard2000_attach.wav" pitchOffset="1" />
<motorStartSound file="lizard2000_start.wav" pitchOffset="0.9" volume="1" />
<motorSound file="lizard2000_idle.wav" pitchOffset="0.9" pitchScale="0.025" pitchMax="1.5" volume="1" />
<motorSoundRun file="lizard2000_run.wav" pitchOffset="0.9" pitchScale="0.02" pitchMax="1.2" volume="1" />
<motorStopSound file="lizard2000_out.wav" pitchOffset="0.9" />
звуки. здесь меняем пути думаю всем понятно какой звук чему принадлежит. спускаемся
<honkSound file="$dataS2/sounds/horn.wav" client="$dataS2/sounds/horn3D.wav" volume="1" radius="50" innerRadius="20" /> не трогаем
Quote
<exhaustParticleSystems count="2">
<exhaustParticleSystem1 node="16|0" file="exhaustParticleSystemBig.i3d" />
<exhaustParticleSystem2 node="16|1" file="exhaustParticleSystemBig.i3d" />
</exhaustParticleSystems>
выхлоп. меняем индекс если все делали правильно будет 12|0 и 12|1. далее
Quote
<attacherJoints>
<attacherJoint index="10|0|0" rotationNode="10" maxRot="-12 0 0" rotationNode2="10|0" maxRot2="8 0 0" maxTransLimit="0 0.5 0" maxRotLimit="0 0 20" moveTime="1.5">
<bottomArm rotationNode="11" translationNode="11|0" referenceNode="11|0|0" zScale="-1" />
<topArm rotationNode="12" translationNode="12|0" referenceNode="12|0|0" zScale="-1" />
</attacherJoint>
</attacherJoints>
удаляем (у нас ведь не трактор)
<characterNode index="9" cameraMinDistance="1.5" /> фермер. меняем индекс, если все делали правильно будет 8
<aiTrafficCollisionTrigger index="15" /> тигер для шлагбаумов и т.д. меняем индекс, если все делали правильно будет 11. ну и последнее
Quote
<components count="1">
<component1 centerOfMass="0 -0.7 0.5" solverIterationCount="10" />
</components>
центр масс нашего авто менять значения будем после того как покатаемся
ModDesc.xml
в общем то здесь мало что надо делать
вместо Dies ist der Muster mod. вписываем себя любимого и вместо Lizard 2000 Sample Mod вписываем название нашего авто. все
теперь все что у нас есть в папке с модом запаковываем в зип внимание не папку запаковываем а файлы
готово