Перейти к содержанию
Авторизация  
elma

Unity Unity, моддинг

Рекомендуемые сообщения

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

существуют игры, где модинг не только предусмотрен разработчиками, но и есть кошерный инструментарий для этого заботливо предоставленный разрабами. такие игры немногочисленны и встречаются немногим чаще единорогов в кабаках. в качестве примера будет ATOM RPG- отечественная игрулька по мотивам фолыча 1-2 в советских реалиях и с кошерным графонием. для моддинга данной игры необходимо скачать модкит, который являет собой сильно урезанный юнити проект игры и саму среду разработки юнити желательно той версии, под которую предназначен модкит. инструкции под модинг валяются в инете и там сложного ничего нет.

 

далее, существуют игры, где модинг предусмотрен разработчиками, но они *** клали на инструметарий для самого модинга. тут в качестве примера пойдут Pillars of Eternity 1-2 - через файлы с xml структурой можно править очень многое- параметры шмоток, параметры левелапов, некоторые диалоги и условия под них, некоторые куски игровой механики. к слову, данный модинг можно проворачивать и редактируя файлы игры напрямую, но это не только менее удобно, но и в случае обновления версии игры данный модинг может пойти на****. данный вид модинга становиться возможен только в том случае, если разрабы специально вынесли параметры ассетов юнити во внешне хранимые файлы.

 

далее существуют игры, где модинга не завезли вообще, но ручонки сильно хотят модифицировать параметры шмотки. это возможно, но для этого нужно:

1. много времени

2. немеряно упорства/упоротости

3. четкое понимание того, что хочется сделать

4. ОЧЕНЬ стабильная психика и/или куча успокоительного и/или антидпресантов

при наличии всего вышеперечисленного можно попытать счастья. для примера возьмем ATOM RPG того периода, когда он не имел модкита. в качестве инструментария берем Unity Asset Editor и им открываем файл ассетов ииии... СУРПРЫЗ МАЗАФАКА! ассетов больше полмиллиона из которых нас интересует только один(для начала)... для большинства похождения алисы в зазеркалье модов заканчиваються на этом этапе. более упорные могут потратив некоторое время по названию ассета найти нужный ассет и увидеть ... почти фигу. дело в том, что ассет юнити храниться в виде объекта с кучей полей. представим себе, что задача стоит к шмотке дающей +10 к трындежу добавить +5000 переносимого веса, +20 к ловкости и +10 к удаче. при такой постановке вопроса сразу же настает кирдык- утилита нормально не способна мучать вложенные поля объекта и уродует их. казалось бы- все, финиш, но нет- экспортируем ассет в RAW(сыром) виде и начинаем текстово редактировать. далее следует очередной сурпрыз- разложенный ассет из себя представляет НЁХ, в которой нифига непонятно, но при желании можно увидеть строчку с неведомой цыфрой и цифрой 10 (шмотка то давала +10 к трындежу ведь) и неподалеку цифру 1. цифра "1" означает количество эффектов шмотки и мы смело вдалбываем 4 (1 свойство есть и 3 добавляем), а "неведомая цыфра" обозначет ID эффекта "трындеж". а далее наступает самое веселое- надо снова среди полумиллиона ассетов найти шмотки, которые будут давать те эффекты, которые мы хотим вкорячить в модошмотку. спустя до*** времени ID эфектов находятся и вкорячиваются в RAW ассет с соблюдением структуры объекта по образцу и подобию уже имеющейся записи эффекта.

ктото решил, что это финал и счастье настало? *** вам. далее собранное ручками гуано импортируеться назад и нужно компильнуть патчер. после компиляции мы получаем мелкий экзешник, который можно кинуть поближе к файлу ассетов и запустить. после того как инжектор отработает результатом будет замоденый файл ассетов и бэкап. если вспомнить, сколько весят подобные файлы- процесс будет сильно не быстрым и в случае удачного модинга можно будет еще удалить большой файлик бекапа.

