Header Picture

Инструкция по конвертации машин в Mafia 2

Анализируя статистику сайта, можно понять, что большинство пользователей интересуются модами на машины. В настоящий момент, ситуация сложилась таким образом, что практически все моды на машины для Mafia 2 сделал один автор — это Agens. Не смотря на это, игроки Mafia 2 часто просят сделать какую-то машину, при этом до конца не понимая, что сконвертировать машину для Mafia 2 можно и своими силами. На Playground’e Agens разместил гайд по конвертации машин в Mafia 2. С его позволения, публикуем его у нас.

С выходом версии ZModeler 3.1.3 стала доступна работа с Mafia 2. В гайде будут описаны советы по конвертации автомобилей в mafia 2. Урок рассчитан на опытных пользователей.

Введение
Для конвертации машин в mafia 2 , вам потребуется следующие программы:
Photoshop, SDS Tool GUI, ExpSDS и Material_Converter
Машины старайтесь искать таким образом, чтобы в экспорте модели, файл VertexBufferPool_0.bin был размером примерно в 2 мб.

Конвертация

Для примера конвертации возьмем машину из GTA 5. Импортируйте машину (все LODы) со всеми необходимыми текстурами , далее будем её адаптировать и сохранять через Zmodeler 3. Поскольку Mafia2 использует только два уровня детализации (высокий и очень низкий), при конвертации деталей можно оставить наивысший (L0) и наименьший (обычно L3) LOD. Остальные можно удалить (выбрав в списке на объекте L1 или L2 и нажав маленькую кнопку «Del» в строке с кнопками «Convert to Compound» и «Dismiss»). Данное действие вычленит объект указанного уровня из compound-объекта, поэтому появившиеся объекты в иерархии (без имени) затем надо удалить правым кликом и пунктом меню Edit->Delete. (рис.1).

Теперь можете сохранить модель и проверить размер файла. Важно: сохранять .z3d надо без текстур ( для этого временно выключите опцию «Store Textures» в Settings — > General -> Files- > Z3d Open & Save -> Store Textures ). Размер файла не должен превышать 2-3 мб , при этом 2мб оптимальный, т. к модель и коллизия записана в VertexBufferPool_0.bin , а размер в 3 мб для него будет почти критичным размером. Если размер файла подбирается к 3 мб или превышает его, то возможны ошибки в игре, которые могут привести к вылету.
Далее нужно подготовить вашу модель для замены. Для этого нужно импортировать машину из Mafia 2, старайтесь подобрать машину таким образом, чтобы конструктивно (по элементам: двери / капот / багажник /бампера / и их расположению) машина была похожа на вашу модель (Рис.3).

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


Распаковка моделей выполняется программой SDS Tool GUI. В папке с распакованными файлами модели создайте блокнотом пустой файл (название автомобиля).mafia. Импорт и экспорт моделей Mafia2 идет в папке и данный файл с расширением .mafia лишь отправная точка для импорта / экспорта , его содержимое не важно — в игре или в распакованных данных такого файла нет.

Проанализируйте, как устроена родная модель, сверьте расположение поворотных осей дверей/капота/багажника, убедитесь, что раскладка деталей данного авто подходит для замены.
Теперь нужно будет собрать вашу модель по аналогии оригинальной машины, заменяя идентичные детали (геометрии) для L0, L1 внутри Compound объектов вашими геометриями. Важный момент, менять локальные оси деталей, имеющих коллизии нельзя. Это относится к дверям, капоту, багажнику, бамперам, глушителю (сохраняйте оси оригинальной модели копированием, если меняете весь объект целиком). Также нельзя трогать деформаторы модели (deform_), если их переместить, модель в игре будет деформированной. Большинство других деталей можно именовать произвольно и задавать им произвольные оси (оставлять оси от новой модели). (рис.2).

