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

Базовая информация о моддинге


Автор:
  Дата публикации: 1.05.2018, 15:43 · 6 241 · 1

  1. Описание
Предисловие
Работа по изменению игры может показаться скучной и утомительной. Она требует времени и терпения. Если вы думаете, что всё можно сделать одним щелчком пальцев, то вы ошибаетесь. Скорее всего, вам не понравится этот процесс.

Для работы вам понадобится удобный для вас текстовый редактор, например: стандартный блокнот, Notepad++ или что-то ещё подобное.

Лично я использую вышеупомянутый Notepad++ (скачать). Он бесплатен, достаточно удобен и в нём есть множество упрощающих работу функций: вкладки, поиск по файлам, подсветка кода и тому подобное. Но, опять же, выбирайте именно то, в чём вам будет удобно работать.

Для редактирования спрайтов нужен какой-нибудь графический редактор. Мне вполне хватило возможностей стандартного Paint`а, но вы можете работать в Photoshop`е или GIMP`е, ежели вам так будет удобнее.

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

Все создаваемые текстовые файлы должны быть сохранены в кодировке UTF-8.
Создание мода: подготовка
В первую очередь нужно открыть папку с установленной игрой. При наличии официальной стим-версии проще всего сделать это через клиент Steam следующим образом:

Переходим в раздел "Библиотека", в левом меню находим Starbound и щёлкаем по нему правой кнопкой мыши. В выпавшем меню выбираем "Свойства", в новом окошке переходим во вкладку "Локальные файлы" и нажимаем кнопку "Просмотреть локальные файлы" - после этого у вас откроется папка с игрой.

Переходим в папку mods, создаём в ней новую директорию и называем как нибудь, например: "MyMod". Используем только символы латинского алфавита и цифры.

В этой директории создаём текстовый файл "_metadata" без какого либо расширения.

Файлу задаём следующее содержание:

{ "name" : "My Mod Name", "description" : "My Mod Description", "author" : "My Name", "version" : "1.0" }

"name" - название вашего мода.

"description" - это описание вашего мода. Поле много строчное. Если нет желания возиться с этим текстом, то поле можно не заполнять.

"author" - ваше имя или псевдоним.

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

В этих полях можно использовать и кириллицу.

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

Создаём в папке с нашим модом новую директорию, называем её "objects".
Создаём в этой папке текстовый файл: "mypic.object".
mypic - это название указано как пример. Вы можете использовать у себя любое другое название, главное, чтобы оно нигде не использовалось ранее в файлах игры и содержало только латинские символы.

Также понадобятся два png файла - сам плакат (mypic.png) и его иконка (mypic_icon.png, тоже самое изображение, но в ещё меньшем размере) для инвентаря. Для пробы можно взять те, что я подготовил заранее.

Основная картинка - сохраняем в mods/MyMod/objects, назвав файл "mypic.png"


Иконка - сохраняем в mods/MyMod/objects, назвав файл "mypic_icon.png"

Содержимое файла "mypic.object":

{ "objectName" : "mypic", "colonyTags" : ["pretty"], "rarity" : "Common", "description" : "Full description", "shortdescription" : "Short description", "race" : "generic", "category" : "decorative", "price" : 1000, "printable" : true, "apexDescription" : "Apex comment", "avianDescription" : "Avian comment", "floranDescription" : "Floran comment", "glitchDescription" : "Gltch comment", "humanDescription" : "Human comment", "hylotlDescription" : "Hylotl comment", "novakidDescription" : "Novakid comment", "inventoryIcon" : "mypic_icon.png", "orientations" : [ { "image" : "mypic.png", "imagePosition" : [0, 0], "frames" : 1, "animationCycle" : 0.5, "spaceScan" : 0.1, "anchors" : [ "background" ] } ] }

"objectName" - это уникальное название объекта, т.е. - ID. Пишем только латиницей.

"colonyTags" - этот параметр обозначает какой колонист может появиться в комнате с объектом. Можно указывать несколько вариантов подобным образом - ["crafting","electronic"].
Возможные варианты можно глянуть здесь. Тэги с колонистами, это те, что Tenants - Yes.

"rarity" - редкость объекта. Пишем только латиницей, выбирая из заготовленных вариантов: "Common" (Обычный), "Uncommon" (Необычный), "Rare" (Редкий), "Legendary" (Легендарный).

"description" - подробное описание объекта.

"shortdescription" - название объекта.

"race" - к какой расе относится объект. "generic" - это общий вариант.
Известные мне варианты: "apex", "avian", "floran", "frogg", "generic", "glitch", "human", "hylotl".

"category" - категория объекта.

"price" - стоимость. Указываем только цифры.

"printable" - можно ли копировать объект на принтере. true - можно, false - нельзя.

"apexDescription", "avianDescription", "floranDescription", "glitchDescription", "humanDescription", "hylotlDescription", "novakidDescription" - комментарий игрового персонажа об объекте. Зависит от расы и произносится при клике на объект в режиме исследования (по умолчанию - N).

"inventoryIcon" - название файла-иконки объекта, используется в игровом инвентаре.

Далее идёт отдельная группа параметров "orientations", отвечающая за поведение объекта в игре.

"image" - это путь к png файлу, изображающему объект.

"imagePosition" - это координаты "центра" объекта.
"0, 0" обозначает самый центр изображения. "-5, -5" отклонит центр на 5 пиксов влево и 5 пиксов вниз.

"frames", "animationCycle" - в данном примере эти поля нас не интересуют, а потому оставляем их без изменений.

"anchors" - область на которую можно ставить объект. Мне известны следующие варианты: top - объект крепится к потолку. bottom - объект крепится к полу. background - объект крепится к заднему фону.

Правильно указав всю техническую информацию в файле "mypic.object" и подготовив графические файлы, мы добавили объект в игру. Самый простой способ добыть его - использовать консоль в игре.

Включаем игру, заходим на своего персонажа и вводим в консоль следующие команды:
/admin
/spawnitem mypic
В данном случае "mypic" - это название объекта, которое вы указали в поле "objectName".
Режим админа можно отключить повторным вводом команды /admin

Способ получения простой, но крайне топорный. Лучше добавим возможность создания картинки через стандартное окно крафта, доступное игровому персонажу.
Создание мода: крафтинг
Создаём в папке с нашим модом новую директорию, называем её "recipies". В ней создаём текстовый файл "mypic.recipe" со следующим содержимым:

{ "input" : [ { "item" : "money", "count" : 1 } ], "output" : { "item" : "mypic", "count" : 1 }, "groups" : [ "plain" ] }
"input" - это то, что требуется для крафта.

"output" - это то, что получится в результате крафта. В дополнительном параметре "item" указываем уникальное имя нашего объекта.

"groups" - это место или "станция", где происходит крафт. В данном случае - это базовое окно крафта (по умолчанию - C).

Рецепт создали, осталось "выучить" его.

Переходим в папку с нашим модом и создаём новый текстовый файл - "player.config.patch" с таким содержимым:

[ { "op" : "add", "path" : "/defaultBlueprints/tier1/-", "value" : { "item" : "mypic" } } ]


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

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

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

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

Чтобы распаковать или упаковать архив вам надо перейти в директорию с установленной игрой любым удобным для вас способом.

Открыть консоль можно следующей манипуляцией:

На белом (пустом) пространстве окна нажимайте правой кнопкой мыши с зажатой клавишей Shift. В открывшемся меню выбирайте пункт "quot;Открыть меню команд" (если не зажать Shift, то этот пункт не будет виден) - после этого откроется окно для ввода консольных команд.
.pak - распаковка
Для распаковки архива используется подобная команда:

"win32\asset_unpacker.exe" "<путь к файлу для распаковки>" "<название директории, куда будут распакованы файлы>"

("win32\asset_unpacker.exe") - это путь к скрипту, ответственному за работу с .pak файлами. Тут ничего менять не нужно.

("<путь к файлу для распаковки>") - это полный путь к файлу, который следует распаковать, например - "assets\packed.pak".

("<название директории, куда будут распакованы файлы>") - это название директории, куда будут распакованы файлы из архивы. Если директории с указанным названием нет в папке с игрой, то она будет автоматически создана.

А теперь на практике. Команда
"win32\asset_unpacker.exe" "assets\packed.pak" "UnpackedAssets"
позволит распаковать архив со стандартными игровыми файлами.

После того, как вы введёте команду в консоль и нажмёте Enter, в директории с игрой появится новая папка "UnpackedAssets", в которой находятся все распакованные файлы. Обязательно дождитесь появления в консоли сообщения об окончании процесса распаковки. Сам процесс довольно длителен - у меня идёт примерно 6-7 минут.
.pak - упаковка
Для упаковки архива используется подобная команда:

"win32\asset_packer.exe" "<папка, которую надо упаковать>" "<куда положить архив>"

("win32\asset_unpacker.exe") - это путь к скрипту, ответственному за работу с .pak файлами. Тут ничего менять не нужно.

("<папка, которую надо упаковать>") - это путь к папке с вашим модом, который вы хотите упаковать в архив.

("<куда положить архив>") - это путь, куда автоматически будет размещён готовый архив. В этом же параметре указывается желаемое название архива. В конце обязательно указывайте .pak.

Пример готовой команды:

"win32\asset_packer.exe" "mods\pink_bed" "mods\pinkbed.pak"

После того, как вы введёте команду в консоль и нажмёте Enter, в папке mods появится новый архив pinkbed.pak с вашим модом внутри.

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

В первую очередь нужно распаковать стандартные игровые файлы, а затем найти в них предмет, который вы хотите изменить. Для примера использую какую-нибудь флэшку-дополнение для Набора Экологической Защиты (EPP).

Файлов довольно много, можно конечно в ручную их перебрать в поисках нужного объекта, но я предпочитаю пользоваться функцией поиска по файлам в Notepad+. Открываем программу, нажимаем Ctrl + F или в верхнем меню щёлкаем "Поиск", а затем "Найти".

В появившемся окошке переходим во вкладку "Найти в файлах".

В поле "Найти" вписываем ID или название нужного объекта. Рекомендую искать по ID - поиск будет более точный. ID предметов можно узнавать здесь - http://starbounder.org (официальная вики игры).

В поле "Папка" указываем путь к распакованным игровым файлам.

Ставим отметку "Во всех подпапках".

Всё указали? Кликаем "Найти всё".



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

Для ускорения процесса поиска можно искать только по определённым папкам с игровыми файлами.

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

Для примера я искал флэшку, дающую иммунитет к отравлению, её файл - "items/augments/back/poisonblockaugment.augment", следовательно, что нужно копировать его по точно такому же пути, воссозданному в папке с модом:

mymod/items/augments/back/poisonblockaugment.augment. Обязательно сохраняйте оригинальное название и расширение файла.

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

Следует учесть, что уже существующие в инвентаре флэшки не изменятся. Флэшки с обновлёнными параметрами нужно будет купить, выбить из монстров или "создать" через /spawnitem. Подобная особенность актуальна для большинства используемых игровых предметов.
О создании своих спрайтов
Для создания своего спрайта для своего объекта вам понадобится какой-нибудь графический редактор.

Готовый спрайт нужно сохранять в формате PNG.

Следует учесть, что в самой игре спрайт показывается несколько большим размером, чем он есть на самом деле. Если не ошибаюсь, то размер увеличивается в три раза. Иногда из-за этого создаётся впечатление, что спрайт «размазан».

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

Объект минимального размера занимает 1 игровой блок, размер спрайта для такого объекта - 8 на 8 пиксов. Очевидно, что объект со спрайтом размера 16 на 8 пиксов займёт в игре два блока в ширину и один высоту, а 16 на 16 – два блока в ширину и два высоту.

Перед тем как начать рисовать свою картинку-спрайт, заранее определитесь с тем, какого размера должен быть ваш объект в игре, дабы не пришлось перерисовывать готовое изображение из-за логического не соответствия размера объекта (обычная лампочка не может быть больше человека, кресло не может быть меньше пятки и так далее). Я сам сталкивался с такой ошибкой - было обидно за потраченное на рисование время.
Пример: Огнестрел для одной руки
В папке objects создаём новый текстовый файл "myrevolver.activeitem".

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

Содержимое файла "myrevolver.activeitem":

{ "itemName" : "myrevolver", "price" : 640, "maxStack" : 1, "rarity" : "Common", "description" : "Big gun", "shortdescription" : "My Revolver", "tooltipKind" : "gun", "category" : "pistol", "twoHanded" : false, "itemTags" : ["weapon","ranged","pistol"], "level" : 1, "inventoryIcon" : "myrevolver.png", "animation" : "/items/active/weapons/ranged/gun.animation", "animationParts" : { "butt" : "", "middle" : "myrevolver.png", "barrel" : "", "muzzleFlash" : "/items/active/weapons/ranged/muzzleflash.png" }, "animationCustom" : { "sounds" : { "fire" : ["/sfx/gun/revolver2.ogg"] } }, "baseOffset" : [0.5, 0.25], "muzzleOffset" : [1.4, 0.3], "scripts" : ["/items/active/weapons/ranged/gun.lua"], "elementalType" : "physical", "primaryAbility" : { "scripts" : ["/items/active/weapons/ranged/gunfire.lua"], "class" : "GunFire", "fireTime" : 0.6, "baseDps" : 6.25, "energyUsage" : 18.75, "inaccuracy" : 0.025, "projectileCount" : 1, "fireType" : "auto", "projectileType" : "standardbullet", "projectileParameters" : { "knockback" : 6 }, "stances" : { "idle" : { "armRotation" : 0, "weaponRotation" : 0, "twoHanded" : false, "allowRotate" : true, "allowFlip" : true }, "fire" : { "duration" : 0, "armRotation" : 3, "weaponRotation" : 3, "twoHanded" : false, "allowRotate" : false, "allowFlip" : false }, "cooldown" : { "duration" : 0.15, "armRotation" : 3, "weaponRotation" : 3, "twoHanded" : false, "allowRotate" : false, "allowFlip" : false } } }, "builder" : "/items/buildscripts/buildunrandweapon.lua" }

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

"objectName" - это уникальное название объекта, т.е. - ID. Пишем только латиницей.

"inventoryIcon" - если есть желание создать уникальную иконку оружия для инвентаря, то тут нужно указать путь к файлу иконки. Если иконки нет, то указываем основной спрайт оружия.

animationParts"middle" - путь к спрайту пистолета.

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

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

"baseOffset" - координаты рукоятки. Персонажи будут держать пистолет за указанную точку. "0, 0" - центр спрайта.

"muzzleOffset" - координаты дула. В этой точке будет появляться вспышка при стрельбе. "0, 0" - центр спрайта.

primaryAbility"fireTime" - скорость стрельбы.

primaryAbility"baseDps" - базовый урон.

primaryAbility"energyUsage" - количество энергии, потребляемой на один выстрел.

primaryAbility"inaccuracy" - погрешность стрельбы.
Пример: Огнестрел для двух рук
В папке objects создаём новый текстовый файл "myrifle.activeitem".

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

Содержимое файла "myrifle.activeitem":

{ "itemName" : "myrifle", "price" : 960, "maxStack" : 1, "rarity" : "Common", "description" : "Fast gun", "shortdescription" : "My Rifle", "tooltipKind" : "gun", "category" : "assaultRifle", "twoHanded" : true, "itemTags" : ["weapon","ranged","assaultrifle"], "level" : 1, "inventoryIcon" : "myrifle.png", "animation" : "/items/active/weapons/ranged/gun.animation", "animationParts" : { "butt" : "", "middle" : "myrifle.png", "barrel" : "", "muzzleFlash" : "/items/active/weapons/ranged/muzzleflash.png" }, "animationCustom" : { "sounds" : { "fire" : ["/sfx/gun/ar1.ogg"] } }, "baseOffset" : [0.6, 0.15], "muzzleOffset" : [2.2, 0.125], "scripts" : ["/items/active/weapons/ranged/gun.lua"], "elementalType" : "physical", "primaryAbility" : { "scripts" : ["/items/active/weapons/ranged/gunfire.lua"], "class" : "GunFire", "fireTime" : 0.11, "baseDps" : 10.5, "energyUsage" : 31.5, "inaccuracy" : 0.02, "projectileCount" : 1, "fireType" : "auto", "projectileType" : "standardbullet", "projectileParameters" : { "knockback" : 5 }, "stances" : { "idle" : { "armRotation" : 0, "weaponRotation" : 0, "twoHanded" : true, "allowRotate" : true, "allowFlip" : true }, "fire" : { "duration" : 0, "armRotation" : 3, "weaponRotation" : 3, "twoHanded" : true, "allowRotate" : false, "allowFlip" : false }, "cooldown" : { "duration" : 0.11, "armRotation" : 3, "weaponRotation" : 3, "twoHanded" : true, "allowRotate" : false, "allowFlip" : false } } }, "altAbilityType" : "spray", "builder" : "/items/buildscripts/buildunrandweapon.lua" }

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

Простым образом можно указывать уже созданные разработчиками альтернативные режимы, вот известные мне вариации:

"altAbilityType" : "spray",
"altAbilityType" : "piercingshot",
"altAbilityType" : "grenadelauncher",
"altAbilityType" : "burstshot",
Пример: Контейнер-хранилище
Основной файл

Иконка

То что находится в /* */ или после // - комментарий. Игровой движок не обрабатывает подобные фрагменты.

Файл goldensafe.object:

{ "objectName" : "goldensafe", /* Уникальное название, т.е. ID. Пишем только латиницей */ "colonyTags" : ["storage"], /* Типы возможных колонистов в комнате с объектом */ "rarity" : "Rare", /* Редкость. Варианты: "Common" (Обычный), "Uncommon" (Необычный), "Rare" (Редкий), "Legendary" (Легендарный) */ "category" : "storage", "price" : 900, /* Стоимость. */ "description" : "Золотой сейф. Довольно тяжёлый.", /* Игровое описание. Можно использовать кирилицу */ "shortdescription" : "Золотой сейф", /* Игровое название. Можно использовать кирилицу */ "race" : "generic", /* Раса, к которой относится объект. Варианты: "generic", "apex", "avian", "floran", "frogg", "glitch", "human", "hylotl", "novakid" */ "health" : 5, /* Здоровье обьекта. Влияет на то, сколько времени нужно на снос установленного объекта манипулятором */ "printable" : false, /* Клонирование объекта на принтере. true - можно, false - нельзя */ "objectType" : "container", "tooltipKind" : "container", "apexDescription" : "Я обезьянко.", /* Комментарий Апексов */ "avianDescription" : "Чирик-чирик.", /* Комментарий Авиан */ "floranDescription" : "Я цветочег.", /* Комментарий Флоран */ "glitchDescription" : "Я ведроид.", /* Комментарий Глитчей */ "humanDescription" : "А я серый и ущербный на фоне остальных.", /* Комментарий Людей */ "hylotlDescription" : "Буль буль.", /* Комментарий Хилотлов */ "novakidDescription" : "Я - сгусток энергии в газовом облаке. Наука, самка собаки!", /* Комментарий Новакидов */ "inventoryIcon" : "goldensafe_icon.png", /* Путь к иконке объекта для инвентаря. Актуально, если в основном графическом файле объекта несколько кадров */ "orientations" : [ { "dualImage" : "goldensafe.png:<color>.<key>", /* Путь к основному графическому файлу */ "imagePosition" : [-8, 0], "spaceScan" : 0.1, "anchors" : [ "bottom" ], /* Куда ставится объект. top - к потолку. bottom - к полу. background - к задней стене. */ "collision" : "platform" /* Это значит, что на объект можно запрыгнуть */ } ], "openSounds" : [ "/sfx/objects/chest_small_open.ogg" ], /* Звук открытия контейнера */ "closeSounds" : [ "/sfx/objects/chest_small_close.ogg" ], /* Звук закрытия */ "slotCount" : 64, /* Количество слотов в контейнере */ "uiConfig" : "/interface/chests/chest<slots>.config", "frameCooldown" : 5, "autoCloseCooldown" : 3600 }

Файл goldensafe.frames:

{ "frameGrid" : { "size" : [24, 16], "dimensions" : [3, 1], "names" : [ [ "default.0", "default.1", "default.2" ] ] }, "aliases" : { "default.default" : "default.0" } }

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

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

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

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

Полезные ссылки:
Официальный форум Chucklefish, посвящённый моддингу в Starbound
Форум в Steam, посвящённый моддингу в Starbound
Статья о моддинге на англоязычной вики по Starbound

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

Успехов в создании ваших модификаций!


История изменений руководства:

27 февраля 2017
Руководство создано.

11 марта 2017
Добавлены примеры огнестрельного оружия.

16 марта 2017
Добавлен пример контейнера.

20 марта 2017
Добавлен раздел "Изменение игровых объектов".

28 марта 2017
Добавлен раздел "О создании своих спрайтов".
Упрощён основной пример руководства (убран этап создания необязательного для работы файла .frames).

Обсуждение материала:
Комментариев: 1
  1. escapefoll
    0 escapefoll [Гости] (4 октября 2019 23:50) #1
    Ctrl + C Ctrl + V
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

Категории

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

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

что не день то приключение с аптейдером,что делать на этот раз?

 

Сегодня, 14:00

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

https://www.simfileshare.net/download/5973767/

Сегодня, 13:44

Выглядит интересно, но, полагаю, будет конфликтовать с модом FunctionalMobile от Lumpinou. Для исторических сохранений, наверное, подойдёт.

Сегодня, 13:20
Мучаюсь уже несколько недель с модом. Установился наконец, есть даже при создании новых персонажей жизненные цели "начинающий садист" и тп. Но взаимодействий с персонажами нету. Ранее играла с ww и подобными модами, потому привыкла к данному управлению, что взаимодействия на ряду с другими. Возможно установила не так что то или не удостоновила? Поместила не в ту папку. Возможно мод управляется другими способами? При shift + click вроде бы тоже нового ничего нету, если правильно сделала, включила как было указано команду. Хотелось бы советов от знающий, ведь найти информацию о моде не нашла.
Сегодня, 11:14

пробуйте альтернативную ссылку в последнем окне под кнопкой "скачать"

Сегодня, 10:51

Не получается скачать файл. Код ошибки: ERR_CONNECTION_RESET. Сообщает что такого файла в хранилище нет. Можно на Яндекс Облако положить?

Сегодня, 10:41

Помогите пожалуйста, у меня все дополнения и т.д. скачалось, но если я захожу в симс через ЕА то у меня половину дополнений и каталогов тупо нету, я если я зайду в симс онлайн то всё есть и всё работает. + анлокер при скачивании выбил "installed but mising language files"

Сегодня, 10:14

Не могу с вами согласится, особенно учитывая утверждения по поводу решения любых проблем))
Байка связана с вполне конкретными случаями, с модами, которые априори несовместимы и выполняют одну и ту же функцию. Библиотеки тут непричём она не является источником проблем. Да она добавляет в пай своё меню... хм, как и другие моды с отладкой. И что еще? Ничего. Если мод вызывает ошибки, нужно его удалить)) Разве нет? Просто в данном случае ошибки стали очевидны. BE в помощь, чтоб понять, конкретно что и конкретно где.

Вообще чтобы ошибок не возникало, лучше удалить игру) Тогда вообще никаких проблем не будет



У меня модов, овер дофига, чекнул BE конфликтность. Ни с чем кроме русика SimControlHub не конфликтует(что нормально). Отображение в пай меню, или в панели отношений настраивается в настройках мода.



"При любых проблемах в игре прежде всего удали моды от ColonolNutty!" - это утверждение гуляет по сети из за DD. Т.к он не стабилен, глючный, много ошибок.

Но библиотека Sims4CommunityLibrary, которую создал ColonolNutty стабильна. Её используют многие, т.к с ней проще работать. Она стабильна и по мере возможностей обновляется.

S4CL предоставляет инструменты для добавления пунктов в меню, другие моды что делают тоже самое вполне могут законфликтовать, UI Cheats Extension или Better Simology Panel. Но это лишь возможные конфликтные моды. У турбо своя turboLib, раньше были конфликты, сейчас нет.

Смотри файл конфига Sim Control Hub(DQuiet_SimControlHub.json), функции для панели и пай-меню должны быть включены. Если в игре их отключить, то включить можно будет только через конфиг.

Но в это S4CL никак не лезет. Я час потратил на то, чтобы проверить совместимость. Они прекрасно работают вместе. Во всяком случае, заявленные тобой проблемы, не обнаружены. 

"hideInCheatMenu": true,
"debugModeEnabled": false,
"followCamFix": false,
"showInRelationshipPanel": true

Сегодня, 11:59
Да и получив "опыт", скажем, в автономии, то какой тогда смысл в нем, если "дубиной" игрок это всё перечеркивает (а ведь так примерно и будет)? Многие вообще не парятся и глушат "свободу воли" и получают в игре те самые эмоциональные качели, а потом ПКМ накидывают им уровни романтики и дружбы, тк, условно, эта парочка вообще не пара и игра стремиться всё это увести в минус.

Главное понять, для кого это мод. Если тебе не нужна "воля" у сима - то моды на автономность не нужны вовсе))

Мод не предназначен для борьбы с игроком или ограничивать его в чём либо. Он нужен лишь для "имитации жизни" инструмент для усиления автономии, а не для её подавления.

Если игрок отключит свободу у симов, мод ему не помешает, ведь ручные команды всегда в приоритете.

Если же оставить симов самих на себя и наблюдать, то тут мод и раскроется в полной мере.

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

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

Иначе говоря, мы предлагаем вам глубокий опыт, если вы в нём заинтересованы.

Какой в этом смысл?

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

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

Я хотел чтобы симы помнили, о том что с ними происходит и действовали исходя из прошлого опыта.

Сегодня, 08:16

Вообще по поводу преодолений страхов, это тема довольно интересна.

Как это работает сейчас:

При столкновении с объектом страха, например, готовка при боязни огня, сим получает стресс и бафф страха. Это сделано для того, чтобы избегание было естественной реакцией, а преодоление требовало усилий.
Однако ручное управление всегда позволяет заставить сима действовать вопреки страху, но с указанными негативными последствиями.

Но можно это дополнить и доработать.

Каждое успешное или просто совершённое взаимодействие с объектом страха постепенно снижает его интенсивность.

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

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

На данном этапе, мод поощряет избегание стресса. Думаю этим и займусь в ближайшее время.

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

Сегодня, 07:55

Всё верно. Действия игрока повышают авторитет у любого действия.

Т.е автономное действие имеет приоритет куда ниже, чем то же самое действие выполненное по указке игрока.

Сегодня, 07:46

Тут речь о вероятностях. И не блокировка дейтвия, а его отмена.

Вычисляется итоговая вероятность, к примеру 0.4, это значит, что в 40% случаев сим всё равно может совершить действие, даже если все факторы "против". Это оставляет пространство для случайности и неожиданных решений.

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

Пример про "динамо":

Серия отказов создала состояние "interested = False" и высокий rejection_count(изменчивый показатель), если продолжить мягко ухаживать (действия не отменяются полностью, а лишь становятся реже), каждое успешное действие будет немного снижать rejection_count. Если она например романтик, то такие действия будут восприниматься ею чувствительней. А когда interested снова станет True, тогда накопленная положительная история начнёт работать.

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

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

И да, тут мы либо работаем над над преодолением, либо избегаем тригерров.

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

И да, речь в основном про автономию симов. Если дать команду приготовить еду - она будет выполнена, т.к это высокий приоритет. Вся логика on_interaction_queued работает исключительно для автономии. Эта архитектура является дополнением, а не заменой вашей воли.
Вероятности, а не гарантии. Сим может "передумать", но может и не передумать. Это не бесконечные уговоры, а элемент непредсказуемости.
Инерция, а не блокировка. Плохой опыт делает действия менее вероятными, но не невозможными. Хороший опыт - более вероятными.
Ручной режим всегда в приоритете. Если дорого игровое время, всегда можно отдать команду, и сим её выполнит, несмотря ни на что.

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

Сегодня, 07:43
Основная проблема в Sims4CommunityLibrary: эта библиотека нарушает в частности работу Sim Control Hub (может быть, каких-то других модов ещё, не проверял детально) — пропадают все меню мода, проверил два раза. Без Sim Control Hub не представляю себе как играть, так что, увы...

 

Всё работает.

 

 

 

Сегодня, 07:28

Я прочел, к примеру, это:

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

 

Да и получив "опыт", скажем, в автономии, то какой тогда смысл в нем, если "дубиной" игрок это всё перечеркивает (а ведь так примерно и будет)? Многие вообще не парятся и глушат "свободу воли" и получают в игре те самые эмоциональные качели, а потом ПКМ накидывают им уровни романтики и дружбы, тк, условно, эта парочка вообще не пара и игра стремиться всё это увести в минус.

Сегодня, 07:17

К сожалению, не удалось как следует протестировать мод. То есть, игра загружается, ошибок нет, файл .json создаётся, тормозов не замечено, хотя сразу отправил сима в школу, где на участке одновременно под сотню NPC, и все норовят повзаимодействовать между собой. Основная проблема в Sims4CommunityLibrary: эта библиотека нарушает в частности работу Sim Control Hub (может быть, каких-то других модов ещё, не проверял детально) — пропадают все меню мода, проверил два раза. Без Sim Control Hub не представляю себе как играть, так что, увы... cry2 Видимо не зря пишут: "При любых проблемах в игре прежде всего удали моды от ColonolNutty!"

Сегодня, 07:14

Как я понял из описания, скипаются только автономные действия, вручную же всегда можно заставить сима делать то, даже с чем у него связаны плохие воспоминания. Или нет?

Сегодня, 06:44

вау, по описанию очень круто и именно то, чего лично мне в Симах не хватает! Обязательно опробую его

 

Сегодня, 06:37

Неофициальный фикс для этого мода, избавляющий от ошибок на версии игры 120+.

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

Сегодня, 06:28

М.б. прочел не внимательно, но не увидел ничего про рандомность (спонтанность) действий не смотря на "воспоминания", чтоб выйти из порочного круга/цикла предустановленных скриптов. 

 К примеру есть у меня семейная пара, когда их сводил, симка продолжительное время динамила сима. Ей вся эта игровая романтика не вставляла, думал даже переключить сима на другую претенденку в жены. Сейчас, пожалуй, эта самая крепкая семейная пара в активной семье, симка "тает" если мой сим просто находится рядом.

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

Сегодня, 05:29

у меня оба мода работают вместе, но надо ли? моды от adeepindigo крутые, но это...такое. лучше оставить снб)

Сегодня, 05:23

Думаю, сам маркет никто ломать не будет. Вопрос в другом, можно ли будет сливать то, что там будет продаваться. Сразу ждать не стоит, да и гнаться за этим тоже.

 

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

Сегодня, 05:02

Не конфликтует ли с модами на банковские счета от Simrealist?

Сегодня, 03:14

там новый формат файлов, EA по сливам, надеется что это будет мешать пиратству, посмотрим после выхода

Сегодня, 02:55

Немного не по теме спрошу: кто-то знает, будут ли взламывать Маркетплейс, который запустится 17 марта?

Сегодня, 02:47

Открой ISWidgetRecipeCategories.lua текстовым редактором.

 

Найдти:

self.recipeCategoryPanel.itemheight = ISCraftingUI.smallFontHeight + UI_BORDER_SPACING;

 

Замени на:
self.recipeCategoryPanel.itemheight = getTextManager():getFontHeight(UIFont.Small) + UI_BORDER_SPACING;

И посмотри чё будет. Проверено. Исправляет ошибку.

 

Вообще лучше логи предоставлять, для классификации ошибок

Вчера, 23:02

Привет, перевод отличный. Но у меня после установки этого мода (он единственный) не открывается меню крафта и строительства. Пишет справа внизу ERROR. Как можно это починить?

Вчера, 22:51

Библиотека, это как смазка. ЧТобы впихнуть невпихуемое. Турбодрайвер против смазки ничего не имеет.

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

Если уж совсем грубо, то это как построить дом, где s4cl это кирпичи и цемент. Без них, лепи всё сам, делая из того что поподётся под руку. Конечно можно, из омна и палок, как говорится, собрать, но что это будет за дом и как долго простоит?

По поводу совместимости, на то и тесты)) Смотрим, ломаем, чиним) Если не ломает, значит фиксики отдыхают.

По поводу памяти - весь мир моя песочница vsenorm

Работает на всех симов без исключения. Мод отслеживает и записывает взаимодействия, изменения трейтов и другие события для каждого персонажа, который появляется в игровом мире.

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

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

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



Еще немного о конфликтности. Turbodriver vs. ColonolNutty пользуют одно и тоже. От того и не совместимы. И дело не в бибилотеке, а виспользовании одних и тех же функций. Тот же DD. Он не стабилен. В нём много ошибок. Но это никакне связано с библиотекой. Сама библиотека лишь инструмент и с WW она не конфликтует, делить им нечего.

Вчера, 22:17

Спасибо за обстоятельный ответ! Обязательно протестирую ваш мод. Правда, немного смущает использование Sims4CommunityLibrary, не будет проблем с Turbodriver vs. ColonolNutty? И ещё вопрос: ваша система воспоминаний действует только на играемых в данный момент симов, или на NPC тоже?

Вчера, 21:34

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

Deeper Social Autonomy изменяет то, какие социальные действия сим вообще рассматривает для совершения. Переписывают внутренние тесты. Имеет ли смысл злому симу сейчас злиться или достаточно ли у весельчака навыков комедии, чтобы пошутить. Они отвечают на вопрос: Хочу ли я это сделать?

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

Да эффект может быть избыточным, когда другой мод делает сима агрессивным, а мой мод еще сверху накидывает, а может и вовсе отменить какую нибудь пакость, по какой-то своей причине. Никто же не крушит всё вокруг когда злятся? Не потому что такие душки, а потому что у действия будут свои последствия. Тут можно сказать так же, из за страха или стресса действие может быть отменено. Страх быть отвергнутым - в моём моде есть почти тоже самое, и вот они никак друг друга не заменяют, а будут дополнять. Никакой психолог не поможет преодолеть это переживание)) Шучу конечно, не знаю точно. Однако дубли могут быть. Что фактически усложнит процесс игры. Сделает его непрдсказуемым. Сим перестанет быть заскриптованным болваном получившим ачивку. Процесс станет глубже однозначно.

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

Предположим, установлены моды:
1. TS3 Social Context - блокирует или открывает доступ к определённым взаимодействиям

2. Deeper Social Autonomy или/и Social Variety - какое действие сим рассматривает для выполнения.

4. Emotional Memory - подключается на финальном этапе, после того как сим выбрал действие.

 

И получается создаётся цепочка:

1. Могу ли я это сделать?

2. Что я хочу сделать?

3. Действительно ли я это сделаю?

 

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

Сим или игрок выбирает действие... но оно может будет отменено, ведь вчера, именно с этим персонажем, была схожая ситуёвина, и его отшили, пережил болезненный отказ. Так что, повременит с этим. Это вы на кнопках все такие смелые)) Т.е вполне возможно что действие будет отменено.

Т.е я бы даже рекомендовал использоват такую связку модов. Главная цель моего мода, сделать из заскриптованных балванов if-else, что-то более разумное... пускай всё теми же скриптами, однако результат не всегда должен соответсвовать ожиданиями. Всё как в жизни.

Мой мод имеет накопительный эффект. Прям сразу никто и никаких изменений может и не заметит. Так что тестите как вашей душе угодно.

Журнал пишется с расчётом на 50 событий. Т.е повремени чуть меньше недели 3-5 дней внутриигрового времени, при средней активности. Пишется активность. Как игрока, так и нипов, для каждого из них по 50. Если будет мало, добавим.

Вчера, 21:16

Всем привет
В последнем обновлении появился предмет "виртуальные очки" кто то понял как их использовать?

Вчера, 20:22

А как этот мод сочетается с Deeper Social Autonomy, Social Variety от tyjokr и подобными других авторов?

Вчера, 20:01

ПОМОГЛО, СПАСИБО ОГРОМНОЕ!!!!!!!!!!

Вчера, 19:02

там ниже альтарнативная ссылка появляется, после кнопки скачать

Вчера, 17:55

Использую этот способ и он рабочий.

Если ранее вы активировали свой акк, то должно сработать. Перед всеми действиями очистите куки в своём браузере или используйте второй/другой "чистый" браузер, например Firefox. Не включайте впн пока не закончите.

 

Вчера, 17:23

Оружие можно использовать по назначению или чисто декорации?

Вчера, 17:02

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

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


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

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

Переводчик