Каталог статей, Гайды и статьи, Atom RPG

Вводный курс по использованию ModKit (ATOM RPG)


Автор:
  Дата публикации: 22.03.2019, 07:45 · 18 302 · 0

  1. Описание

Предисловие

Данная инструкция написана мной (phobos2077) на основе того как я сам понял использование инструментария. Т.к. я не разработчик, мог чего-то не понять или понять неверно, имейте ввиду.

ModKit для ATOM RPG реализован в виде Unity-проекта (Unity - движок, на котором работает игра). Это значит что инструментарий работает только внутри запущенного редактора Unity. Поэтому первым делом нужно установить нужную версию редактора.
ModKit поставляется (на момент написания) в комплекте с файлами ресурсов игры, которые можно извлечь для редактирования. Пока там не все ресурсы, нет статики (текстур, моделей и т.п.). Т.е. вы работаете с копией ресурсов, которая не связана с установленной игрой ATOM RPG.

Моды созданные в ModKit представляют собой AssetBundle (по сути архив с дополнительными игровыми ресурсами в определенном формате, понятном Unity) + файл DLL (код мода).
Игра версии 1.08+ (либо бета-бранч) автоматически загружает моды, установленные в следующей папке:
c:\Users\<USERNAME>\AppData\LocalLow\AtomTeam\Atom\Mods\

Установка Unity

https://unity3d.com/ru/get-unity/download?ref=personal​​​​​​​



Вариант 1 (рекомендуемый, но требует установки еще одной проги)
- "Загрузить Unity Hub"
- Скачиваем, устанавливаем, запускаем
- Нажимаем Installs -> Official Releases -> Download (Напротив версии 2018.3*)



- В следующем окне ничего отмечать не нужно, жмем "Done"



- Дожидаемся скачивания и установки Unity
(этот вариант позволит в будущем легко устанавливать новые версии Unity, а также держать 2 и более версий на компе)

Вариант 2
- "Загрузить установщик"
- Скачиваем, следуем инструкциям установщика

После первого запуска потребуется авторизация. Необходимо будет создать учетную запись Unity

 

Коротко об использовании Unity Editor



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

Для разработки полноценных новых локаций потребуются базовые навыки разработки сцен в Unity (в интернете миллион туториалов на эту тему).

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

Рассмотрим основные окна.
1. Hierarchy/Иерархия - тут все объекты в открытой сцене. По умолчанию открыта пустая сцена Untitled. 
2. Scene/Сцена - 3D-представление сцены.
3. Project/Проект - дерево папок вашего проекта, с правой части показаны (4) ассеты (файлы игры) в выбранной папке.
5. Inspector/Инспектор - показывает свойства объекта, выбранного либо в сцене, либо в проекте. Самое важное для нас окно.

Готовим проект к разработке модов

https://github.com/atomrpg/modkit

- Нажимаем "Clone or download" -> "Download ZIP"



- Извлекаем папку "modkit-master" из архива
- Запускаем Unity
- (авторизуемся, если потребует)
- Жмем "Open"



- Выбираем нужный каталог



- После загрузки, главное окно редактора будет выглядеть примерно так:



- В меню выбираем Game -> Asset Viewer



- Увидим такое окно:



- Для удобства можем перетащить вкладку AssetViewer из этого окна в главное окно (рядом с Game, Scene, и тд)

В проекте modkit сразу идут ресурсы "примерного" мода. На первый раз рекомендуется ознакомиться с этими ресурсами, попробовать собрать мод и проверить его в игре. Но для дальнейшей разработки вашего мода нужно будет удалить всё лишнее, чтобы в готовом моде были только нужные ассеты.
Для очистки всего лишнего удаляем ТОЛЬКО следующие каталоги:
- Все подпапки в папке Resources/
- Все ассеты в папке Scenes/

Проект почищен, но мод работать не будет если не настроить должным образом скрипт мода.
- В проекте выбираем каталог Scripts/
- Щелкаем по MyMod и в инспекторе меняем поле Name на имя фашего мода (латиницей, без пробелов и лишних символов).



- Щелкаем в любое другое окно, появится сообщение "Unapplied import settings", выбираем "Apply".
- Ждем пока редактор пересобирёт скрипты.
- Щелкаем по ModEntryPoint правой кнопкой - "Show in Explorer". 
- В проводнике открываем файл ModEntryPoint.cs текстовым редактором:



- В данном скрипте разработчики добавили код необходимый для запуска того самого "примерного" мода с новой локацией. Нам же большая часть этого кода не нужна. Для новичков рекомендую заменить всё содержимое скрипта на мой вариант:
https://pastebin.com/VbBZ6U8w

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

Использование Asset Viewer



В окне AssetViewer в верхней части есть следующие элементы:
- Кнопка Reload - перезагружает ассеты из ресурсов (идут в комплекте с modkit)
- Поле поиска (2) - для фильтрации ассетов по имени
- Поле выбора категории (1) - для фильтрации по категориям ассетов

Для правки ассета сначала нужно его скачать в проект, для этого нажимаем правой кнопкой мыши -> Download. Выбранный ассет и все его зависимости (иконки, звуки и т.п.) подтянутся в проект:



Также AssetViewer можно использовать для просмотра ассетов (если не требуется их править), для этого просто щелкаем левой кнопкой мыши по ассету и смотрим его свойства в окне Инспектора.

Правка предметов при помощи ModKit

- По инструкции "Готовим проект.." настриваем проект мода и используем предложенный ModEntryPoint.cs
- По инструкции из раздела "Использование AssetViewer" скачиваем нужный предмет, в данном примере это будет АКМС.
- В проекте выбираем Resources/entities/weapon/ - ассет "akms" (тот что с логотипом Unity - это и есть описание предмета)
- Правим нужные характеристики, например урон (Damage Min/Max)



- Всё, правка готова, осталось лишь собрать мод

Сборка и тестирование мода

- В главном Unity меню выбираем "Game" -> "Build Mod"
- Вводим имя мода (ВАЖНО! должно совпадать с тем что мы указали в Scripts/MyMod в поле "Name", иначе работать не будет!)
- Нажимаем BUILD
- После успешной сборки откроется папка Mods с созданным модом. Убедитесь что имя DLL и созданной папки совпадают между собой и с тем что вы вводили:



​​​​​​​- Запускаем игру, изменения мода должны вступить в силу
- Если что-то не сработало, открываем логи игры:
C:\Users\Killian\AppData\LocalLow\AtomTeam\Atom\output_log.txt
- Ищем строку "Mod Init: SuperAK" либо просто имя вашего мода. Если найдено, значит мод собран и загружен успешно.
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

Категории

Чат доступен только для зарегистрированных пользователей. Войдите в аккаунт для общения в чате.

Лента комментариев

Получилось в итоге? Если нет, напиши в ЛС - думаю смогу помочь. Это чтобы тут заново не разводить тему про мак и конфиг с правилами загрузки модов

Сегодня, 10:13

Установлены все моды на пилатос от этого автора, конечно же не стал исключением и этотnakonecto
Как же здорово выглядит, можно теперь и малый бизнес мутитьnakonecto
За перевод отдельно спасибоetovam

Сегодня, 09:00

так мне нравится, я давно так не рофлил

Сегодня, 07:18

Скорее всего у тебя есть либо сломанные моды, либо какие-то моды конфликтующие с DD

Сегодня, 01:19

Jane_Moriarty тоже обновила перевод по моей просьбе.

Сегодня, 00:47

мне вот лень делать перевод для этого мода на 600+ строк, так что спасибо вам за труд!

Вчера, 22:15

Добрый вечер. Мне искренне жаль, что мой перевод вам не понравился, но даже если он кажется вам ужасным, то я над ним всё равно очень старалась, вложила время и попыталась сделать его интересным. Каждый переводчик имеет свой стиль. Можно просто удалить перевод, перевести самому или ждать другого переводчика, однако, пожалуйста, не обесценивайте мой труд и не переходите на оскорбления.

Вчера, 22:10

так я хотел Dark Lord Spellcaster установить, скачал перевод, открыл, почитал и превел сам

Вчера, 21:52

Нет.
Кроме "не выбирать маки для игр". )

Вчера, 21:48

Да, у нее специфические жаргонные переводы

Вчера, 21:47

есть такое, подожду от Оригамики

Вчера, 21:15

ахаххахахах что за гопник это локализировал

Вчера, 20:31

Если что сами черты феромонный цветок и черная вдова не дают стать суккубом 

Вчера, 20:28

