Переработка генетики в The Sims 4 от SonozakiSisters: мод, который решает проблему наследования
Генетика в The Sims 4 – больная тема для любого игрока, который хоть раз пытался выстроить красивую династию. Дети получаются с рандомными подбородками, унаследованный цвет волос не совпадает с реальным цветом прически, бабушки и дедушки словно не существуют в плане внешности, а при переходе симов во взрослый возраст лицо порой меняется до неузнаваемости. Сообщество давно ждало мод, который закрывал бы сразу все эти проблемы, и, кажется, теперь такой мод появился.
Genetics Overhaul Collection – это, пожалуй, самый системный подход к генетике в The Sims 4 на сегодняшний день.Это не один мод, а целая коллекция из трех независимых модулей, каждый из которых решает свою часть проблемы. SonozakiSisters не просто написала мод, закрывающий очевидные пробелы в игровой механике, она провела глубокое исследование того, как генетика работает изнутри, нашла конкретные баги в коде EA и придумала нетривиальные способы их обойти.
Мы попробовали моды в игре и заодно пообщались с автором напрямую: подробности ниже.
Кратко что умеет эта коллекция модов:
— Дети наследуют черты бабушек и дедушек.
— Покраска волос и смена линз больше не ломают генетику.
— Оккультные глаза наследуются корректно.
— Можно настроить шанс оккультных мутаций.
— Мод сохраняет данные каждого новорождённого.
Далее рассмотрим моды подробнее.
Почему три мода, а не один?
Прежде чем разбирать каждый модуль, стоит объяснить логику их разделения. Автор намеренно сделала коллекцию модульной: все три части независимы друг от друга, не конфликтуют между собой и могут использоваться в любой комбинации. Это удобно: например, если вас устраивает, как игра наследует тон кожи, но раздражает рандомная генетика при взрослении – ставите только нужный модуль. Хотите всё и сразу – ставите все три.
Три модуля потому, что они затрагивают принципиально разные части кода игры и разные аспекты генетической системы. Объединить их в один файл технически можно, но тогда пользователь терял бы гибкость в настройке.
Модуль первый: Main Mod – основа всей системы
Это главный и самый сложный модуль коллекции. Именно он переписывает ключевую механику наследования внешности. Разберем каждую функцию подробно, в том числе с техническими деталями, которыми поделилась с нами автор.
Наследование от бабушек и дедушек
Начнём с того, чего в игре попросту не существует. The Sims 4 при создании ребёнка смотрит исключительно на двух родителей и всё. Прародители в расчёт не берутся вообще. Если ребенок внешне напоминал бабушку, это была случайность: игра просто рандомно вытащила похожий пресет.
Main Mod меняет это фундаментально. Теперь у каждого атрибута внешности есть три возможных источника: родитель 1, родитель 2 и прародители. По умолчанию вероятности выглядят так:
- 80% – наследование от прямого родителя
- 10% – от одного прародителя
- 10% – от другого прародителя
Важный момент: эти шансы применяются к каждому атрибуту отдельно. Это значит, что у одного ребёнка нос может прийти от бабушки по отцовской линии, цвет глаз – от дедушки по материнской, а голос и тон кожи – от родителей. Именно такая логика создаёт по-настоящему уникальных симов, в которых угадываются черты всей семьи, а не только мамы и папы.
Все цифры настраиваются. Если хочется, чтобы влияние прародителей было сильнее или слабее, это меняется прямо в игре через меню настроек.
Отдельно предусмотрена ситуация, когда у симов нет полного семейного дерева. Если у родителя нет своих родителей, мод просто использует только его генетику. Если есть только один прародитель, его шанс суммируется целиком (20% вместо разделенных 10+10).
Настройки прямо в игре
До версии 1.1 настройки мода редактировались через JSON-файл вручную, это было не очень удобно. Начиная с версии 1.1, всё управление перенесено прямо в игру: Shift + клик на любого сима → Genetics Overhaul Settings.
В меню доступны:
- Chance of Inheritance from Parent – вероятность наследования от прямого родителя (от 0 до 1). Оставшийся шанс автоматически делится между прародителями поровну
- Inherit Grandparents Presets – по умолчанию выключено. Когда включено, пресеты лица и тела тоже могут прийти от прародителей, а не только цвет волос, глаз и тон кожи
- Occult Mutations – настройки мутаций по каждому виду оккульта отдельно
Опция с пресетами прародителей отключена по умолчанию намеренно: если хочется предсказуемого наследования формы лица, лучше оставить так. Включать её стоит тем, кто готов к большей вариативности и сюрпризам.
Сброс к дефолтным значениям делается через Reset to default в том же меню.
Натуральный цвет волос и глаз: как это работает изнутри
Проблема ванильной игры в том, что она не различает «биологический» цвет волос и «крашеный». Покрасили сима в рыжий, значит, теперь он рыжий генетически, и его дети унаследуют этот рыжий. Надели CC-парик с фиолетовыми волосами, у которого все свотчи сделаны на основе одного чёрного шаблона, значит, у всех детей будет чёрный. Логики ноль.
Но почему так происходит с CC? SonozakiSisters объяснила механику подробно:
«Креаторы иногда создают контент из одного свотча, копируя из одного слота в другой, поэтому у всех свотчей будет один цветовой тег – например, тег чёрных волос, даже если выбрана прическа с цветом блонд».
И это ломает не только генетику. Когда у сима выставлены предпочтения на цвет волос и глаз, система привлекательности тоже рассчитывается на основе этих тегов. Неправильный тег означает неправильно подсчитанную привлекательность. Так что один кривой свотч в CC-причёске способен сломать сразу несколько игровых систем одновременно.
Мод решает это следующим образом: при запуске игры он сканирует прическу и брови каждого играбельного сима, считывает цветовые теги и сохраняет «натуральный» цвет как отдельный параметр независимо от того, что сим носит сейчас. Именно этот параметр и передаётся детям при рождении, а не тег с причёски.
«Мод запрещает симам при рождении наследовать цветовой тег. Вместо этого они наследуют кастомные значения цвета волос и глаз, и уже исходя из этих данных ребёнку при взрослении выбирается нужный цвет. По этой же причине можно смело менять цвет причесок и глаз в CAS – цветовые теги больше не участвуют в генетике».
Приоритет при сканировании такой: прическа → брови → волосы на теле. Если ни на одном из этих элементов нет читаемого тега — мод попросит задать цвет вручную через Shift + клик → Choose Natural Hair Color / Choose Eye Color. Это же меню пригодится, если автоопределение ошиблось или вы хотите переопределить натуральный цвет вручную.
На питомцев эта система не распространяется, и тоже по понятной технической причине. У питомцев нет «волос» в том смысле, в котором они есть у симов: вместо этого у них цветовой паттерн шерсти, который генерируется совершенно иначе – путём смешивания цветов родителей. Автор хотела бы улучшить и эту систему, но пока отложила на будущее.
Цвет глаз у оккультов: история старого бага
Здесь стоит рассказать про проблему, которую EA создала давно и так и не исправила. Год назад разработчики выпустили патч, позволивший использовать любые глаза независимо от вида оккульта: до этого, например, вампирские глаза были доступны только вампирам. Казалось бы, хорошее обновление. Но вот что объяснила нам SonozakiSisters:
«Старый баг они так и не пофиксили, а именно отсутствие цветовых тегов на оккультных глазах. Они есть только на вампирских свотчах, а на всех остальных присутствует лишь оккультный тип. Поэтому если ребёнок наследует оккультные не-вампирские глаза, то ему выберутся случайные оккультные или же человеческие карие, это считается дефолтом игры».
То есть EA расширила доступ к оккультным глазам для всех симов, но механику их наследования так и не починила. В результате дети с оккультными глазами русалки, феи или оборотня получали либо случайный оккультный цвет, либо просто стандартный карий.
Main Mod обходит это следующим образом: вместо тега он запоминает конкретный ID цвета глаз родителя и передаёт именно его. Ребёнок получит точно те же глаза, что были у мамы или папы.
Отдельный случай несколько видов оккультных глаз, у которых вообще нет детской версии в игровых ассетах. Для них мод работает в два этапа: при рождении ребенок получает похожий обычный цвет, а при взрослении в подростка – правильный унаследованный. Для тех редких случаев, когда автозамена не сработала при взрослении, есть чит Force Update Eye Color.
Нестандартные цвета волос у детей
Небольшая, но приятная деталь совместимости. По логике игры, неестественные цвета волос (синий, зелёный, розовый и т. д.) доступны только симам от подросткового возраста и старше. Дети до перехода во взрослый возраст носят «обычный» цвет из своей генетики, а нестандартный получают позже.
Если у вас установлен мод Genetic Unnatural Hair Colours for Little Sims от SnarkyWitch, Main Mod автоматически подхватывает его и применяет нестандартный цвет уже с младенческого возраста. Ничего дополнительно настраивать не нужно.
Оккультные мутации
Эта функция отключена по умолчанию и рассчитана на тех, кто хочет добавить в игру элемент непредсказуемости. Ребенок с некоторой вероятностью может родиться другим оккультом, чем его родители. Причём не просто случайным – вы сами задаете шанс для каждого вида оккульта отдельно.
Но прежде чем настраивать мутации, интересно понять, как вообще устроено наследование оккультного типа в игре. SonozakiSisters объяснила это так:
«Все оккульты задаются обычными скрытыми чертами характера, так что ребёнок просто наследует случайный оккультный тип (или же его отсутствие) от родителя. Мои опциональные настройки мутаций лишь с определенным шансом, который укажет игрок, заменят одну оккультную черту на другую».
И здесь один из самых неожиданных фактов, которые мы узнали в разговоре с автором:
«На уровне кода игра поддерживает несколько оккультных черт у одного сима одновременно. Проблема заключается только в UI, поскольку нужно как-то показывать несколько оккультных шкал и, в зависимости от конкретного типа, оккультных форм одновременно. Так что моды на оккультов-гибридов не создают эту систему с нуля, вместо этого они помогают атрибутам разных оккультов существовать одновременно».
То есть гибридные оккульты – это не взлом игры и не что-то, работающее вопреки её логике. Сама игра изначально поддерживает несколько оккультных типов у одного сима на уровне кода. Просто EA не реализовала для этого интерфейс. Моды на гибридов просто дорабатывают то, что уже есть.
Что касается настроек мутаций: помимо шансов для каждой расы, есть отдельный параметр – вероятность мутации из не-оккульта. Он отвечает за то, может ли ребёнок-человек вообще стать оккультом, если ни у кого из предков этого оккульта не было. Если этот параметр равен нулю, неважно, какие шансы выставлены для отдельных рас: обычный сим оккультом не станет.
Привидения и пришельцы в систему мутаций намеренно не включены: пришельцы по лору прилетают с Сиксама, а привидения – это по сути души мертвых симов. Включать их в список случайных мутаций было бы странно с точки зрения нарратива.
Про наследование пресетов: как это работает на самом деле
В разговоре с SonozakiSisters выяснилось кое-что интересное о том, как игра обращается с пресетами лица:
«Даже без модов дети могут наследовать необязательно тот же пресет, что у их родителя. Можно сказать, игра оперирует группами близких пресетов, и в этой группе будет случайно выбран наследуемый пресет».
Иными словами, даже в ванильной игре ребенок не копирует нос родителя – он получает один из похожих носов из той же «группы». Это не баг, а задуманная механика: так создается разнообразие при сохранении семейного сходства.
Проблема возникает с CC-пресетами: они не входят ни в какую группу, игра просто игнорирует CC-пресеты при наследовании. SonozakiSisters думает над тем, чтобы в будущем вручную добавить в эту таблицу поддержку популярных кастомных пресетов, автоматизировать это не выйдет, но можно расширить список вручную.
Ещё один факт, который обнаружился во время тестирования: игра также полностью игнорирует пресеты оккультных форм. При создании ребенка-оборотня пресеты родителей-оборотней вообще не участвуют в генетике. Значение имеют только обычные «человеческие» пресеты.
Практический вывод: если вы планируете детей симу с CC-пресетом лица, лучше замените его на ванильный, иначе ребенок может унаследовать совсем другое лицо, и мод тут не при чем.
Про наследование слайдеров: детали от автора
Слайдеры – отдельная история. По умолчанию игра наследует их случайным образом, никак не привязывая к источнику пресета. Мод улучшает это: если ребенок унаследовал нос от бабушки, он унаследует и все слайдеры носа тоже от бабушки, а не вперемешку из разных источников. Это делает лицо ребёнка более цельным и органичным.
Со слайдерами из CC ситуация сложнее:
«В отличие от пресетов, игра спокойно наследует CC-слайдеры, однако наследуются они случайным образом. Для игровых слайдеров я смогла улучшить алгоритм, чтобы игра обращала внимание на то, к какому участку лица или тела относится слайдер. С кастомными слайдерами так сделать не получится, поскольку на уровне скрипта нет данных о том, к какому участку относится CC-слайдер. Я бы тоже хотела сделать таблицу для популярных слайдеров по аналогии с пресетами».
Recreate Offspring: страховка на случай бага
Функция, о которой легко забыть, но которую очень ценишь, когда она нужна. И за ней скрывается один из самых удивительных технических фактов, которые нам рассказала автор.
Начиная с версии 1.1, мод автоматически сохраняет отчет о каждом новорожденном симе (включая NPC и питомцев) в отдельную папку reports. В отчёте все генетические данные, которые применялись при рождении. С помощью чита Shift + клик на маме → Recreate Offspring можно выбрать второго родителя, выбрать отчёт нужного ребёнка, и мама снова родит сима с теми же предустановленными генетическими данными. Это спасает в ситуации, когда мод сгенерировал интересного ребёнка, но что-то пошло не так и сим выглядит багово.
Но как вообще это работает технически?:
«Для того чтобы сделать это возможным, мод сохраняет так называемый seed – это некое число, которое на уровне кода фиксирует работу случайностей. Таким образом, передавая каждый раз одинаковый seed, игра совершает все те же случайные выборы, что и прежде».
А теперь самое неожиданное:
«Без KЦ и моего мода игра не хранит seed во время беременности. Более того, данные вообще никогда не фиксируются. Абсолютно каждый раз, когда игра что-то делает в модуле беременности, все данные о потомстве – включая количество детей и их пол – генерируются заново. И происходит это далеко не только при рождении ребёнка, поедании клубники или яблока или просьбе у врача определить пол. Среди прочих ситуаций: вход в игру, переключение между семьями, вход и выход из CAS. По факту, многие служебные процессы могут перезаписать все данные».
Иными словами: в ванильной игре пол ребёнка, его количество и генетика не фиксируются в момент зачатия. Они генерируются заново при каждом удобном случае, и клубника с яблоками в этой системе действительно работают, но только до следующего события, которое сбросит данные. Войти в CAS и выйти из него – и пол ребёнка уже другой.
«KЦ же запоминает упомянутый seed при создании беременности, а потому никакие события после этого не могут изменить генетику, пол и количество детей. Так что при установленном KЦ есть клубнику бесполезно. Зато можно один раз сходить на УЗИ через мод на реалистичные роды и знать, кого ожидать».
Несколько условий для работы чита Recreate Offspring:
- Сим должен быть из активного домохозяйства и находиться на домашнем участке
- Он не должен быть уже беременным
- В домохозяйстве должно быть не более 7 симов
- У выбранной пары должен существовать сохраненный отчет о ребёнке
Оригинальный «багованный» сим не удаляется автоматически, это нужно сделать вручную, например через MCCC. Новый сим отчёта не получает, чтобы не создавать бесконечный цикл идентичных данных.
Модуль второй: Better Inheritance – правильный скинтон и архетипы
Этот модуль отвечает за то, как именно наследуются тон кожи, тип глаз и цвет волос в смысле их «архетипа», а не просто оттенка. И здесь, как и в случае с Main Mod, ванильная игра работает значительно хуже, чем кажется на первый взгляд.
SonozakiSisters подробно описала проблему:
«Игра игнорирует большинство характеристик тона кожи родителей, обращая внимание лишь на базовый оттенок (тёплый / нейтральный / холодный / оккультный) и не менее багованным алгоритмом смешивает примерные значения».
Результат этого «смешивания» нередко оказывается случайным: ребёнок двух смуглых симов внезапно получает светлую кожу. Функция смешивания скрыта от моддеров так же, как и ядро генетики, ее нельзя починить, только обойти. Что мод и делает: он полностью отключает смешивание скин-тонов и вместо этого заставляет игру учитывать насыщенность и яркость тона кожи, а также расу родителей.
Ребёнок теперь наследует либо скинтон одного родителя, либо другого без промежуточных вариантов. Аналогичная настройка есть в MCCC, но с важным отличием: MCCC работает только в режиме жизни, а этот модуль работает и в CAS тоже.
Раса учитывается и в других характеристиках – цвете глаз и волос. Именно так модуль снижает шансы генерации, например, темнокожих симов с платиновыми волосами и голубыми глазами азиатского типа. Автор оговаривается: если на соответствующих характеристиках стоят некорректные теги, такие комбинации всё равно могут появиться. Но это уже проблема качества CC, а не мода.
Модуль третий: No Weird Age Up and Random Genetics
Этот модуль отвечает за рандомную генерацию симов и за изменения внешности при взрослении. И здесь снова скрывается интересная техническая история.
SonozakiSisters объяснила, как устроена система изнутри:
«У игры есть шаблоны применения игровых слайдеров для каждой возрастной стадии, пола и оккультного типа. В этих шаблонах задаются границы рандома значения слайдера, базовое значение и границы ручного изменения. Эти шаблоны применяются как при генерации очередного сима, так и при переходе сима из одной возрастной стадии в другую, неважно, игровыми методами или в режиме CAS».
Проблема в том, что у многих слайдеров нет ограничения рандома вообще, а у некоторых всё ещё хуже: рандом отключён в одну сторону, но включён в другую. Самый яркий пример – пресловутые маленькие подбородки:
«Столь неприятная проблема существует только потому, что разработчики зачем-то отключили рандом в сторону увеличения подбородка, зато оставили большой лимит в сторону уменьшения. Таким образом, даже если у предыдущих поколений подбородок нормальный, у потомка с большой вероятностью он станет меньше. И в этом же причина многих других проблем: странного размера частей лица и тела или их аномального расположения относительно друг друга».
Это не случайность и не «так получилось», это конкретное решение в коде EA, последствия которого мы наблюдаем в каждой второй сгенерированной семье. Модуль переписывает все эти шаблоны, задавая разумные нижние и верхние пределы для слайдеров глаз, губ, ноздрей, положения носа и рта, углов бровей, ширины плеч и ряда других параметров.
NPC не станут идеальными, пресеты по-прежнему могут подводить. Но откровенно страшные лица будут появляться значительно реже. В связке с этим модулем автор рекомендует Presets Selection for Randomized Sims от SimplyAnjuta, мод, который исключает некрасивые пресеты из рандомизации NPC.
Совместимость: с чем работает, а с чем нет
Мод совместим с большинством популярных модов: Wonderful/Wicked Whims, MCCC, Relationship & Pregnancy Overhaul, NPC Family Genetics Fix, модами на гибридных оккультов и так далее.
Про MCCC стоит сказать отдельно:
«У KЦ есть довольно много настроек, связанных с ограничением рандома генетики. Казалось бы, здесь должен быть конфликт. Но его нет потому, что KЦ вмешивается и вносит свои дополнительные ограничения лишь тогда, когда ребёнок взрослеет до подростка. Мой же мод вмешивается в генетику на этапе рождения. Таким образом, при выключении пары настроек в KЦ, моды работают вместе корректно».
Для корректной совместной работы нужно в MCCC отключить два параметра: Наследовать параметры тела родителей и Использовать детали кожи родителей в разделе MC CAS → Потомство.
Что касается редких исключений в совместимости, SonozakiSisters упомянула два конкретных случая:
«Есть пара исключений, где другие моды вызывают скрытый процесс создания потомка напрямую. Первое – это когда WickedWhims генерирует в семейном древе иконку ребёнку, который не родился из-за выкидыша. Я не вижу смысла просить Турбодрайвера создать совместимость с моим модом, ведь смысл этой функции лишь в том, чтобы отразить утрату в древе, а не передать внешность».
«Второе исключение – это NPC Family Genetics Fix от Deadlystingnyc. Это очень полезный небольшой мод, который заставляет игру применять систему генетики при генерации детей во время создания NPC-семьи целиком. Однако я на связи с автором мода, и после тестирования при необходимости мы выпустим совместимую версию».
Из технических конфликтов:
- Better Inheritance конфликтует с модами, изменяющими файл Client_GeneticTags
- No Weird Age Up конфликтует с модами, изменяющими Client_CASModifierTuning
- Оба эти модуля не конфликтуют с MCCC
Ограничения, о которых стоит знать
- Мод не влияет на создание детей в CAS – код редактора внешности закрыт для сторонних разработчиков
- При рождении у симов временно выставляется стандартная стрижка – так мод гарантирует корректное применение цвета волос; потом причёску можно поменять
- Нестандартные CC-глаза без тегов могут не распознаться автоматически – цвет нужно задать вручную через Shift + клик
- Система привлекательности не учитывает натуральные цвета волос и глаз, только текущий внешний вид. Автор считает, что это логично: симов должна привлекать реальная внешность, а не биологическая
Как установить
Для Main Mod обязательно нужна библиотека Lot51 Core Library, без неё мод не запустится. Остальные два модуля устанавливаются без дополнительных зависимостей.
Общие правила установки:
1. Скачайте нужные модули (ссылки выше)
2. Поместите файлы в папку Mods не глубже одной подпапки
3. Не удаляйте JSON-файл, который идет вместе с основным модом, в нем хранятся настройки
4. При переходе на версию 1.2 удалите только старые файлы мода; файл настроек можно сохранить
Если взаимодействия не появились в игре:
- Проверьте, установлена ли Lot51 Core Library
- Убедитесь, что включены тестовые читы: testingcheats true в консоли