при удачном стечении обстоятельств или знании того что и как делать- вуаля- ЗАМОДЕНО! да, процесс отбитый, но реальный для достижения результата... и когда я в чате писал, что модю в юнити и вел себя неадекватно- это был примерно этот процесс, только на порядок сложнее.

 

также существуют игры, где может и есть какаянить поддержка моддинга, но доступа к самой механике игрового процесса нет, тк это зашивается в библиотеку при компиляции. для примера возьмем Pillars of Eternity 2- допустим, нас не устраивает то, что на богоподобных (godlike) нельзя одевать шлемы. лезем на нексус... и видим фигу- тамошние немощи такого не осилили. не беда. берем утилиту навроде dnspy, ей открываем файл of Assembly-CSharp.dll(обязательно делаем бэкап) ииии... видим кучу жути. далее, если гражданин полезший во все это способен немного читать C#/C++, то он найдет нехорошие строчки:

if (slot == Equippable.EquipmentSlot.Head)
{
return !component || component.CharacterRace != CharacterStats.Race.Godlike;
}

этот кусок кода исправно "постукивает" о невозможности одеть шлем на богоподобного. для тех, кто в танке, можно немного "доработать" код:

return !component || component.CharacterRace != None;

и вуаля- шлемы одеваються, как родные. далее можно спокойно допилить спелбуки, питомцев и прочую фигню.

данный простейший модинг наглядно демонстрирует, насколько беспомощные и жалкие немощи 99.99% "мододелов" на нексусе. такую простейшую фигню до сих пор не способны слепить... куда им, с грыжей...

 

далее, существуют п****ие игры. не в прямом смысле секскуяльной ориентации, а в плане того, что ихние авторы являються патентованными жадными п***и. в качестве примера возьмем порноигрульки Last Man и Glamour. фикус подобного шлака в том, что у игрока есть только клиент игры с картинками, а сейвы и скрипты торчат у автора на сервере и поиграть соответственно можно с царского позволения автора... естественно, за бабло. притом у "Last Man" нет своего графония и автор сего высера пихает картиночки/гифки с реальным порно. да, как бы в "Last Man" можно попытаться поиграть бесплатно, но с кучей отрезанного контента и *** горой дрючевного гринда. на фоне этого автор "Glamour" выглядит не настолько уж и ****м - графоний сам клепает в дазе и даже можно найти стыренную "оффлайн" версию (насколько оффлайном можно считать кривенький эмулятор сервера- это большой вопрос). т.е. в подобных играх моддинга не существует СОВСЕМ и ВООБЩЕ.

 

текст далее будет дополняться по мере самочувствия и желания. все с просьбами "замодь мне игрульку", "слышь не впадлу сделай эту фигню" будут посланый на***- я не просто не мать-тереза, а грубый и неженственный жлоб.

 

текст авторский, написан лично мною, великим и гениальным икслюзивно для ГС. если когото будет распирать желание репостнуть в иных местах, то разрешаю поползать на коленях и поумолять- существует 0.0000001% шанс, что я снизойду до этой челобитной 👑

Изменено пользователем elma

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

важное дополнение в той части, где говорилось об редактировании файла Assembly-CSharp.dll- сейчас разработчики игр начали бороться с этим путем собирания всех библиотек, генерируемых движком юнити в один единственный файл GameAssembly.dll.

казалось бы- все, катострофа, все потеряно, но есть таки варианты модить такое. варианты достаточно трудозатратные и если предыдущая часть вам казалась чемто безумным- то вы ошибаетесь, безумие только начинается.

сразу оговорюсь- нативные библиотеки юнити могут быть спрятаны не только в GameAssembly.dll и global-metadata.dat, но и в самом исполняемом файле игры, это вообще никак не влияет.

инструментом для вскрытия пукана библиотек игры для нас будет 

Скрытое содержимое

    Для просмотра скрытого содержимого необходима РЕГИСТРАЦИЯ на сайте.
. соответственно скачиваем, распаковываем, закидываем в папку с утилитой игру.exe, GameAssembly.dll, global-metadata.dat  и запускаем в командной строке утилиту строкой навроде:

