Дневник разработчиков Crusader Kings 3 №87 — Королевский моддинг
Всем привет и добро пожаловать в 87-й дневник разработчиков Crusader Kings 3!
Меня зовут Мэттью (Matthew), я программист в команде CK3, и сегодня я расскажу вам о различных улучшениях и изменениях моддинга в обновлении 1.5, которое выйдет вместе с расширением Royal Court.
Много изменений коснулось поддержки модов в 1.5, поэтому я не буду рассказывать обо всём, а покажу лишь несколько ключевых изменений, которые позволят модам творить море веселья и ещё капельку сверху. Также я прикрепил документацию по скриптам в 1.5, чтобы любопытные мододелы могли взглянуть на новые триггеры и эффекты до релиза.
Тронный зал
Разумеется, сам тронный зал можно менять, он целиком описан в папке gfx/court_scene, хотя большую часть сложных настроек сцены лучше всего изменять во внутриигровом редакторе, который будет доступен вместе со сценой зала. Он позволяет расставлять и изменять объекты и переключаться между различными параметрами намного быстрее, чем вручную.
Поверьте мне — я помню времена, когда редактор ещё только разрабатывался, и внесение всех изменений вручную разрушило мою душу.
Не буду углубляться в моддинг тронного зала, потому что в редакторе всё и так предельно ясно: расставляете объекты и выбираете нужные для композиции ассеты, а он просто размещает их.
Однако я расскажу немного подробнее о расстановке персонажей, потому что, хоть всё остальное и можно расположить в редакторе, каждого персонажа, разумеется, не расставишь, потому что не во всех тронных залах есть, к примеру, король Англии.
Вместо позиций персонажей доступен ряд ролей, и вы выбираете, где будет стоять персонаж с некой ролью. Например, два стражника на заднем плане — это два персонажа с ролями «стражник» и «рыцарь», и у этих ролей есть ряд правил, по которым они выбирают персонажей.
Если в зале назначена позиция, к примеру, телохранителя или чемпиона, то игра попытается использовать их как особых стражников, но если у вас их нет, она выберет одного из рыцарей. Также вы можете выбрать несколько особых ролей, вроде придворного шута или поэта, которые тоже могут появиться в зале.
Персонажи не могут появиться одновременно на нескольких ролях, и игра «жадно» выбирает первого подходящего, но вы можете прописать несколько сложных правил, чтобы указать, кто и куда должен встать и какие анимации выбрать!
Однополые браки
В обновлении 1.5 появится поддержка однополых браков, не только в модах, но и в качестве нового игрового правила наряду с однополыми отношениями, поэтому вы сможете их использовать и в базовой версии. Мы обновили логику и взаимодействия ИИ, а также контент, чтобы учитывать это во время игры.
Естественно, моды смогут включать это в свои миры минуя игровое правило, это может быть частью различных культур или чего угодно в мире.
Мы очень рады добавить эту возможность в игру, в том числе её поддержку игровыми правилами в обычных партиях, этого очень хотели многие в нашей команде и сообществе, и очень здорово, что в обновлении 1.5 она наконец-то появится.
Скриптованные виджеты
Возможности для моддинга в CK3 шире, чем во всех других наших играх, и это касается не только контента, который можно добавить, но систем, которые можно изменять скриптами из модов. И наша новая система интерфейса наиболее открыта в вопросах добавления и изменения собственного интерфейса. Однако ей всё же не хватало возможности добавлять совершенно новые элементы и сохранять при этом хорошую совместимость.
В 1.5 появится новая система под названием «Скриптованные виджеты». Благодаря им в моде можно будет создать совершенно новые окна в файлах интерфейса, а затем добавить запись с указанием имени gui-файла и основного окна в папку gui/scripted_widgets.
Благодаря этой простой записи пользовательские окна будут появляться в игре так же, как все прочие, которые мы поддерживаем в коде. Естественно, тут есть ряд ограничений: у этих окон нет контекста для особых данных, в отличие от описанных кодом, но они могут получать доступ ко всему, что объявлено глобально, а также к локальному персонажу игрока, и зачастую этого более чем достаточно.
Возможно, это не звучит как что-то важное, но отныне мододелам легче будет создавать обширные системы и совмещать их с другими модами, добавляющими системы, или даже с модами на полную переделку, если нет пересечений в несовместимых вопросах дизайна.
Мне не терпится взглянуть на новые интерфейсы, которые появятся в модах для новых систем игрового процесса, и попробовать несколько таких модов вместе. Надеюсь, в их окна будет вложено больше сил и смысла, чем в мои тестовые…
Подробности о значениях
Ещё одна возможность ИИ, которую тяжело было внедрить в моды, — это вывод подробностей о числах так же, как мы выводим подробности об источниках роста престижа, например, или количестве благочестия для объявления войны.
В 1.5 мы добавили функцию интерфейса GetScriptValueBreakdown, которая позволяет указать имя скриптованного значения и область видимости для контекста, и получить ту же самую информацию, какая выводилась бы с помощью нашего кода.
Например, в моём виджете у кнопки есть подсказка с подробностями о стоимости повышения авторитета короны, и это работает совершенно независимо от обычно нужной в таких случаях кнопки для подсчёта стоимости из интерфейса владений.
Мы надеемся, что это позволит модам лучше объяснять свои значения, будь то мана в фэнтези-моде или особые очки для некой цепочки событий.
События и локализация
Чтобы упростить жизнь мододелов и наших дизайнеров, работающих над событиями, мы добавили и переработали несколько кнопок отладки в окне события.
Теперь у каждого события в правом верхнем углу есть пять значков.
По порядку они позволяют следующее.
- Пересодать содержимое события. Полезно, если вы что-то изменили, и это не поддерживается быстрой перезагрузкой.
- Глобально переключить систему данных. Это заставляет почти всё, что заключено в квадратные скобки, выводиться именно так, как написано, а не в виде какого-то результата. Доступно и через консольную команду.
- Скопировать текст события в буфер обмена.
- Показывает вычисления триггера, который должен был вернуть истину, чтобы это событие произошло.
- Отладочная информация о контексте текущей области видимости и о том, как ключи используются для создания описания.
Мы обнаружили, что быстрый доступ к этим функциям значительно облегчает отладку событий и работу над контентом.
Но имейте в виду, что, переключив систему данных, вы можете получить поистине кошмарные окна, поскольку вместо обычной цифры 4 будет выводиться вся цепочка увлекательных событий, её породившая. Как вот в этом окне:
В качестве более механического улучшения мы добавили заготовку сокращения кулдауна событий, вместо необходимости самостоятельно вручную проверять и жонглировать флагами и переменными вы сможете указать кулдаун для события в днях/неделях/месяцах/годах в виде какого-то значения, и оно автоматически займётся применением флагов, которые очищаются спустя указанное время блокирования события от возникновения у персонажа.
Консольные команды
В 1.5 мы добавили ряд новых консольных команд, чтобы облегчить создание и тестирование модов, и вместо того, чтобы объяснять их самостоятельно, я схитрю и просто скопирую строки с ними из списка изменений!
- Добавлена консольная команда bypass_requirements (сокращённо bypass), которая позволяет выполнять решения, взаимодействия, происки, законы и создание титулов в обход требуемых ими условий.
- Добавлена консольная команда instasiege.
- Добавлена консольная команда save_every и парамтер запуска -save_every=Х. Они позволят создавать сохранения раз в Х лет и не перезаписывать их обычными автосохранениями.
- Добавлена консольная команда AI.try_send_decision.
- Добавлена консольная команда AI.try_send_interaction.
- Добавлена консольная команда Ironman.ToggleIgnore. Когда игнорируется, сохранения будут вести себя так, будто они не в режиме «Железная воля», в том числе и сохранения будут создаваться без этого режима. Можно переключать во время игры.
- Добавлена консольная команда ToggleShowAllKillers.
- Добавлены консольные команды complete_schemes, guaranteed_scheme_success/failure, и guaranteed_scheme_secrecy_success/failure. Команды success/secrecy влияют только на игрока
- Добавлена консольная команда set_date.
- Добавлена консольная команда show_regions_in_tooltip.
- Добавлена консольная команда toggle_keys_on_map.
- Добавлена консольная командаs yesmen_instant (или ymi) и instant_responses. Кнопку yesmen в консоли теперь можно нажать ПКМ и запустить yesmen_instant.
Команды bypass и save_every оказались особенно полезны для тестирования тестирования скриптов и проверки, что они работают именно так, как вы задумали в своих модах. Как и команды, чтобы заставить ИИ использовать взаимодействие, а не сидеть и ждать, пока он решит сделать это сам.
Модификаторы повсюду
В 1.5 мы несколько улучшили модификаторы, так что если у вас где-то есть модификатор недопустимого типа, появится ошибка и вы узнаете, что он работать не будет.
Что окаалось особенно полезно, ведь в 1.5 мы значительно расширили поддержку модификаторов в зданиях: они теперь могут не только применять модификаторы к вам, но и применять особые модификаторы в зависимости от параметров культуры, которые применяются традициями. Это можно использовать в модификаторах, влияющих на персонажа, провинцию, державу и модификаторы duchy_capital_county.
А ещё есть province_terrain_modifier, который может применять модификатор на основе типа местности, наличия побережья, наличия реки и культурного параметра. Так что традиции в модах могут быть очень важны и позволят культурам раскрыться совершенно по-новому.
Часики тикают
День выхода уже близко, и нам не терпится узнать, что же моды будут делать с Royal Court, особенно с самим экраном тронного зала, где, мы надеемся, в будущем можно будет увидеть потрясающие 3D-сцены из фэнтези-модов.
А я, пожалуй, вернусь к предрелизной суматохе. Спасибо, что прочитали, и надеюсь, что вы ждёте выхода Royal Court и потрясающих модов, которыми мы сможем насладиться в будущем!
Для просмотра ссылки Зарегистрируйтесь