Совмещение моделей и замена деталей должна выполняться с указанным выше ограничением на неизменность осей объектов, содержащих коллизии, равно как и на неизменность осей самих коллизий. Данное ограничение распространяется так же на посадочное место водителя (посадку персонажа по высоте отрегулировать нельзя). В дальнейшем предполагается эти ограничения устранить.
Подгонка модели не будет идеальной, но старайтесь подогнать заменяемую модель, таким образом, чтоб совпало как можно больше осей из тех, которые нельзя менять. Приоритет отдайте передним дверям и капоту, они открываются в игре чаще всего — задние двери и багажник могут иметь не совсем подходящие оси, но они и в игре открываются гораздо реже. (рис. 4 и 4.1).Остальное все настраиваете по вашему автомобилю, оси можно смело брать от новой модели.

Процедура замены деталей стандартная. Если вы никогда не работали с Compound-объектами, посмотрите любое видео по замене авто в GTA5, там этот момент будет разобран. Как дойдете до рулевого колеса, выставите ваше рулевое колесо по родному рулю. Руки водителя нельзя выставить, как и посадочное место персонажа, поэтому выставляем руль (рис.6).

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

Дополнительные объекты иерархии, которые присутствуют в оригинальной модели сохраняйте без изменений, перемещать или даже удалять ни в коем случае нельзя, такие объекты как _deform, за исключением случая, когда _deform это кусок какой-то части авто. В остальных случаях, когда_deform это квадраты, перемещать нельзя, это приведет к повреждениям машины.

Применение материалов к конвертируемой модели.

Полностью выделите вашу модель и перейдите в режим полигонов (рис.7).

В режиме полигонов нажмите «None», затем выделите полигоны, соответствующие красящимся деталям кузова (используем инструмент Select\By Material) и примените к выделенным полигонам родной материал покраски кузова. Выделение не сбрасываем. Для того что бы модель красилась, ей нужно указать номер Flag в свойствах (Properties -> General -> External State ->). Для покраски в основной цвет включаем Flag 1, для дополнительного цвета используем Flag 2 (рис.8).

Далее выделите полигоны, соответствующие хрому на вашей модели и примените к ним материал хрома от оригинальной модели (рис.9.1).


Настоятельно рекомендуется применить родной материал для фар и номерного знака. Это стандартный материал в Mafia2 именуется «GPLC» и только он может светиться в игре при включении фар, торможении, только на нем работают символы номерного знака. Применить материал можно смело к округлым фарам и задним фонарям по типу оригинальных моделей. Заменять данный материал, равно как и текстуру на нем — нельзя, он используется во всех моделях авто в Mafia2, поэтому вам придется переделать текстурирование (UV Mapping) на соответствующих полигонах модели, чтобы они использовали стандартную текстуру для фар с материала GPLC. Если это ограничение слишком жесткое, и вы хотите оставить фары с индивидуальной текстурой для вашей машины, эффектом света придется пожертвовать — в игре будет только светиться маячок (Flare эффект). Это допустимо для небольших задних фонарей, но недопустимо для фар ближнего света.

Конвертирование материалов (применение шейдеров Mafia 2).
Для конвертирования материалов нужно нажать одним кликом на материал и посмотреть, к какой детали он относится: для этого можно включать/выключать галочку на материале — в 3D окне будут пропадать/появляться полигоны, соответствующие этому материалу. Конвертирование осуществляем скриптом, вызывая меню в правой-верхней кнопки редактора материалов (иконка материала с «шестеренкой») и выбирая там конфигурацию из ветки «Mafia 2».
Для салона рекомендуется применять шейдер «Vehicle-generic», можно применить этот шейдер и к другим элементам, это ошибкой считаться не будет, но для подкапотного пространства можно применить шейдер «diff».

При переделывании материала стекол во вкладке User-defined options можно внести свойство Hash от оригинального материала для стекол. Важно: в игре допускается только один материал с каждым уникальным значением Hash — нельзя пользоваться одним и тем же значением Hash на разных материалах. Про невозможность замены текстуры на материале GPLC («фары») уже было сказано выше. (рис.9.3).