Indeed, the size increased from 547 KB on April 23rd to 549 KB on April 26th.
Thank you for noticing and reporting this.

Вчера, 19:38

спасибо большое, буду тестить

Вчера, 19:09

там еще мячики розовые

Вчера, 18:14

У меня розовая доска для пилатеса лежала, постоянно старики пользовались, может стереотип, но выглядит смешно

Вчера, 18:08

Покапался в библиотеке, все категории:
HUMAN
SMALL_DOG
LARGE_DOG
CAT
FOX
HORSE
Добавил функцию is_human_sim()
Внёс проверку "if not is_human_sim(sim_info) return" - что означает если сим не человек функция просто не сработает.
животные больше не участвуют в эмоциональной механике.
Так же добавил проверку на возраст.
age = CommonAgeUtils.get_age(sim_info)
if age in (CommonAge.BABY, CommonAge.TODDLER):
return
малыши (BABY, TODDLER) и дети (CHILD) не получают стресс, эмоциональные баффы и тяжёлые воспоминания.
Итого:
Животные: полностью исключены из всей эмоциональной логики.
Младенцы и малыши: не получают изменений стресса и удовлетворённости.
Дети: не получают эмоциональных баффов от работы/романтики и не накапливают тяжёлые воспоминания.
Версия файла test7
https://modsfire.com/MmUb5rrfGN20FoZ
Выдаст ли краш в самом начале - без понятия, как и то, не порушилось ли что-то еще. Сработает ли это должным образом неизвестно. Но вероятно, от "накопленного" нужно как-то избавиться, в плане сохранения. В журнале может висеть то, что уже более не учитывается и пролетать через проверки. Вообщем, мне тестить не на чём.

Вчера, 17:32

не знаю, в чём была причина в итоге, но решила установить ещё раз и заработало! 

Вчера, 16:44

спасибо, обновила

Вчера, 16:36

Текущий файл по кнопке "скачать" (546 КБ последнее изменение файла 23.04.26) не совпадает по размерам с финальной версией (548 КБ  последнее изменение файла 26.04.26 с оф.сайта библиотеки).

 Нужно бы обновить Lot 51 Core, до актуального обновления, видимо были фиксы, причем дважды менялся размер файла, а версия не изменялась.

Вчера, 16:28

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

задумка - хорошая, но вот эти нюансы оставляют в недоумении

Вчера, 16:10

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

Вчера, 15:21

он изначально стоит в нижем ригистре, еще можете что-то посоветовать?

Вчера, 14:58

Ну вот удалил реакцию на измену в этом файле

Надо только проверять. Ну и реакцию на похороны тоже, функцию исправил. То же бы проверить.

Вчера, 13:35

https://modsfire.com/o8lf343rRUKCCEH

 

В этом файле удалены функции и вызовы на измену.

 

Так же есть вопросы к функции на смерть. Надо тоже проверить. Есть предположение что get_relationship_score - такого вообще нет, исправил на get_friendship_score. Если будет ошибка, будет искать.

Вчера, 13:23
Цитата: Bondarchuk

Думаю что оно вообще избыточно.

Т.е это нужно было для другого, но получилось что работает дублем, и криво, не учитывая много чего еще.

Пока вообще удалил "реакцию" на измену, удалив модули, в том числе из системы слухов.

Сама по себе механика слухов уникальна, но вот с мудлетом на измену что-то как-то не очень вышло.

 

Надо проверить без неё.

 

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

Может подумаю, и исходником выложу, для тех кто потянет дальнейшее развтитие мода



Вообще в перспективе, это должно было выглядеть так, что собирается информация по симам у каждого сима. Т.е в теории, если кто-то стал свидетелем чего-то, это будет храниться в памяти у сима. А если тот сим балабол, то может растрепать "компромат". Но видимо спотыкается на чём-то и оно либо не работает, либо работает но криво-косо.

В идеале конечно огромный массив данных нужен для каждого сима, как отдельная индивидуальная ифнормация, так и социальная, где сим выступает в роли свидетеля. Кто что делал, с кем, когда и т.д, где важным критерием является личное присутсвие. И из этого массива выдавать слухи, есть сим расположен трепаться. И не важно о чём слухи, положительные или отрицательные. Работать в идеале должно как сарафанное радио. Друзья друзей например, могут первоначально иметь чуть большие положительные отношения, где симы имеют первоначальное представление о других симах со слов своих знакомых. Именно для этого слухи и задумывались. И тут конечно, для петов или детей это бы работало странно, но пока так. Для петов и детей нужно делать исключение, но как его сделать не представляю.