Il2CppDumper.exe GameAssembly.dll global-metadata.dat

(в зависимости от того, куда разрабы игры запихали библиотеки командная строка может отличаться)

в качестве подопытного берем сомнительную игру отечественного разлива Encased. в данном случае мы получим после расчленения похабно- огромный Assembly-CSharp.dll весом в 22 мб (для сравнения- Pathfinder Kingmaker, несущий на борту на порядки больше контента имеет Assembly-CSharp.dll весом всего 7 мб, ну вы поняли насчет кривизны чьихто рук)

 

далее, если ктото решил, что победа в кармане и мы всего добились- закатывайте губу- мы не добились пока НИЧЕГО. да, мы получили файлы библиотек и можем их править, но к игре это никак не прилепить. поэтому продолжаем наше безумие...

 

для себя я нашел 2 варианта прикручивать результаты моддинга к игре:

ВАРИАНТ 1:

довольно дурной и не всегда возможный- это попытаться собрать после редактирования библиотеки назад в GameAssembly.dll, начало процесса описано

Скрытое содержимое

    Для просмотра скрытого содержимого необходима РЕГИСТРАЦИЯ на сайте.
. этот вариант отметается сразу и бесповоротно, т.к. нормально этот способ не работает, плюс надо иметь знания в среде юнити, на подбирать соответствующую версию платформы юнити(чтоб иметь хоть какието мизерные шанся на успех). но если уж охота извращений- пожалуйста, от себя добавлю, что версию юнити таки проще глянуть так: правой кнопкой на файле UnityPlayer.dll, вкладка "подробно" , а не так извратно, как по ссылке.

ВАРИАНТ 2:

этот вариант на текущий момент не только единственно нормально работающий, но и позволяющий не просто чтото лепить под себя, но и создавать моды и распостранять их.

сие волшебное колдунство становится возможным благодаря 

Скрытое содержимое

    Для просмотра скрытого содержимого необходима РЕГИСТРАЦИЯ на сайте.
. это довольно примитивная программа являет собой ни что иное, как инжектор. и в отличии от метода редактирования библиотеки Assembly-CSharp.dll "в лоб" там используются только диффиренциальные изменения, т.е. изменения конкретных методов, классов, функций, процедур. это дает огромное преимущество- игру можно спокойно обновлять, устанавливать любое количество модов (конечно если эти моды не конфликтуют, изменяя один и тотже объект.).

ВАЖНО- UMM определяется большинством антивирусов, как нечто злобное и поганое, т.к. использует инжект. соответственно, не надо в процессе делать круглые глаза и хватать валидол.

документация на создание модов, добавление игр в менеджер и прочая фигня есть и на вики umm и на странице нексуса, ничего особо сложного там нет, но переводить и/или писать такой объем текста я не осилю. от себя добавлю- крайне не рекомендую использовать симлинки, это не всегда корректно работает.

 

 

теперь немного об упомянутой игрульке Encased- мало того, что разрабы убили моддинг своего поделия(вы нигде не найдете ничего для игры кроме бесполезных портретиков), так еще разрабы налюбили потребителей выпустив игру недоделаной. что я подразумеваю под "недоделанностью"? то, что после 1 главы нет ни1 сайдквеста, в открывшихся локациях неписи могут только ляпнуть фразу- другую, если они не вовлечены в сюжетный квест и его ответвления. но заметить это мразотство и затребовать возврат денег вы не сможете, ибо первые 8-10 часов все нормально, а потом уже поздно. по итогу- игра не только наполовину недоделаная, но и фактически без возможности моддинга. таково будущее игр...