ВАЖНО
Количество новых материалов для машин ограничено, поэтому учтите, что количество новых материалов, помимо стандартных, не должно быть больше восьми (8). Если будет больше, модель будет работать, но при аварии, стрельбе или просто подходе к машине, вас может выкинуть. Для первой проверки работоспособности модели, уменьшать количество материалов не обязательно, но в дальнейшем учтите, не востребованные материалы текстур, придется текстурить к другим материалам.

Если хотите, чтобы материал с текстурой фары оставался нетронутым, к нему также можно применить шейдер Vehicle — generic, в этом случае он будет разбиваться, но не будет светиться текстурой, будет только flare-эффект.
Для остальных материалов (салон, дно, шильдики, моторный отсек и т.д.) то же самое — подбираем подходящий шейдер и применяем.
Ещё раз, для корректной работы материала в игре (покраска, разбивание стекол, свет фар, чернение при сгорании) на материалах «краска», «хром», «фары», «стёкла» нужен оставить соответствующий родной хеш, от заменяемой модели. Хеш для «краски» от другой модели не подойдет для вашей модели. Также помните, что указывая хеш, вы заменяете во всей игре данный материал своим.
После того, как завершите с материалами, можно приступать к первому экспорту вашей модели.
Сделайте отдельную папку для экспорта, поместите туда файл экспорта «название автомобиля».mafia .
Жмем экспорт, убеждаемся, что в окне лога нет ошибок. Из папки с экспортированными файлами копируем FrameNameTable_0.bin, FrameResource_0.bin, IndexBufferPool_0.bin, VertexBufferPool_0.bin и помещаем в папку с распакованной ранее оригинальной машиной.
Заменяем файлы, далее программой SDS Tool GUI запаковываем измененный архив обратно. Для этого в центре программы нажмите на стрелочку назад «<«.
ItemDesc пока можете оставить на месте, при условии, что не изменяли коллизию вашей модели. Если при замене игра с первого раза не запустилась, перезапустите ещё раз и игра примет по-новому вашу модель.
Если при замене ItemDesc у вашей модели появились сверху дыры, можете установить из резервной копии ItemDesc от родной модели.

Теперь вам нужно зарегистрировать материалы от вашей модели в общей базе игры default.mtl (mafia 2\edit\materials\). Материалы вашей модели прописываются на экспорте в файл (название автомобиля).mtl в папке экспорта.
Для этого вам нужно скопировать экспортный файл «название автомобиля».mtl и вставить в одну папку с defailt.mtl. Открыть программу Material_Converter. Нажать Open и выбрать файл default.mtl, расположенный в корне игры. Далее в программе нажмите на «Merge (*.mtl)» и выберите экспортный файл «название автомобиля».mtl и нажмите «Save».
При объединении текстур рекомендуется в первую очередь открыть, ваш полученный .mtl и удалить (это обязательно) из него параметры от оригинальных материалов и потом сохранить только с новыми материалами. Это нужно для того, что бы при объединении файлов, не произошел сдвиг оригинального расположения параметров от нового авто. Игра чувствительно реагирует на любые изменения, если параметры оригинального материала будет стоять не на своем месте, иногда это приводит к некорректной работе текстур.
Важно: для публикации модов нужно прилагать файл только с новыми параметрами в вашем .mtl.

Если вы использовали оригинальные материалы (сохраняли значение Hash и лишь меняли текстуры), то не будет лишним найти эти оригинальные материалы и поменять названия родных текстур, на свои. В этом случае допускается оставлять оригинальный материал.

Таким образом, у вас будут зарегистрированы новые/измененные материалы от вашей модели, если же этого не сделать, то текстуры модели будут ярко зелеными.