Ну вот вы сказали, а так оно и есть. Слухи действительно работают больше на отношения. Однако ощущается это так, что скорее всего твоего персонажа снимают на камеру 24/7 😁. Хотя, конечно, это очень круто, что у меня держатся со всеми хорошие отношения, потому что мой персонаж положительный. Все говорят о нем только положительное, вот потому никто ещё ни разу не обиделся, не перестал дружить. Мудлеты тогда вообще лучше убрать действительно, если пока не получается создать исключения. Оно частенько портит даже свидания, потому что, как я заметил, когда срабатывает слух, игрой это воспринимается как действие общения, как я понимаю, а это общение тригерит предательство и вторая половинка сообщает мне, что я с ней зло поступаю 😳
Вчера, 13:16

Если вы из РФ, то на самом modsfire используйте альтернативную ссылку

Вчера, 12:50

Думаю что оно вообще избыточно.

Т.е это нужно было для другого, но получилось что работает дублем, и криво, не учитывая много чего еще.

Пока вообще удалил "реакцию" на измену, удалив модули, в том числе из системы слухов.

Сама по себе механика слухов уникальна, но вот с мудлетом на измену что-то как-то не очень вышло.

 

Надо проверить без неё.

 

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

Может подумаю, и исходником выложу, для тех кто потянет дальнейшее развтитие мода



Вообще в перспективе, это должно было выглядеть так, что собирается информация по симам у каждого сима. Т.е в теории, если кто-то стал свидетелем чего-то, это будет храниться в памяти у сима. А если тот сим балабол, то может растрепать "компромат". Но видимо спотыкается на чём-то и оно либо не работает, либо работает но криво-косо.

В идеале конечно огромный массив данных нужен для каждого сима, как отдельная индивидуальная ифнормация, так и социальная, где сим выступает в роли свидетеля. Кто что делал, с кем, когда и т.д, где важным критерием является личное присутсвие. И из этого массива выдавать слухи, есть сим расположен трепаться. И не важно о чём слухи, положительные или отрицательные. Работать в идеале должно как сарафанное радио. Друзья друзей например, могут первоначально иметь чуть большие положительные отношения, где симы имеют первоначальное представление о других симах со слов своих знакомых. Именно для этого слухи и задумывались. И тут конечно, для петов или детей это бы работало странно, но пока так. Для петов и детей нужно делать исключение, но как его сделать не представляю.

Вчера, 12:53

Добрый день. Файлы не скачиваются, выдает ошибку.

Вчера, 12:25

У меня включены:

LittleMsSam_RSM_EP_S_ChangeIntoEverydayWhenInside_Addon_FreezingThermostatOn.pa
ckage

LittleMsSam_RSM_EP_S_ChangeIntoEverydayWhenInside.package

 

Два других отключены.

Вчера, 12:18

Мне требуется уточнить насчёт этих трёх модулей по желанию.
Если я установлю модуль: Freezing Thermostat On, он влияет только на домашний участок?
чтоб влиял на общественный, нужно устанавливать дополнительно еще модуль All Lots Without Lot Traits Requirement? (Мне не нужна характеристика лота, поэтому спрашиваю только за эти два модуля). 
Или достаточно Freezing Thermostat On, чтоб влияние мода на все участки распространялось?

Вчера, 11:20

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

 

Вчера, 10:56

Спасибо за ответ, ждём всем селом! ❤️

Вчера, 10:35
прошу помощи. что мне сделать что бы взаимодействия появились? у меня есть действия но не все, сфоткаться или там покачаться другим симом есть , а взаимодействие за сима М с Ж или тем же М по типу м1нета просто не отображается. появляется только выбор качаться им или шлепнуть. я даже нашла как черту мужества и феминности поставить, но и с ними ничего не появилось. так же следовала советам из комментариев и скачивала более старые версии и публик и патреон НИЧЕГО. симс и викед последние версии никаких ошибок нет, вроде конфликтов тоже. надеюсь на помощь (М-мужчина Ж-женщина)
Вчера, 10:12

Популярное за неделю

Команда сайта


Администратор

Редактор, переводчик

Переводчик