Изменено пользователем elma
обновление

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • От Alisacat007
      Добавление моделей в моды
       
      Этот гайд поможет Вам наиболее простым и понятным способом добавить любую понравившуюся модель оружия\брони\коня и др. из одного мода в другой.
      Рассматриваемый здесь процесс предназначен для использования только в ЛИЧНЫХ целях в конкретно в Вашем играемом моде.

      Для работы понадобятся две несложные в освоении программы :
      OpenBRF (v0.0.81b) :
      Скрытое содержимое
      Для просмотра скрытого содержимого необходима РЕГИСТРАЦИЯ на сайте.
      Morgh's Mount & Blade WB/WFAS Editor V-1.50 : Скрытое содержимое
      Для просмотра скрытого содержимого необходима РЕГИСТРАЦИЯ на сайте.  
      Рассмотрим на примере Латного доспеха Сокола из замечательного мода Prophesy of Pendor v3.9.5 (от 13.03.2020) :
      Скрытое содержимое
      Для просмотра скрытого содержимого необходима РЕГИСТРАЦИЯ на сайте.
      Русификатор (Авторы : Dalion и firon, на основе работ Faraon67 и Валуа) уже официально включен в мод.
      Всем, кто еще не играл, советую обязательно ознакомиться.
      А тем, кто захочет открыть по нему на форуме тему, буду благодарен.  
      1) Если мод, из которого Вам нужно взять модель, русифицирован, то ищем название нужной модели в русификаторе :
      Блокнотом (или другим текстовым редактором) открываем файл Prophesy of Pendor V3.9.5\languages\ru\item_kinds.csv  и через Поиск находим строку с названием брони    Латный доспех Сокола :
       
      itm_falcon_plate|Латный доспех Сокола
       
      2) Блокнотом открываем файл Prophesy of Pendor V3.9.5\item_kinds1.txt
      В этом файле прописываются все предметы и их характеристики используемые в моде.
      В поиск вставляем   itm_falcon_plate
      и видим строку :
       
       itm_falcon_plate Falcon_Plate Falcon_Plate 1  falcon_plate 0  16842765 0 10033 973078948 23.000000 10 2 56 20 18 0 0 0 0 0 0 0
       
      , нас пока в ней интересует только название нужной модели в доспехе. Это - falcon_plate
      Имя любой модели будет всегда находится только на этом месте.
      Если Вы играете в не русифицированную версию мода, то сразу начинайте со 2 пункта, вводя в поиск английскую версию нужной Вам брони.
       
      3) Вот теперь нам и необходима программа OpenBRF. С ее помощью мы можем просмотреть все модели используемые в моде.
      Они хранятся в папке Resource в специальных архивах с расширением .brf
      Открываем первый же архив в списке, например - ACOK_carpets.brf
      Воспользуемся копипастой с клавиатуры Ctrl+F
      В открывшемся окне вводим название нашей модели    falcon_plate
      Из выпавшего списка выбираем нужный Mesh (берите без lod'ов)


       
      Таким образом мы находим архив с нужной моделью -  pop_women_armor.brf
      Данный метод (через Ctrl+F) хорош тем, что сразу показывает все модели, прописанные в файле   item_kinds1.txt
      Они выделяются жирным синим цветом. Мусорные модели, которые автор поленился удалить при разработке мода, будут намного бледнее.
      В нашем случае опытные авторы мода сделали грамотный архив.


       
      4) Теперь этой же программой нам надо создать в моде, в который мы хотим добавить этот доспех, новый архивный файл .brf
      Открываем в OpenBRF папку Resource в этом моде (для примера я выбрал стандартный модуль Native), не закрывая предыдущего окна с найденной моделью.
      Очень удобно, что OpenBRF может запускаться одновременно во многих отдельных окнах.
      В левом верхнем углу  File - New
      В предыдущем окне с моделью falcon_plate через клавиатуру нажимаем Ctrl+C , а в новом окне Ctrl+V . Все, модель перенесена.


       
      Далее советую обязательно сохранить новый архив :
      File - Save As... - Вводим имя (напр. ALISA)

      ВНИМАНИЕ ! 1) При сохранении правильно выберите тип файла (В нашем случае WarBand Resource)
                                 2) Должна в названии быть только латиница.
                                 3) Сверху в окне сохранения укажите нужный путь в папку Native\Resource
       
      5) Необходимо обязательно повторить копипаст с клавиатуры Ctrl+C, Ctrl+V для материала и текстур этой модели.
      Для этого нажимаем активную надпись синего цвета Material , и плавно переходим на окно с материалами.
      В этом окне последовательно переходим на все используемые текстуры и тоже копируем их в новый архив.
      Возврат к предыдущему окну через синюю надпись (back).
      Переместить строку внутри окна можно через Alt - стрелки вверх\вниз.
      Просмотреть несколько строк можно выделив их ЛКМ.


       
      Сохраняем вновь наш созданный архив в нужную папку с модом.
      ВНИМАНИЕ ! Обязательно проверьте место расположения шейдеров в архиве, откуда берем модель.
      Для этого в окне материала нажимаем на синюю надпись Shader.
      Если Вас перебросило на архив из самой игры, то лишних телодвижений уже делать не надо.
      Путь  CommonRes\core_shaders.brf  увидите вверху окна.
      Если Вас приведет на другой архив в самом моде (в некоторых модах используются свои шейдеры), то надо будет тупо скопировать этот указанный архив с шейдерами
      в папку Resource Вашего мода, и не забыть прописать его в файле module.ini


       
      Для всех lod'ов данной модели брони повторяем операции из 4 и 5 пункта.
      Лоды - это упрощенные варианты моделей, используемые при дистанцировании модели в игре от камеры. Для оптимизации игры и уменьшения нагузки на железо.
       
      6) Находим в папке Prophesy of Pendor V3.9.5\Textures  нужные текстуры и копируем их в аналогичную папку Вашего мода.
      Имена нужных текстр узнаем в Вашем созданном архиве.
      В нашнм случае их три (с нормалью и спекуляром) :
      armour_order_falcon.dds
      armour_order_n.dds
      armour_order_s.dds
       
      7) Теперь, для того чтобы наш мод увидел новую модель, необходимо созданный архив прописать в файле module.ini
      Открываем его блокнотом и в самом низу после последних строк начинающихся на load_resource =    или    load_mod_resource =
      прописываем свою строку. В нашем случае это :
       
      load_mod_resource = ALISA
       
      8 )  Далее необходимо прописать в файле Вашего мода item_kinds1.txt  новый созданный доспех.
      Можно в самый низ этого файла (обычно перед нижней строкой )
       
       itm_ccoop_new_items_end Items_End Items_End 1  shield_round_a 0  0 0 1 0 0.000000 100 0 0 0 0 0 0 0 0 0 0 0
       
      просто добавить блок строк из Prophesy of Pendor V3.9.5 :
       
       itm_falcon_plate Falcon_Plate Falcon_Plate 1  falcon_plate 0  16842765 0 10033 973078948 23.000000 10 2 56 20 18 0 0 0 0 0 0 0
       1
       16
      0
       
      , сохранив пробелы между строк и нужные отступы.

      ВНИМАНИЕ ! Не забудьте во второй строке item_kinds1.txt изменить прописанное у Вас в моде трех или четырехзначное число на количество добавляемых новых предметов.
      Иначе игра их просто не увидит.
       
      А можно самому задать любые необходимые характеристики для Вашего нового доспеха.
       
      9) Здесь нам очень поможет программа Morgh's Mount & Blade WB/WFAS Editor V-1.50
      Я ее инсталлирую просто на Рабочий стол, а когда мне надо поработать с ней в каком то моде, тупо копирую в его папку.
      Тогда она сама найдет нужный путь к файлам. Потом эту прогу можно будет из папки с модом безболезненно удалить.
       
      Открываем программу и соглашаемся на сохранение конфигурации.
      Эта очень полезная программа работает с пятью текстовыми файлами :
      troops.txt - здесь можно изменять всех героев и юнитов.
      factions.txt - здесь можно изменять фракции.
      parties.txt - города\замки\деревни.
      party_template.txt - отряды и гарнизоны.
      item_kinds1.txt - уже знакомый нам файл со всеми предметами в моде. Вот он и будет нужен в данном случае.
      Находим через поиск нужную строку (у нас это itm_falcon_plate) и правим характеристики доспеха под себя любимых.


       
      Описание всех окон я даю по тексту со Всадников Кальрадии с моими небольшими добавлениями :
       
       
      Знаком !!!!!!!!!!!!! я выделил парамеры, на которые особенно обращаю внимание при создании своих мини-модов.

      Не пугайтесь обилию текста в этом гайде. Сделав все по нему пару раз, дальше алгоритм запоминается.
      Все неясности прошу обсуждать в данной теме.
      По прогрмме OpenBRF я возможно в дальнейшем оформлю отдельный гайд, т.к. интересных возможностей у нее еще очень много.
    • От elma
      Хитрости, особенности, фичи и баги
       
       

       
       
      Предлагаю здесь насыпать вышеобозначенных "особенностей" сей игры. Я насыплю насчет торговли относительно версий 1.0.0-1.0.11:
      - прокачка скила торговли происходит только если вы купили товар в одном месте дешево и продали в другом месте дорого.
      - разъясню предыдущий пункт- если товар имеет происхождение военной добычи или рейда деревни- с него не будет прокачки навыка торговли
      - предельно упрощенно схема прокачки навыка выглядит так- купил в одном городе 100 рыбы по 7 и продал в другом городе по 18. все. гешефт и прокачка скила.
      - чтобы понять, сделка качнула навык или нет- до сделки смотрим опыт в навыке и запоминаем и смотрим после сделки. если капнуло- то все ок, если нет- то надо дочитать этот "гайд"
      - есть товары, которые не дают опыта при барыгании помимо трофейных- это кузнечные ресы, притом есть ОЧЕНЬ существенная особенность- к этим ресурсам относиться и древесина. объясню коварство торговли древесиной в двух иллюстрациях: а) разобрал кучу вил и получил 100 дерева, которое выгодно толкнул -> прокачки шиш ибо рес не был куплен б) имея 100 дерева, разобрал оружий на еще 100 дерева и выгодно толкнул 100 дерева -> прокачки шиш ибо сначала продалось накрафченое дерево, которое не было куплено.
      - торговля в деревнями навык качает, но как правило там и товара очень мало и бегать можно офигеть. если уж есть желание, то дам подсказку- у деревни есть профильный товар, который можно увидеть наведя на деревню мышку.
      - торговать с караванами теоретически можно, но следует учитывать то, что как правило у них не корректно отображаються цены и изменения цен. т.е. за сделку деньги выдадут честно, но как правило прокачки торговли не будет.
      - а теперь самая главная особенность торговли-  чем больше товара вы покупаете, тем больше становиться его цена и соответственно чем больше вы продаете товара, тем он дешевле. для иллюстрации: я имею 200 рыбы, которую купил по 10, с разгона показываеться продажная цена 20, далее можно сделать глупость и перетащить весь товар и недоглядев его продать за 6, а можно продать только 40-50 рыбок по 16-17 и получить гешефт и прокачку навыка.
      - идея "круто забарыгать" харчами может кончиться тем, что войска в процессе передвижения просто сожрут "вскусняшки", так что имхо пытаться забарыгать харчем кроме зерна и рыбы кончиться потерей бабла.
      - у торговли есть еще одна огромная трудность - после загрузки игры полностью отваливаются все данные о том, что и почем было куплено и, соответственно, никакого расчета гешефта не происходит (но таки прибыль есть).
      кстати, касательно караванов- у них бабло обновляется каждую сессию торговли и можно одному и тому же каравану слить товару на несколько его бюджетов.
       
       
      данный текст написан для гс и размещать его в других местах нельзя, ибо у злодея появиться гонорея и сифилис, а также его будут ректально любить бегемоты. впрочем, если много раз облыбзать мои тапки, то мое величество может снизойти...
       
×
×
  • Создать...

Важная информация

By using this site, you agree to our Условия использования.