Урок по запаковке новых текстур в архив автомобиля.
Теперь нужно подготовить сохраненные ранее текстуры (уникальные для вашей модели) для запаковки в .SDS архив. Текстуры в mafia 2 дублируются: одна текстура большего разрешения, другая меньшего разрешения. Для создания такой пары текстур вам нужно в Photoshop-е сохранить каждую из ваших текстур как имя_текстуры.dds и при сохранении указать «No MIP Maps». Затем уменьшить текстуру вдвое (Image -> Image Size и вписываете вдвое меньший размер, как по вертикали, так и по горизонтали) и сохранить эту текстуру в отдельную папку от текстуры большего разрешения, т. к. названия текстур будут одинаковыми, но при сохранении в этот раз с опцией «Generate MIP maps». Внимательно следите, что бы обе текстуры, были с одинаковыми названиями «Texture».dds (высокого разрешения) и «Texture».dds (уменьшенного на половину разрешения).
Важно: Размер текстуры в Mafia2 не должен превышать 1024×1024.
Если ваша текстура больше допустимого размера, уменьшите её до 1024×1024 и сохраните. Маленькую текстуру соответственно на 512х512 тоже сохраните. Текстуры должны быть в разных папках, так что тут важно не путать местами при запаковке.
Также можно сразу переделать рельефные текстуры для кузова и хрома, чтобы они давали правильное отображение. Текстуры рельефа в Mafia2 используют либо «8.8 Alpha.Luminance», либо RGBA текстуры рельефа, где каналы R и A поменяны местами (такие текстуры в программе отображаются ярко-малиновыми вместо привычных фиолетовых).
После проделанных подготовительных работ с текстурами нужно запаковать их в архив программой ExpSDS. (автор Y.U.S.I.K). Программа содержится в архиве Tools Pack.

В окне программы ExpSDS нажмите «Open» и выберите sds архив заменяемого автомобиля (рис ниже).

Далее работаем со списком в левой части окна программы. Маленькие текстуры лежат во вкладке «Texture», а текстуры высокого разрешения вынесены во вкладку «Mipmap». Для добавления текстур наведите на вкладку, нажмите правой кнопкой мыши и выберите «Add Files» (рис. ниже).

Текстуры высокого и низкого разрешения должны быть с одинаковыми именами, поэтому для удобства и чтобы не запутаться в текстурах, рекомендуется при их создание, создать две папки. Одну подпишите как «Mipmap» и вложите туда текстуры высокого разрешения, а для текстур низкого разрешения (разрешение которых в два раза меньше ) создайте вторую папку «Texture» и вложите туда текстуры меньшего разрешения.
Что бы добавить в программе ExpSDS несколько текстур сразу, при выборе текстуры удерживайте левый Ctrl. Добавляйте текстуры правильно, повторюсь, названия больших и маленьких текстур должно быть одинаковым. Упаковывать их вы должны в разные разделы. Для текстур с большим разрешением это вкладка «Mipmap», а для текстур с низким разрешением вкладка » Texture», соответственно из заготовленных папок кидайте текстуры в соответствующие разделы.
Далее нажмите «Save» и выберите снова ваш архив и ещё раз нажмите «сохранить» (рис. ниже).

Таким образом, у вас сохранятся все текстуры в архиве с автомобилем.
Всё, проверяем наш автомобиль в игре. Если все работает хорошо, то возвращаемся к ZModeler и начинаем прописывать полигонам ID. Номера вводим для стекол на материале «стекла», для фонарей, и номерном знаке на материале «GPLC».
Для стекол ID номера.

  • Лобовое 1 (левое), 2 (правое) или просто 1 если оно общее.
  • Форточка на передней левой двери 3
  • Форточка на передней правой двери 4
  • Стекло на передней левой двери 5
  • Стекло на передней правой двери 6
  • Стекло на задней левой двери (в кузове купе, задние стекла) 7
  • Стекло на задней правой двери (в кузове купе, задние стекла) 8
  • Форточка на задней левой двери 9
  • Форточка на задней правой двери 10
  • Заднее стекло 11

Для Света:

  • 48 фары передние левая/правая
  • 49 Поворотник левый
  • 50 поворотник правый
  • 51 стоп центральный
  • 52 стопы левые
  • 53 стопы правые
  • 54 задний ход левый/правый

Стекла будут биться, а фары гореть при условии, что они назначены к родным материалам для света («GLPC») и стекол (…….._glass) .
Далее создаем кузову мэппинг (текстурирование) на стандартную текстуру грязи на втором UV канале (стандартная процедура).

