Руководство по моддингу в CPM
Да будет свет - сказал электрик, поэтому ловите первое и единое на данный момент руководство для создания модов в CPM от А до Я. Способа создания модов на телефоне НЕТ и НЕ БУДЕТ. Это невозможно с технической точки зрения.
- Необходимые программы.
- Распаковка APK файла.
- Поиск ассетов и их вскрытие.
- Поиск автомобилей для модов.
- Строение автомобиля в CPM.
- Адаптация модели для CPM.
- Текстурирование модели.
- Билд мода.
- Замена дампов.
- Импорт нового авто в игру.
- Замена иконки и текстур автомобиля.
- Замена других текстур в игре.
- Замена названия игры и начального экрана.
- Упаковка APK файла.
- Подпись APK файла и распространение.
Прежде всего нам понадобится перечень необходимых для моддинга программ:
- Движок Unity версии 2021 года.
- Unity Asset Studio.
- Unity Asset Bundle Extractor.
- Notepad++.
- APKtool
- Photoshop или любой другой фото-редактор.
Доп: это не все программы которые вам могут понадобится. Я так же буду оставлять ссылки на них и дальше, в зависимости от темы.
И так, программы и библиотеки на нашем ПК, что же делать дальше?
После скачивания APKtool нам необходимо создать папку для него (на диске С), после чего в эту папку мы закидываем чистый APK файл, который можно загрузить здесь.
Дальше нам необходимо запустить apktool. Проще всего сделать это через консоль, которую мы откроем через Win + R, и пропишем сmd.exe
По открытию консоли нужно прописать команду для запуска программы, указав ее расположение, в моем случае это:
cd C:\work\apktool
apktool d My_Mod_CPM.apk
Немного ждем, и программа распечатает APK файл.
Для нас открывается содержимое, но сейчас нас интересует путь assets/bin/data.
Сердце игры найдено, наступает самый интересный момент.
Открываем Asset Studio, и вверху выбираем File - Load File.
Переходим к директории распакованного APK файла, и использовав Ctrl + A выделяем абсолютно все файлы, после чего открываем их на чтение программе.
После того как Asset Studio загрузил все ассеты, мы должны перейти во вкладку Asset List и выставить фильтр на "Mesh":
Надеюсь вы уже определились с авто, которое будете добавлять, поскольку сейчас нам нужно найти стоковую модельку под замену. «Любая» не подойдет. Нам необходимо авто с таким же количеством дверей, с похожими размерами, посадкой игрока, похожей геометрией и расположением колесных арок.
Для примера я добавлю BMW X5 F95, поэтому под замену я возьму BMW X5 E70. В вашем случае это могут быть более неоднозначные варианты под замену, но важно чтобы модель была подходящая. Нужно найти этот самый х5 в ассетах.
Здесь стоит отметить, что в CPM нет адекватного обозначения 3д моделей, поэтому в основном поиск проводится по слову "body"
Здесь легко запутаться, поэтому нужно быть внимательным и постараться не пропустить подходящую модель. Не у всех моделей авто кузов помечен как "body". Это могут быть обозначения реальной модели авто, к примеру так это с моим Х5:
Найдя необходимую модельку мы нажимаем на нее правой кнопкой мыши, и переходим к оригинальному файлу через "Show original file"
В данном файле хранится вся моделька из группы объектов. Теперь нам предстоит создать новую папку в любом месте, и создать в ней еще несколько папок:
Я помечаю эти папки так, но вы можете их назвать как будет удобнее для вас. Этот файл я перекидываю в папку, которую назвал "x5 stock". На этом поиск в ассетах не заканчивается, ведь нам нужно найти еще иконку авто и ее текстуры.
Мы убираем из фильтра "Mesh" и находим "Texture2D":
С иконкой авто проблемы нет. Мы сортируем все ассеты по имени, и находим пометки "b..", после чего находим иконку авто, которое в будущем мы будем заменять.
Аналогичным образом находим исходный файл, и перекидываем его в папку "Textures"
Теперь нам нужно найти текстуры фар. Это уже тяжелее, они могут быть помечены как "lights" так и "tex...". Наверное большую часть времени я провел именно в поиске этих фар..
Вот мы и собрали всё, что нам необходимо для замены авто. Теперь появляется вопрос: А откуда же брать модельки для замены? Здесь есть два пути
Первый вариант имеет довольно скудный выбор, а так же в большинстве своем платные модели совершенно для других целей. Поэтому второй вариант будет самым оптимальным. Множество моделей для GTA: San Andreas имеет небольшой вес, что дает неплохую оптимизацию, а так же они очень легко импортируются в блендер и просты в адаптации для CPM. Для примера возьму самые популярные сайты:
https://www.gtavicecity.ru/gta-san-andreas/
https://libertycity.ru/gta-san-andreas/
https://gta.com.ua/files_sa.phtml?section_id=1
https://www.gtainside.com/en/sanandreas/mods/
Так же можно доставать модельки из файлов лаунчеров РП Проектов по типу Arizona RP, Rodina RP, Hassle Online и прочих. Однако, для этого понадобиться дополнительно скачать GTA-SA Crazy IMG Editor, так же нам в любом случае понадобиться скачать MagicTXD, дабы мы могли достать текстуры из .txd файлов.
Для примера я достану авто из лаунчера Arizona RP. Если вы просто скачаете мод - способ будет точно такой же. Просто я достану авто из другого источника. Что в архиве с модом, что в лаунчере будет два файла - .dff и .txd
После скачивания модельки мы перекидываем файлы в другую папку (в моем случае "x5 new" которую я создавал ранее:
Теперь нам нужно достать текстуры из .txd файла. Для этого мы открываем его через MagicTXD и выбираем "Экспорт - Все текстуры"
Экспортируем в PNG формате в папку с .dff файлом (обязательно).
По итогу мы должны увидеть это:
Почти готово. Теперь нужно догрузить плагин DragonFF для блендера и установить его. Как только все установлено, мы можем приступать к самому трудоемкому процессу в создании модов - Адаптации авто. Но для начала немного теории:
Каждая модель авто в CPM состоит из группы объектов, и для правильной адаптации нам необходимо разделить нашу модельку на объекты в соответствии к стоковому авто. В случае с моим Х5 это группа из:
- body (кузов, который должен красится).
- black (элементы модельки которые должны быть просто черными. Условно внутренняя часть авто).
- plastic (пластиковые элементы кузова авто. У них свой материал, который отличается от black).
- exhaust ( выхлоп. Обычно накладывается материал хрома. Но не всегда, я бы сказал в зависимости от модельки).
- glass_window (стекла автомобиля, накладывается материал стекла, но с возможностью тонировки в будущем).
- glass_lights (стекла фар. Не стоит путать с glass_window, иначе у вас будут тонироваться фары, а не окна).
- Rmirror / Lmirror (зеркала авто. Тоже необходимо отделить для работоспособности зеркал).
- silver (элементы хрома).
- old_interier (интерьер авто. Под old помечается именно не загруженный интерьер, поэтому обычно мододелы и просят не загружать интерьеры).
Так же есть элементы, которые текстурируются:
- turn_right / turn_left (поворотники. Их так же необходимо отделять, чтобы у авто были рабочие указатели).
- diods (диоды фар).
- reverseLight (огни реверса).
- lights (передние фары).
- lights2 (задние фары).
- rearbrake (стопы, которые будут загораться при нажатии на тормоз).
- rearlight (фонари, которые горят всегда).
Это не всевозможные обозначения, вы так же можете встретить обозначения:
- fence (обычно помечатеся решетка. Тоже объект, который имеет текстуру, а не материал).
-carbon (элементы карбона, имеют свой материал).
И другое..
Ко всему выше отмечу, что у нас нет необходимости адаптировать покраску кузова, тонировку стекол, поворотники и прочее. На каждый объект в игре уже выставлен свой материал и скрипт к нему.