Конвертирование своих автомобилей в NFS: Most Wanted
I. Подготовка к работе:
Список программ:
1. NFSMW-Modtools
2. Zmodeler 1.0.7
3. 3Ds Max, или другая программа для работы с 3D-моделями, из которой возможен экспорт в формат, поддерживаемый Zmodeler'ом.
4. Adobe Photoshop
5. DDS-plugin для Adobe Photoshop
Примечание:
– можно спокойно обойтись и без пункта 3, ведь Zmodeler сам по себе довольно неплохой 3d-редактор.
– на нашем сайте лежит версия dds-плагина 6.28, но в интернете можно найти версию 8.33 или даже выше. Туториалы и все программы создавались с учетом особенностей плагина версии 6.28, и файлы, обработанные версией 8.33 могут некорректно работать.
– существуют также и более новые версии программы Zmodeler, тоесть 2.0 и выше. Для подготовки моделей необходимо пользоваться версией 1.0.7, т.к. новые zmodeler не понимают формата для Most Wanted (*mwr).
Настройка программ:
Установите photoshop и dds-плагин к нему, установите Zmodeler 1.0.7. Распакуйте NFSMW-Modtools. Там вы увидите несколько папок, разберемся, что в них хранится.
- Папка zmodeler содержит фильтр для Zmodeler'а. Его необходимо скопировать в папку Filters установленной программы (только для версии 1.0.7).
- Папка ferrari360 содержит файлы примера автомобиля Ferrari Spider 360, импортированного Arushan'ом.
- Папка bin содержит все основные программы, используемые для импорта в NFS MW новых автомобилей:
1. binTex - программа для просмотра текстур из файлов TEXTURES.bin и VINYLS.bin игры.
В основном используется для проверки на работоспособность созданных файлов и для замены текстур, советую для MW использовать программу MWtex.
2. vltedit - программа для выяснения адресов, которые затем придется патчить (т.е. для настройки колес, звука двигателя, распознавания копами, тактико-технических характеристик автомобиля, типа привода и т.п.)
3. Файлы mwgc.exe, mwtc.exe, texpatch.exe служат для компиляции текстур и модели. Не пытайтесь их запускать, они работают только с параметрами командной строки, т.е. с файлом build.bat в папке ferrari360.
Примечание:
- Некоторые антивирусы ругаются на Zmodeler. На самом деле, они ругаются не на саму программу, а на ее uninstaler. Достаточно позволить антивирусу удалить этот файл и проблема уйдет. Программа будет работать по-прежнему. Если вы не доверяете, то можете не качать ее. Но тогда не мечтать вам об импорте своего авто в игры, по крайней мере в НФС-9.
II. Подготовка модели автомобиля.
Работа над геометрией:
Прежде чем работать над авто, советую вам внимательно осмотреться. Дело в том, что в игре есть несколько типов частей авто: постоянные, специфические и переменные. Переменные – это те, которые меняются вместе с бодикитами, постоянные – которые на любых бодикитах остаются неизменными. О специфических поговорим позже. Так вот советую вам определится, какие детали должны меняться с различными бодикитами, а какие будут постоянно отображаться.
1) Названия для постоянных деталей: (в скобках написано первоначальное назначение детали, но вы можете комбинировать как хотите – например, соединить все, что не меняется в один объект и назвать его basea)
baseQ – объект с таким именем обязательно должен присутствовать в модели: если его не будет, у вашего авто не будут работать фары, выхлоп и т.п.
kit00leftbrakelightQ (задняя левая фара)
kit00rightbrakelightQ (задняя правая фара)
kit00leftheadlightQ (передняя левая фара)
kit00rightheadlightQ (передняя правая фара)
kit00leftheadlightglassQ (стекло передней левой фары)
kit00rightheadlightglassQ (стекло передней правой фары)
kit00leftbrakelightglassQ (стекло задней левой фары)
kit00rightbrakelightglassQ (стекло задней правой фары)
kit00leftsidemirrorQ (левое зеркало заднего вида)
kit00rightsidemirrorQ (правое зеркало заднего вида)
kit00frontwindowQ (переднее стекло)
kit00rearwindowQ (заднее стекло)
kit00frontleftwindowQ (левое бортовое переднее стекло)
kit00frontrightwindowQ (правое бортовое переднее стекло)
kit00rearleftwindowQ (левое бортовое заднее стекло)
kit00rearrightwindowQ (правое бортовое заднее стекло)
kit00interiorQ (салон автомобиля)
Примечания:
- Q – это параметр качества модели (от английского quality).
- Следует быть аккуратным с объектами для стекол автомобиля и фар. Дело в том, что в игре есть некоторая модель повреждений. При ударе спереди на лобовом стекле появляется трещины, при кормовом ударе – соответственно сзади и т.п. И если вы объедините все стекла в один объект (например, kit00frontwindow_Q), то все стекла будут биться при фронтальном ударе, и ни одного при боковом или кормовом. То же самое и со стеклами фар, так что советую названия объектов для стекол фар и корпуса использовать по назначению.
2) Названия для переменных деталей: вообще-то в игре деталь такого типа только одна для каждого корпуса: kitNNbodyQ, где NN – номер кузова, Q – качество детали (может быть a, b, c, d, e). Если вы хотите, чтоб вместе с корпусом менялись, например, фары или салон, то их необходимо прикреплять к корпусу.
3) Названия специфических деталей:
kit00driverQ - водитель автомобиля (появляется только во время гонки или свободной езды, в гараже и магазине не отображается)
kit00frontbrakeQ - передний тормоз
kit00rearbrakeQ - задний тормоз
kit00fronttireQ - колесо автомобиля
kit00hoodQ – стоковый капот
styleCChoodQ – тюнинговый капот. СС может принимать значение: 02, 03, 04, 05, 06, 07, 09, 10, 13, 16, 17, 20, 21, 23, 26, 31, 32.
kit00spoilerQ – спойлер авто в базовой комплектации, при тюнинге пропадает.
kit00universalspoilerbase_Q – крепление для спойлера на некоторых автомобилях, таких как Porcshe.
Теперь определяемся, какие детали останутся неизменными для всех корпусов, какие будут меняться, а какие должны проявляться в игре только во время гонки. Потом объединяем нужные детали друг с другом и называем их соответствующим образом.
4) Специальные объекты автомобиля:
Объекты для оживления модели (думмики). Эти объекты используются для расстановки мест крепления спойлера, воздухозаборников, а также для света фар и активации выхлопных труб. У этих объектов не учитывается геометрия, материал, текстуры, для игры важно лишь местоположение их координат. В моделлерской среде принято использовать кубики. Их надо передвинуть туда, где они будут выполнять свою функцию.
Думмики задаются одни для всех корпусов, т.е. вам надо быть аккуратными с корпусами, в которых переезжают фары или выхлопные трубы.
Внимание: думмики не заменяют, например, задние или передние фары, они просто создают имитацию работы фар (света)!
LEFTREVERSE, #RIGHTREVERSE – думмики для белого света на задних фарах (при движении задним ходом)
LEFTBRAKELIGHT, #RIGHTBRAKELIGHT – думмики для задних фар. При движении они горят как габаритные огни, при стоянке – как стопогни.
LEFTHEADLIGHT, #RIGHTHEADLIGHT – свет передних фар. Горят постоянно и независимо от темпа езды.
LEFTEXHAUST, #RIGHTEXHAUST – думмики выхлопа. Оттуда вылетает эпическое зарево при впрыске закиси азота.
SPOILER – место крепления игрового спойлера; координаты думмика – это место, где будет стоять «ножка» спойлера.
ROOF_SCOOP – место крепления воздухозаборников на крыше (и не только) автомобиля. Координаты думмика – центр воздухозаборников по продольной и поперечной оси и низ по вертикальной.
При установке нескольких думмиков одинакового эффекта, следует создавать копии и дописывать им номера в квадратных скобках, например #LEFTBRAKELIGHT, #LEFTBRAKELIGHT[0], #LEFTBRAKELIGHT[1], …, #LEFTBRAKELIGHTw34;. Программа Zmodeler 1.0.7b делает это сама.
5) Объекты для нанесения декалей. В игре есть декали, насколько вы знаете. Для того, чтобы ваше авто поддерживало их, нужно делать следующее. Для начала, создаем объекты для дверей, передних/задних стекол, крыльев. Объекты для крыльев, передних/задних стекол представляют собой просто полоску в нужном месте автомобиля. Объекты для дверей включают в себя слоты с 1-го по 6-й слоты в игре, а также слоты для номеров (отдельно для десятков и для единиц).
Называем их:
decalfrontwindowwidemediumQ – объект для переднего стекла.
decalrearwindowwidemediumQ – объект для заднего стекла.
KitNNdecalrightdoorrectmediumQ – объект для правой двери.
KitNNdecalleftdoorrectmediumQ – объект для левой двери.
KitNNdecalrightquarterrectmediumQ – объект для правого подкрылка.
KitNNdecalleftquarterrectmediumQ – объект для левого подкрылка.
Теперь присваиваем им нужные материалы:
DECAL1 = DECAL/DUMMYDECAL1 - материал для переднего, заднего стекла, декалей на крыльях и первого слота на дверях;
DECAL2 = DECAL/DUMMYDECAL2 - для второго слота на дверях;
DECAL3 = DECAL/DUMMYDECAL3 - для третьего слота на дверях;
DECAL4 = DECAL/DUMMYDECAL4 - для четвертого слота на дверях;
DECAL5 = DECAL/DUMMYDECAL5 - для пятого слота на дверях;
DECAL6 = DECAL/DUMMYDECAL6 - для шестого слота на дверях;
DECAL7 = DECAL/DUMMYNUMBERLEFT - материал для левой части наклейки-номера (т.е. для десятков);
DECAL8 = DECAL/DUMMYNUMBERRIGHT - материал для правой части наклейки-номера (для единиц);
6) Объекты-повреждения. Кроме всего прочего в игре есть нехитрая модель повреждений. Для пользовательского автомобиля (т.е. для гонщика) она заключается в повреждении кормы, передка правого/левого переднего/заднего участка бока. Они появляются в гонке (режиме свободной поездки) при ударе соответствующими участками автомобиля. За них отвечают особые детали (каждая для одного из шести секторов автомобиля). Эти детали накладываются прямо поверх неповрежденного корпуса. Вот названия для них:
KitNNdamage0frontQ – передок автомобиля.
KitNNdamage0rearQ – корма автомобиля.
kitNNdamage0frontrightQ – правая передняя часть бока.
kitNNdamage0frontleftQ – левая передняя часть бока.
kitNNdamage0rearrightQ – правая задняя часть бока.
kitNNdamage0rearleftQ – левая задняя часть бока.
7) Общие примечания:
- Как вы уже заметили, на многих деталях есть такой параметр Q. Я уже упоминал, что он может принимать значение a, b, c, d, e. Это параметр для качества детали. Он позволяет обеспечить наилучший вид детали в частности и автомобиля вообще, и в то же время позволяет экономить системные ресурсы (для обладателей маломощных «бюджетных» компьютеров это довольно важно). Детали с параметром «а» включаются в гараже/магазине и при приближении к автомобилю камеры ближе 20 метров, детали «b» на расстоянии от 20 до приблизительно 55-60 метров (для краткости их можно делать одинаковыми с «с»), детали «с» с 55-60 до 90 метров, детали «d» активируются с 90 до 120-130 метров, детали «e» (самые низкополигональные) от 120-130 и дальше. Разумеется, эти параметры зависят от настроек графики. При создании модели необходимо создать все качества модели, иначе боты, участвующие в соревновании на вашем автомобиле будут пропадать, стоит им отъехать на эти самые 20 метров. Точно так же пропадет и ваш автомобиль, если вы установите слишком далекую камеру. Если у вас нет возможности создавать объекты разного качества, просто скопируйте эти детали или пропишите их в файле xlink.txt, в папке с файлом build.bat. Вот пример текста для стокового кузова:
KIT00BODYB=KIT00BODYA
KIT00BODYC=KIT00BODYA
KIT00BODYD=KIT00BODYA
KIT00BODYE=KIT00BODYA
- Детали, имеющие приставку «kit» с параметром NN, следует задавать свои для каждого корпуса.
- Детали, имеющие приставку «kit» с параметром 00, являются общими для всех кузовов, их не надо дублировать для каждого. Т.е. нет нужды копировать пять раз колесо и называть копии kit00fronttirea, kit01fronttirea, kit02fronttirea, kit03fronttirea, kit03fronttirea, kit04fronttirea, kit05fronttirea. Достаточно ограничится одним колесом названным kit00fronttirea, остальные пять не будут работать.
III. Нанесение материалов на объекты:
Но для полноценного авто одной геометрии мало. Теперь всем объектам нужно присвоить материалы. Название материала можно задавать любое, самое главное, чтоб оно было написано латиницей и имело только знаки нижнего подчеркивания («_»), пробел и цифры. Самый главный закон, который следует учесть: «на один материал можно наложить только одну текстуру». Например, в одном файле текстуры могут лежать изображения салона, фар и молдингов. Потому присваивайте один материал на салон, фары и молдинги, чтоб потом текстура легла как надо.
IV. Подготовка текстур автомобиля.
Итак, 3-d модель закончена, теперь приступаем к подготовке текстур. Не буду вдаваться в подробности работы в различных фоторедакторах, затрону лишь то, что имеет непосредственное отношение к конвертированию автомобиля. Сохранять текстуры, не имеющие альфа-маски надо в формате dxt1 (no alpha). Текстуры, имеющие альфа-маску сохраняем в dxt3. Будьте внимательны – объекты, на которые в игре наложена текстура с альфа-маской, иногда становятся полупрозрачными!
V. Работа с папкой, в которой лежит файл build.bat.
Итак, теперь мы подобрались к той заветной папке, которая и обеспечит нашему авто путевку в игру.
1) Что там находится:
папка output – в ней появляется на свет наше творение, понятное для игры. В ней обязательно должны быть любые GEOMETRY.BIN и TEXTURES.BIN (от любого адд-она, или же оригинальные файлы из игры), и они должны лежать в папке, имеющей в качестве названия название авто, которое вы должны заменять. Например: output/CARSREPLACE/IMPREZAWRX/.
build.bat – основной рабочий файл, именно он и согласовывает работу нескольких программ для успешной компиляции (т.е. создания) нашего автомобиля.
matlist360.txt – файл, в котором прописаны названия материалов в 3-d модели, их характеристики и текстура, накладываемая на них.
texdefn.txt – файл, в котором прописаны названия текстур на жестком диске и названия тех же текстур в игровом файле TEXTURES.BIN.
xlink360.txt – файл, в котором прописаны названия объектов, не созданных вами, но которые в модели должны быть, например, деталей разного качества.
mw360.mwr – модель автомобиля в уже готовом к компиляции формате.
mw360.z3d – модель автомобиля (Ferrari 360) в z3d формате для работы с ней в программе Zmodeler 1.0.7b. Эта модель лежит в папке для ознакомления, модель вашего авто туда класть не нужно.
360misc.dds, 360tire.dds – текстуры автомобиля Ferrari 360.
Текстуры, как и 3-d модель в формате .z3d, для автомобиля феррари 360 лежат в папке для того, чтобы вы на наглядном примере могли посмотреть конвертирование своего авто.
Для того, чтобы получить модель своего автомобиля в формате .mwr, экспортируйте его из Zmodeler 1.0.7b в этот формат (команда file-> export).
Сохраненные текстуры вашего автомобиля переименуйте как хотите, но названия должны состоять из только латинских букв и цифр, знаков подчеркивания («»). Затем переместите их в нашу заветную папку.
2) Теперь подробнее разберем работу с txt-файлами.
Texdefn.txt
В нем прописаны названия текстур на жестком диске и названия тех же текстур после того, как они попадут в игровой файл-контейнер TEXTURES.BIN. Открываем его и видим:
[tpk]
Identifier=CARTEXTURES
PipelinePath=GlobalPipelineCarTemplateTexturesCARNAME.tpk
XName= CARNAME
Output=outputCARSREPLACE CARNAME TEXTURES.BIN
Редактируем шапку. Вместо CARNAME везде прописываем название того автомобиля, который вы собрались заменять.
Перейдём к созданию записей о текстурах. Каждый блок [texture]обозначает один dds-файл в BIN-контейнере. Он состоит из трех строчек и содержит в себе информацию о названии текстуры на жестком диске (они все должны лежать в той же папке, что и build.bat) и названии текстуры в BIN-контейнере.
[texture]
Name=MISC
File=MISC.dds
Строка Name означает название текстуры в BIN-контейнере. Будьте внимательны, с этими названиями работает игра! К сожалению, мы можем задавать только заданные названия текстур. В противном случае они не будет работать. Вот допустимые названия текстур:
ENGINE
MISC
MISCN
TIRE
TIREN
INTERIOR
INTERIORN
BADGING
BADGINGN
SKIN2
SKIN3
SKIN4
SKIN1
LOGO
DRIVER
TREAD
TREADN
RIMBLUR
RIM
NEON
DOORHANDLE
SIDELIGHT
BADGINGEU
SKIN1B
Строка File – название dds-файла в папке, в которой лежит файл build.bat. Он будет импортирован в игру под новым названием – тем, которое записано в строке Name.
Примечание:
- Имя в строке Name не должно превышать 23 символа. Из этих 23 добавляется еще название авто и знак подчеркивания («_»).
Matlist360.txt
В нем прописаны названия материалов в 3-d модели, их характеристики и текстура, накладываемая на них. Содержит он в себе строчки с записями о материале (одни строчка – один материал) в виде
Название материала=шейдер/текстура.
Название материала - название материала в 3-д модели.
Шейдер – Запись о характеристиках материала. Вы выбираете из уже готового списка шейдеров тот, который придает детали нужные вам характеристики - свойства отражения, преломления, иногда тонирования цветом. Вот список:
0xD6D6080A Open и загружаем файл frontend.vlt из директории vlt, находящейся в папке с программой. Идем по пути ecar/default/racers/наименованиеавтомобилякоторыйзаменяете (именно это слово и пишете вместо CARNAMEVLT. Здесь нам нужен параметр wheelposition*, открываем список, видим четыре значения для четырех колес соответственно.
Кликаем на первом, получаем значение, выписывая его из поля OFFSET. Оно расположено между строкой состояния и рабочей областью. Для остальных колес проделываем аналогичную операцию. Далее открываем Блокнотом файл ATTRIBUTES.MWPS в папке с уже готовым авто.
Для настройки одних лишь колес файл должен выглядеть примерно так:
memfile GLOBAL/GlobalMemoryFile.bin
vpak GLOBAL/ATTRIBUTES.BIN db
позиция колес
в формате x,y,z,w (x=координата колеса в продольной оси, y=координата колеса в поперечной оси, z=положение колеса по высоте, w=размер колес)
patch float bin:0x3f7f0 1.28
patch float bin:0x3f7f4 0.8
patch float bin:0x3f7f8 0.0
patch float bin:0x3f7fc 0.30
patch float bin:0x3f800 1.28
patch float bin:0x3f804 -0.8
patch float bin:0x3f808 0.0
patch float bin:0x3f80c 0.30
patch float bin:0x3f810 -1.311
patch float bin:0x3f814 -0.8
patch float bin:0x3f818 0.0
patch float bin:0x3f81c 0.30
patch float bin:0x3f820 -1.311
patch float bin:0x3f824 0.8
patch float bin:0x3f828 0.0
patch float bin:0x3f82c 0.30
Как видим, для каждого колеса имеется четыре параметра, а у нас лишь один. Чтобы получить остальные, поступаем так.
Пример:
Мы получили, например, адрес bin:0x3da60 (одно из колес Lamborgini Gallardo).
Остальные записываем в таком формате 0x3da6x (где x - это 4, 8 или с соответственно для координаты y, z, w).
Полностью это будет выглядеть так:
patch float bin:0x3da60 1.28
patch float bin:0x3da64 0.8
patch float bin:0x3da68 0.0
patch float bin:0x3da6c 0.30
Точно так же и для остальных колес. Когда все будет готово, сохраняем файл в папку с моделью и текстурами. Затем закидываем все куда следует и любуемся результатом. :)
Если что-то не так, поправляем.
VIII. Активируем логотип автомобиля.
Идем по пути Database -> frontend -> vehicles. Там три отдела: europe, north_america, japan. Каждый из них означает место производства машины – той, которую заменяете.
Пример: логотип автомобиля Mersedes-Benz SL65.
путь к нему Database/frontend/vehicles/europe/mercedes/sl65.
Нажимаем на sl65, справа в окошке появилось куча всяких параметров, но нас интересует только один - это manufacturer, а точнее его значение.
При нажатии на manufacturer получаем значение bin:0x8954.
Зайдем в директорию output/CARS_REPLACE/SL65, откроем Блокнотом файл FE.MWPS
manufacturer
patch dword значение_ manufacturer N, где N - это префикс в названии файла с логотипом производителя (помните, я просил вас запомнить число?). В примере SL65 использовано число 32.
Пример для SL65:
manufacturer
patch dword bin:0x8954 32
Следующий файл, который необходимо подвергнуть обработке - это CAR.INI всё в той же папке.
[car]
name=имя которое будет показываться в игре.
manufacturer= MANUFACTURERNAME
internal=CARNAME
modloader=0.2
MANUFACTURERNAME – название производителя.
CARNAME – название авто, которым заменяете. Это название папки с авто, только написанное строчными буквами.
Чтобы не наблюдать логотипы от Ferrari 360, поменяйте текстуры в файлах SECONDARYLOGO.BIN и N-MANUFACTURERNAME.BIN.
IX. Ну вот пожалуй и все. Данный туториал не является самым полным не планете, он создан для понятного изложения минимума, необходимого для создания приличного автомобиля. Если вы хотите создавать по-настоящему шедевральные моды, то этой информации вам будет маловато – вам нужно будет заниматься самосовершенствованием. Общайтесь с более опытными моделлерами, читайте соответствующие темы на форумах. Описать абсолютно все в одном туториале невозможно.
X. Отдельное спасибо следующим людям:
1) Chapai (Femicide) – проверка, подробная критика, информация.
2) McLaren_3Dcm – проверка, критика.
3) K1llM@n – разрешение использовать его туториал в качестве опорного источника информации.
4) REXAR (vinokurov GT-R) – проверка, критика, написание части туториала.
5) Eclipse 72rus - дополнение, коррекция.
XI. Данный туториал создавался для сайта nfs.com.ru, и его использование на других веб-сайтах разрешается с моего согласия и при условии наличия ссылки на автора в таком формате: ODiLISk; nfs.com.ru; Russia. Я оставляю за собой право публиковать туториал на любых веб-сайтах.
Автор ODiLISk для nfs.com.ru