Нанесение винилов.
Для нанесения винилов нужно заменить в материале «краски» кузова текстуру грязи на винил и указать 3 канал (рис ниже), а в программе нажать кнопку «Dust». Вместо грязи будет отображаться винил (по мере создания мэппинга на третьем UV канале). Убедитесь, что у объекта геометрии в свойствах выставлены три канала UV: Properties- > Mesh- > Vertices- > Format- > UV Channels = 3 и нажмите Apply.

Мэппинг генерируем инструментом Surface\Mapping\Edit UV на нужном вами виде. В появившемся окне настроек установите 3 канал UV и «Generate New», также рекомендуется выключить «Continuous Mesh surface».

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

Далее жмем экспорт, собираем снова SDS прогой SDS Tool GUI и довольствуемся результатом.

P.S. Кто не хочет возиться с запаковкой текстур и их переделкой, можно создать одну общую текстуру и полностью перетекстурить свою модель. Сделав, таким образом, аналогично родным машинам. Текстуру можно сохранить под именем оригинальной текстуры модели, при этом не придется создавать новые материалы, а значит в игре будет чернеть при сгорании и кузов, и салон, всё будет светиться и работать как на родных машинах (при условии сохранения родных Hash значений на материалах и замене лишь текстур). Данное допущение опять же не относится к материалу GPLC, текстуру на котором менять нельзя.

Обновление

Теперь для регистрации текстур появилась небольшая утилита, делающая установку текстур проще как модмейкерам, там и простым пользователям. Утилиту и экспортный файл (название автомобиля).mtl кидать в edit/materials. Далее вам остается запустить утилиту, программа работает в фоновом режиме, следовательно вам нажимать ничего не нужно. Таким образом, программа сама перенесет данные из .mtl файла мода в общий default.mtl

Скачать MafiaIIMaterialsMergerАвтор программы: Олег (zmodeler3.com)

Обновление

Теперь доступен импорт\экспорт колес. Замена модели стандартная процедура, но учтите, что для файлов колес стоит защита от новых материалов. Поэтому вам придется сначала переделать оригинальные текстуры, а затем протекстурить модели колес.

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

Обновление экспортера от 30.01.2017
Добавлен импорт\экспорт персонажей NPC в мафии 2 (главные персонажи используют physx, поэтому игра не дает делать для них никаких изменений). Перед импортом нужно снять галочку
В мафии 2 персонажи большей частью протекстурены практически на один материал, экспортеру сложно экспортировать такие модели, поэтому что бы экспортировать вашу модель, нужно скопировать один раз материал одежды и применить на этот материал нужную часть персонажа, если одного скопированного материала будет мало, скопируйте ещё раз этот материал и примените другую часть персонажа на этот материал.
Для лучшего отображения персонажа, рекомендуется материал глаза переместить в самый конец списка в Material Browser.
Обратите внимание, есть недоработки в работе экспортера персонажей.

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

Для начала вам нужно как можно точней подогнать новый скин по размерам с заменяемой моделью, затем скопировать от оригинальной модели влияние костей на новую (Rigging—Copy Weight) (сами кости двигать нельзя иначе у вас в игре будет поведенная модель, поэтому нужно подгонять новый скин по оригиналу), замените модель и далее примените шейдер одежды к новым материалам, не забудьте для начала подготовить текстуры в формате .dds и двух размеров (большие и маленькие размером). Как все сделаете можете экспортировать модель. Текстуры упаковать в архив модели программой ExpSDS, затем не забудьте в экспортированный .mtl вашей модели скина зарегистрировать в файле default.mtl. Важно при регистрации вашего .mtl или для дальнейшей публикации мода, удаляйте оригинальные параметры от уже зарегистрированных материалов.

Также доступны видеогайд по конверту:

Автор статьи: Agens

Категории: Статьи и гайды | 0 комментариев |

Оставить комментарий

Вы можете оставить комментарий как гость или войти, используя аккаунт в социальных сетях