Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

STB Editor

Современная замена Creation Kit для Skyrim SE / AE / VR: расстановка объектов, ячейки и миры, ландшафт, навмеш, редактирование любых записей, квесты и диалоги, скрипты Papyrus с компиляцией. Плагины ESP / ESM / ESL, header 1.70 и 1.71 (с BEES — и на SE).

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

  • План и решения — docs/PLAN.md, разбор CK и концепта SkyrimMapEditor — docs/ANALYSIS.md.
  • Для разработчиков (сборка, устройство, проверки, как добавлять функции) — docs/DEVELOPING.md.
  • Рендер: шейдеры, эффекты, частицы, что приближено — docs/RENDERING.md.

Состояние

Этап Что Статус
0 Load order (MO2 / Data), индексы как в игре, BSA + loose, каталог записей, Object Window, Cell View (ячейки и их объекты), Inspector, Load Order; интерфейс на русском и английском, справка по клавишам (F1) готово
1 NIF, 3D-окно: интерьеры, экстерьеры с ландшафтом и водой, свет ячейки и точечные источники, выбор кликом, камера как в CK, подгрузка экстерьера за камерой; огонь, дым и прочие частицы, анимация эффектов; NPC и существа (одежда, FaceGen-лица, в позе привязки) готово
2 Расстановка, сохранение в активный файл, undo/redo, каталог с 3D-миниатюрами, свойства рефов (флаги, enable parent, владелец, замок, телепорт, linked refs) готово
3 Редактор полей любой записи, дублирование, скрипты и их свойства (из .pex, автозаполнение) готово; редактор условий (CTDA), Use Info — дальше
4 Ячейки, миры, ландшафт новые интерьеры и миры, ячейки по месту; кисти высот, покраска текстурами, плоская земля — готово; свойства существующих ячеек, vertex color, регионы — дальше
5 Навмеш показ, выбор, перенос, удаление, создание треугольников, флаги, finalize (двери, связи, NAVI), генерация по ячейке — готово

Claude Code может работать с открытым редактором (снимки окна рендера, камера, объекты, поля записей, пометки) — docs/CLAUDE-BRIDGE.md, по умолчанию выключено.

Чего ещё нет по сравнению с CK и xEdit и в каком порядке это делать — docs/GAPS.md; коротко для тестеров: что есть и что в планах — docs/ROADMAP.md.

Скачать

Готовая сборка — на странице Releases: скачать STBEditor-<версия>.zip, распаковать в любую папку (например <игра>\STB Editor\) и запустить STBEditor.exe. Ставить .NET не нужно. В MO2 можно добавить STBEditor.exe как исполняемый файл, но не обязательно — профиль MO2 редактор читает сам.

Сборка и запуск

Нужен .NET SDK 10.

dotnet build STB-Editor.sln -c Release
src\Editor.App\bin\Release\net10.0-windows\win-x64\STBEditor.exe

Готовый портативный архив: package.ps1 → dist\STBEditor-<версия>.zip (распаковать в любую папку, в MO2 добавить STBEditor.exe как исполняемый файл, как Creation Kit).

Ключи: --game <папка игры>, --mo2 <папка|none>, --profile <имя>, --open (без диалога), --search <текст>, --select <FormID>, --cell <EditorID|FormID>, --screenshot <файл.bmp> (кадр после загрузки и выход). Отладочные ключи — в docs/DEVELOPING.md.

Настройки, кэш каталога, логи и бэкапы — %LOCALAPPDATA%\STBEditor.

Интерфейс

  • Файл → Данные: игра, профиль MO2 и какие плагины загружать, как в CK: весь порядок загрузки или только отмеченные (нужные им мастера подтянутся сами). Индексы FormID остаются как в игре.

  • Вид → Language / Язык — русский или английский, переключается сразу.

  • Вид → Настройки — колесо мыши и полёт, вопрос перед дверью, подсветка NPC, FPS, язык, тема оформления (15 штук, как стили xEdit), размер интерфейса (75–200 %; Ctrl+= / Ctrl+- / Ctrl+0), служебные поля записей (по умолчанию скрыты).

  • Справка → Клавиши и функции (F1) — все клавиши и что где делается.

  • Вид — какие окна открыты (Log и Load Order по умолчанию закрыты), ограничение FPS (по умолчанию 60, в фоне 15), сброс раскладки окон.

  • Cell View: слева ячейки выбранного мира, справа — объекты загруженной ячейки (для экстерьера — центральной или выбранной слева); клик по объекту выделяет его и наводит камеру, фильтр по EditorID / типу / FormID.

  • Слабый ПК: на панели Render Window выключить FX и Anim, уменьшить grid ±N (сколько ячеек экстерьера грузится вокруг). Меши и текстуры, которые давно не видны, выгружаются сами, когда занимают больше своей доли видеопамяти.

Управление в Render Window

Камера (как в CK + полёт):

Действие Как
Загрузить ячейку двойной клик в Cell View
Создать примитив (как главная панель CK) Render Window → «Создать»: триггер, мультибаунд, окклюзия, комната и портал (и их связи), коллизия, акустика, источник звука — вокруг выделенного или там, куда смотрит вид
Окно ссылки (как в CK) двойной клик по объекту: 3D-данные со стрелками шага, флажки CK по типу объекта, вкладки (родитель включения, владелец, замок, телепорт, связанные ссылки, «Ссылаются сюда», скрипты, остальное), «Править базу»
Пройти через дверь двойной клик по двери → «Пройти через дверь» в окне ссылки (или Inspector → Телепорт → «К связанной двери») — откроется ячейка, куда она ведёт, камера у маркера
Вращать вокруг выделения (без выделения — осмотреться) Shift + мышь
Панорама Пробел + мышь или СКМ
Зум колесо, плавно (Shift — быстрее, Ctrl — медленнее; скорость — «Вид → Настройки...»)
Полёт ПКМ по пустому месту + WASD, Q/E вниз/вверх, колесо при ПКМ — скорость
Орбита Alt + ЛКМ
Показать выделенное / вид сверху C или двойной клик / T
Выделенное полупрозрачно → скрыто → видно / показать всё 1 / Alt+1
Пресет вида (что показано, свет, скорость, радиус сетки) кнопка «Пресет» на панели окна рендера
Где камера / найти объект во всём мире «Ячейки»: строка «Камера», «Найти объекты в мире»

Объекты:

Действие Как
Выбрать ЛКМ, Ctrl+ЛКМ — добавить/убрать
Двигать по земле (как в CK) ЛКМ-перетаскивание выделенного; с зажатой Z — по высоте; X / Y — только по оси
Вращать (как в CK) ПКМ-перетаскивание выделенного (ось Z; с X / Y — по другим осям)
Масштаб S + ЛКМ-перетаскивание
Гизмо Q выбор, W перемещение (стрелки), E поворот (кольца), R масштаб; L — мировые/локальные оси
Привязка G — к сетке (шаг на панели), угол — кнопка Angle
Уронить на землю F
Удалить Delete
Отменить / вернуть Ctrl+Z / Ctrl+Y (Edit → Undo показывает, что именно)
Точные значения Inspector → Placement (позиция, поворот в градусах, масштаб)
Маркеры / границы ячеек / каркас M / B / Shift+W
Поставить объект перетащить из Object Window (список или плитки) или из Preview в Render Window
Дублировать Ctrl+D (копия на том же месте, сразу выделена — тащи)
Палитра объектов Мир → «Палитра объектов...»: клик ставит случайный объект набора со случайным поворотом и размером
Слои Мир → «Слои...»: группы рефов, скрыть или заморозить (видны, но не выбираются); хранятся вне плагина
Story Manager Мир → «Story Manager...»: дерево событий, веток и квестовых узлов, щелчок открывает форму
Экспорт FaceGen Object Window: Ctrl+F4 или правая кнопка → «Экспорт FaceGen» по NPC — голова и тинт как у CK, рядом с активным файлом
Редактор лица Форма NPC → «Appearance»: части головы, пресеты, ползунки, цвета, тинты и живое превью головы
Run Havok Sim Окно рендера: Alt+H или «Havok» — выделенное падает с физикой и ложится (один Ctrl+Z)
Генерация навмеша Панель Navmesh → «Сгенерировать навмеш»: по мешам и ландшафту ячейки, затем Finalize
Дерево перков Форма навыка (AVIF) → «Дерево перков»: узлы перетаскиваются, Ctrl+клик связывает, двойной клик открывает перк; «Как в игре» — само меню игры (её NIF небосвода и звёзд, расстановка как в exe): взять перки, проверить ветки, перетащить звёзды по картинке созвездия
Idle-анимации World → «Idle-анимации…»: дерево по графам и действиям, порядок проверки, перетаскивание, новые idle
Ассеты плагина File → «Ассеты плагина…»: какие файлы нужны плагину, откуда они и каких нет
Экспорт данных, ModGroups File → «Экспорт данных…» (тексты и GMST по видам в TSV), «ModGroups…» (группы плагинов для фильтра конфликтов)
Скрипты File → «Скрипты…»: C#-скрипты (.csx) читают и правят записи, правки — одним Ctrl+Z; примеры в комплекте
Регионы World → «Регионы…»: границы на ландшафте, углы перетаскиваются, новые регионы и области
Коллизия Окно рендера → «Коллизия» (F4): коллизия Havok объектов рядом с камерой
Погода и время суток Окно рендера снаружи → «Небо»: погода климата или любая, час 0–24 — свет, туман и цвет неба
Фреймворки SKSE «Где используется» → «Фреймворки»: SPID, KID, BOS, FLM, Description Framework, SRD, OAR, DAR — что делают с записью и кому SPID / KID её выдают; у NPC на «Заклинаниях и перках» — что SPID ему добавит, на «Анимациях» — какие замены OAR / DAR на нём сработают; кнопка «BOS» в окне рендера показывает замены Base Object Swapper
Реплики персонажа World → «Реплики персонажа…»: что может сказать NPC (условия на ID, голос, фракции…)
Голосовые файлы World → «Голосовые файлы…»: какие файлы озвучки нужны по голосам, что есть; экспорт списка, .lip (LipGenerator из CK) и .fuz
Копировать / вырезать / вставить Ctrl+C / Ctrl+X / Ctrl+V — под курсор; Ctrl+Shift+V — на то же место (можно в другую ячейку). Копии сохраняют свойства рефа, кроме телепорта

Панель Render Window: режим (Lit / Unlit / Normals / Untextured), Wire, Markers, Disabled, Water, Land, Трава (виды травы текстур ландшафта, расставленные как в игре; шаг и дальность из INI), Fog, Borders, FX (частицы: огонь, дым, пыль, искры), Anim (анимация пламени, текущей воды и частиц; выключить — кадр замрёт и процессор отдохнёт), NPC (подсветка NPC и существ, чтобы их было видно в тёмных интерьерах; включена по умолчанию), Показ (CK: Show/Hide — скрыть статику, мебель, двери, свет, актёров, флору, предметы и т. д.; снаружи «Только текущая ячейка»; скрытое и не выбирается). С Markers видны и примитивы рефов: триггер-боксы, зоны активации, границы комнат и порталы.

Сохранение (как в CK)

  • File → Active File... — выбрать плагин, куда пишутся правки, или создать новый (имя, флаги ESL/ESM; ESL по умолчанию выключен). Новый плагин создаётся в overwrite MO2 (без MO2 — в Data); в MO2 его можно оформить в мод: правый клик по Overwrite → Create mod.
  • Ctrl+S — сохранить в активный файл; если активного нет, сначала спросит, куда.
  • Перед заменой: запись во временный файл, проверка чтением, бэкап в %LOCALAPPDATA%\STBEditor\backups\<плагин>\ (последние 30).
  • Нетронутые записи существующего плагина сохраняются байт-в-байт. Если правке нужен новый мастер (запись из плагина, которого нет в мастерах активного файла), собственные FormID плагина сдвигаются и файл переписывается целиком; тогда окно «Проверка сохранения» называет новый мастер и перечисляет записи, которые выйдут не байт-в-байт (сдвиг номеров FormID изменением не считается). Обычно это пара записей с пустыми маркерами — «Всё равно сохранить» безопасно; надёжнее — «Сохранить в новый плагин».
  • Файл → Мастера — мастера активного файла: какие не используются, «Добавить мастер», «Убрать неиспользуемые» (как в xEdit). Применяется при Ctrl+S, Ctrl+Z отменяет; файл записывается заново с перенумерованными FormID.
  • Изменённый реф из чужого плагина → override в активном файле; «удалённый» чужой реф → безопасно отключён (initially disabled, enable parent = игрок, z = −30000); свой реф — удаляется по-настоящему.

Новые ячейки и миры

  • World → New Interior Cell... — Editor ID, имя, освещение (шаблон освещения или свои цвета и туман). Ячейка сразу открывается в Render Window — перетаскивай в неё объекты.
  • World → New Worldspace... — Editor ID, имя, климат, вода и её высота, высота земли по умолчанию, «small world», сколько ячеек создать вокруг (0, 0).
  • Поставил объект в мире там, где ячейки ещё нет, — ячейка создаётся сама (как в CK).
  • Новые ячейки видны в Cell View с пометкой new; всё попадает в активный файл при Ctrl+S, Ctrl+Z отменяет создание.

Ландшафт (как Landscape Edit в CK)

Новый мир: плоская земля, холм, снег, трава

  • H или кнопка Land на панели Render Window — режим ландшафта; настройки — в панели Landscape (вкладка рядом с Preview).
  • Кисти высоты: Raise / Lower (Shift меняет направление), Flatten (к высоте, где начат мазок), Smooth, Задать высоту (CK: Absolute Height), Поднять до / Опустить до (CK: Raise To / Lower To — не дальше цели), Шум. Целевая высота — полем или Ctrl+клик по земле. Радиус, спад (CK: Edit Falloff %, внутренний круг — полная сила) и сила — ползунками.
  • Кисти текстур: Paint (текстура из списка с превью; макс. непрозрачность как Max Opacity в CK), Стереть, Убрать траву / Вернуть траву — видимая текстура уступает двойнику с той же картинкой без травы или с ней (LTundra01 / LTundra01NoGrass), земля выглядит так же. В списке видно, в скольких квадрантах загруженной земли используется текстура, и можно оставить только используемые.
  • ЛКМ-перетаскивание по земле; один мазок — один Ctrl+Z. Края соседних ячеек сшиваются, швов нет.
  • Покраска базовой текстуры четверти ячейки стирает слои над ней; в одной четверти — до 6 слоёв (ограничение игры).
  • Цвет — кисть цвета вершин (CK: Vertex Color): подкрашивает землю к выбранному цвету, белый — без оттенка.
  • Create flat land — плоская земля заданной высоты во всех загруженных ячейках без земли (для новых миров).
  • Карта высот: «Экспорт карты высот» пишет высоты загруженных ячеек в .r16 (16 бит, север сверху; World Machine, Gaea, графические редакторы) и .json рядом; «Импорт карты высот» возвращает отредактированную карту в те же ячейки (один Ctrl+Z).
  • Высоты хранятся в игре с шагом 8 единиц и перепадом не больше 127 шагов между соседними точками — более крутые обрывы обрезаются (ограничение формата LAND).

Свойства рефа, записи и скрипты (Inspector)

Выделенный реф в Render Window — в Inspector:

  • Placement — позиция, поворот в градусах, масштаб.
  • Reference — флаги (Persistent, Initially disabled, Visible when distant…), Enable parent (с «Opposite» и «Pop in»), Ownership (NPC или фракция + ранг), Lock (уровень, ключ, leveled), Teleport (дверь назначения, маркер; Link with a door… — кликни вторую дверь, можно в другой ячейке: обе двери получат телепорт друг на друга, маркеры перед дверями), Linked references, количество предметов, радиус света.
  • Ещё свойства (раскрывающийся раздел) — все остальные поля рефа: Editor ID рефа, уровень лвл-актёра, encounter zone, persistent location, location ref types, activate parents, маркер карты, emittance, свет, лошадь и торговый сундук NPC, примитив, комнаты и порталы и т. д. С несколькими выделенными объектами меняется у всех.
  • Scripts — скрипты рефа и их свойства.

Поля-ссылки: начни вводить EditorID, название или FormID — под полем появится список подходящих записей нужного типа (стрелки и Enter или клик); ▼ — полный список этого типа с фильтром, как выпадающие списки CK. Ещё можно перетащить форму из Object Window, а для рефов — нажать + и кликнуть реф в Render Window (Esc — отмена). x очищает.

Формы записей (как окна форм CK)

Окно формы актёра: вкладки как в CK, навыки редактируются

Любая запись редактируется сразу, без отдельного режима: в Inspector или в отдельном окне формы — двойной клик по записи в Object Window или кнопка В окне (можно открыть несколько).

  • Вкладки как в CK: у актёра «Характеристики», «Статы», «Фракции», «Инвентарь», «Заклинания и перки», «ИИ», «Внешность», «Атаки»; свои вкладки у брони, оружия, перков, заклинаний, магических эффектов, контейнеров, зелий, ингредиентов, зачарований, книг, фракций и света. Остальные типы — «Основное» и по вкладке на каждый список и большую структуру.
  • Простые поля — сеткой «поле | значение»; вложенные структуры — разделами; списки (инвентарь, фракции, перки, эффекты, условия, записи перка) — таблицами или раскрываемыми строками, + добавить / x. Для списков разных видов (условия, записи перка) «+ добавить» спрашивает, какой вид.
  • Условия (CTDA — у перков, эффектов, заклинаний, пакетов, рецептов, idle, экранов загрузки, алиасов квестов…) показываются строками, как в CK: Subject.GetIsID(Hulda) == 1 AND. В строке меняются оператор, значение и ИЛИ; щелчок по условию открывает под таблицей функцию (поиск по всем ~400 функциям), для кого (Subject, Target, реф, алиас квеста, данные пакета…), параметры (форма, или номер алиаса / данных пакета), глобальную переменную вместо числа и Swap Subject and Target. Кнопки ^ / v / x — порядок и удаление; Копировать условия и Вставить — перенос в другую запись. Каждое изменение — один Ctrl+Z.
  • Квесты — вкладки как в CK: «Данные квеста» (тип, приоритет, флаги вроде Start Game Enabled / Run Once, событие), «Условия диалогов», «Условия события», «Стадии» (слева список стадий, справа индекс, флаги старт / завершение, записи журнала с текстом, флагами «завершить / провалить квест», следующим квестом и условиями; видно, какой фрагмент Papyrus у записи), «Цели» (индекс, текст, «ИЛИ с предыдущей», цели на карте — алиас из списка, флаги, условия), «Алиасы» (новый алиас рефа или локации получает следующий свободный ID; способ заполнения — конкретный реф, уникальный актёр, локация, реф из локации алиаса, алиас другого квеста, создать реф, найти рядом с алиасом / по событию / по условиям; флаги галочками; условия, инвентарь, заклинания, фракции, пакеты, голос). В условиях квеста алиасы выбираются по имени. Индекс стадии или цели меняется с пересортировкой списка. У алиаса — «Где используется»: условия, цели, другие алиасы и скрипты квеста, его сцены, пакеты и реплики. Фрагменты Papyrus и скрипты алиасов пока правятся вне редактора.
  • Сцены — «Сцена» (квест, флаги, условия), «Актёры» (алиасы квеста, флаги поведения), «Фазы и действия»: таймлайн «актёры × фазы», действие тянется от начальной фазы до конечной; «+» в клетке — реплика, пакет или таймер; фазы добавляются, вставляются и убираются со сдвигом действий. У реплики сцены её тема с репликами правится тут же; «+ тема сцены» создаёт тему для действия. Фрагменты Papyrus сцены (Begin / End) — на вкладке «Сцена», начала и завершения фазы — под выбранной фазой.
  • Фрагменты Papyrus перков — под «Записями перка»: код каждой записи «Activate», компиляция и привязка.
  • Слить левел-листы (Файл): списки, которые меняют несколько плагинов, сливаются в активный файл (merged patch), с показом, что добавится и что уберётся.
  • Сравнить с другим файлом (Файл): что добавлено, удалено и изменено (с полями) против другой версии плагина.
  • Тексты для перевода (Файл): выгрузка всех текстов плагина, которые видит игрок, в JSON с пустым полем translation и загрузка заполненного файла обратно в активный файл одним шагом отмены.
  • AI-пакеты — вкладки как в CK: «Данные пакета» (шаблон — его выбор заполняет входные данные значениями шаблона; квест-владелец, скорость, флаги и флаги прерывания; входные данные по именам шаблона: место с видом и радиусом, цель — ссылка / объект / тип / связанная ссылка / алиас по имени / сам, да/нет, числа, темы), «Расписание» (месяц, день недели, число, время, длительность, сводка словами), «Условия» (данные пакета и алиасы — по именам), «Idle-анимации», «Начало / конец / смена» (idle, темы и фрагменты Papyrus Begin / End / Change), «Дерево процедур» (ветки деревом, у пакета с шаблоном — дерево шаблона только для чтения).
  • Дробные числа вводятся текстом и хранятся со всеми знаками (не «0.00», как в перках CK). Если формат файла хранит поле грубее (класс брони — сотые, многие доли — байтом) или только при другой настройке, у поля появляется ! с тем, что реально сохранится.
  • Правка, после которой запись не записалась бы и не прочиталась обратно, не применяется (в логе причина).
  • Все поля — полное дерево записи (тоже редактируемое). Служебные поля заголовка (FormVersion, VersionControl, Version2, сырые флаги) скрыты; показать — «Настройки → Показывать служебные поля записи».
  • Версии — запись во всех плагинах рядом, как в xEdit (см. ниже «Сравнение записей»).
  • Duplicate — копия базовой записи с новым FormID и EditorID в активном файле: она сразу появляется в Object Window и её можно ставить в мир.
  • Поле «Type» в «Всех полях» раньше показывало внутренний тип Mutagen (INpcGetter) — к данным плагина он не относится и больше не показывается; настоящие поля «Тип» (у заклинаний, книг) остаются.

Скрипт жилы руды: свойства из .pex со значениями

Несколько объектов сразу: выделите их в окне рендера (Ctrl+клик или рамкой) — флаги, enable parent, владелец, замок, количество и радиус применяются ко всем выделенным одним шагом отмены. Базовый объект в свойствах рефа меняет то, что стоит на этом месте (как Search & Replace в CK), сохраняя положение и свойства.

Скрипты (как вкладка Scripts в CK): список прикреплённых скриптов, свойства из скомпилированного .pex (тип, описание), значения из плагина; незаданные — серым. Add — прикрепить скрипт по имени (подсказки из всех .pex сборки), Auto-fill — заполнить объектные свойства, чьё имя совпадает с EditorID формы, Remove script. Вкладка есть и у квестов, перков, пакетов (свои виды данных скриптов).

Papyrus (как Papyrus Manager / Edit Source в CK): Исходник у скрипта открывает его .psc в окне — Сохранить и скомпилировать; если в поле имени ввести новое имя, кнопка Новый скрипт X (extends …) создаёт исходник (extends по типу записи: Quest, Actor, ObjectReference, ActiveMagicEffect, Perk…), и после успешной компиляции скрипт сам прикрепляется. Компилятор — <игра>\Papyrus Compiler\PapyrusCompiler.exe (или путь в «Настройках»), импорты — папки Scripts\Source / Source\Scripts всех модов MO2 (выше приоритет — раньше; выключенные моды вроде «SOURCE» с исходниками игры — в конце). Исходник и .pex кладутся рядом с активным файлом (в его мод: Scripts\Source, Scripts); чужой скрипт сохраняется копией туда же. Ошибки — с номером строки.

Фрагменты стадий квеста: под каждой записью журнала поле кода Papyrus и Компилировать — как в CK, весь скрипт фрагментов квеста QF_<EditorID>_<FormID> пишется заново (код других фрагментов и свойства автора после ;END FRAGMENT CODE сохраняются, свойства Alias_* создаются для всех алиасов и заполняются сами), компилируется, и квест получает таблицу фрагментов. Если у квеста есть свой скрипт, новый фрагмент получает kmyQuest. Ошибка показывается под тем фрагментом, где она, со строкой внутри фрагмента.

Свойства ячейки и мира (ПКМ по ячейке в «Ячейках» → «Свойства ячейки…» / «Свойства мира…», или «Свойства…» в форме ячейки): у ячейки — имя, флаги, владелец, локация, encounter zone, регионы, освещение (шаблон, цвета, туман, направленный свет — в окне рендера меняется сразу), image space, вода (тип, высота), акустика, музыка, небо из региона; у мира — родитель, климат, вода и LOD-вода, музыка, освещение интерьеров, земля по умолчанию, карта. В плагин пишется только заголовок (рефы, земля и навмеш остаются как есть).

Диалоги — вкладка «Диалоги» в форме квеста (как Player Dialogue / Misc и окно Topic Info в CK): слева ветки квеста с их темами (стартовая помечена) и остальные темы по категориям (бой, обнаружение, сервис, разное…), справа выбранная тема (текст игрока, приоритет, категория, подтип, ветка) и её реплики со всех плагинов (у каждой — плагин-победитель). У выбранной реплики: флаги (прощание, один раз, случайная, уходит…), ответы (эмоция, сила, текст; заметки, звук, анимации), подсказка игрока, говорящий, условия, переходы к темам, Shared Info, тема ухода и фрагменты Papyrus «Начало» / «Конец» (скрипт TIF__<FormID>, компилируется как фрагменты стадий). + ветка создаёт ветку со стартовой темой, + тема, + реплика, + ответ. В плагин пишутся только изменённые реплики под заголовком темы — остальные строки чужих тем не переопределяются.

SEQ: при сохранении плагина с квестами «Start Game Enabled» рядом с ним пишется SEQ\<плагин>.seq (как CK и «Create SEQ File» в xEdit) — без него такие квесты и их диалоги не стартуют в новой игре.

Каждое изменение — один Ctrl+Z; сохраняется в активный файл как override (байт-в-байт для остального).

Сравнение записей (как в xEdit)

Версии записи из трёх плагинов: зелёным — изменения победителя

  • Версии одной записи: вкладка «Версии» у формы, кнопка «Открыть в окне сравнения» или ПКМ по записи в «Окне объектов» → «Сравнить версии». Колонки — плагины в порядке загрузки, мастер слева, победитель справа (несохранённая правка — последней колонкой).
    • зелёная строка — победитель несёт изменения, сделанные поверх мастера;
    • красная — конфликт: какой-то плагин изменил поле, а победитель это изменение теряет (красным — потерянное значение, зелёным — то, что пойдёт в игру);
    • серым — значение, которое заменили.
  • Несколько записей: Ctrl+клик / Shift+клик в «Окне объектов», затем ПКМ → «Сравнить выделенные» (до 16). ПКМ по другой записи, когда одна выделена, — «Сравнить с …». Отличия от первой колонки — жёлтым.
  • Списки выравниваются по значению или по записи, на которую указывает строка (ключевое слово, предмет инвентаря, эффект), так что лишняя строка не сдвигает всё ниже. «Только различия» прячет совпадающие строки. Двойной клик по ссылке открывает запись. Сравнение только для чтения: правка — во вкладках формы.

Навмеш

Навмеш таверны: проходимые треугольники, границы

  • N или кнопка Navmesh — режим навмеша (кнопка Navmesh справа на панели только показывает его). Панель Navmesh (вкладка рядом с Preview) — что выбрано, флаги, операции.
  • Цвета: зелёный — проходимо, жёлтый — preferred, синий — вода, оранжевый — дверь, фиолетовый — без крупных существ, пурпурный — выбрано. Рёбра: красные — открытая граница, светло-голубые — связь с соседним навмешем.
  • Клик — вершина или треугольник (Ctrl добавляет), перетаскивание — перенос (с зажатой Z — по высоте), Shift+клик по земле — новая вершина; если выбраны две вершины, сразу и треугольник (так полоса растёт клик за кликом). Перетаскивание по пустому месту или Shift+перетаскивание — рамка выделения.
  • Строка кнопок навмеша (как панель навмеша в CK) и клавиши CK: T / V / G — выбор треугольников / вершин / рёбер, W — вид (обычный / поверх / только навмеш), A — треугольник или квад, F / I — заливка / обратная заливка, O / P — вода / предпочтительный путь, Q — объединить, R / Del — удалить, D — снять выделение, поворот ребра, Ctrl+F — найти треугольник, Ctrl+F1 — Finalize, «Проверка пути» — кратчайший путь между двумя кликами. В панели — «Triangle from 3 vertices», «Merge vertices», флаги Water / Preferred / No large creatures / Overlapping, «Вынести в новый навмеш» (CK: Move Selection to Separate NavMesh) и «Найти по номеру» — треугольник или вершина с поворотом камеры.
  • После каждой правки пересчитываются соседства треугольников, границы и сетка поиска; связи загруженных соседних навмешей перенумеровываются. Первая вершина в ячейке без навмеша создаёт новый NAVM.
  • Finalize (кнопки «Finalize изменённых» / «Finalize ячейки» в панели, как Finalize в CK): треугольник под точкой прибытия каждой двери получает флаг «дверь» и запись, ссылка двери на навмеш (XNDP) обновляется; открытые рёбра связываются с рёбрами соседних навмешей (границы ячеек, несколько навмешей в ячейке); навмеш получает запись в карте навмешей плагина (NAVI: точка, ячейка или клетка мира, двери). Сверено с данными CK: двери и связи рёбер совпадают на проверенных ячейках (stbedit-cli finalizetest).
  • «Сгенерировать навмеш» (CK: Generate NavMesh): проходимая поверхность открытой ячейки (снаружи — центральной) по мешам с коллизией и ландшафту; размер актёра и точность — в «Настройках генерации». В интерьере остаётся только то, что связано с дверями (флажок «Оставлять куски, не связанные с дверями» — и большие отдельные). Результат заменяет самый большой навмеш ячейки (или создаёт новый в активном файле), потом выполняется Finalize — по шагу Ctrl+Z. Остальные навмеши ячейки, если они есть, не трогаются: перекрытия удалите сами. Генерация не идеальна — как и после CK, лишнее по краям стоит подрезать.

Проверка и очистка плагина

Файл → Проверка и очистка… (xEdit: Check for Errors и Quick Auto Clean): выберите плагин и нажмите «Проверить».

  • Ошибки: ссылки на записи, которых нет в наборе плагинов; leveled-списки, которые содержат сами себя; записи, которые не читаются. Предупреждения: удалённые базовые записи (игра падает, если их что-то использует), новые NPC без FaceGen-головы (тёмное лицо), чужие NPC, которым плагин меняет лицо, волосы или кожу, а FaceGen берётся из другого плагина (лицо может выглядеть тёмным) — кнопка «Экспорт FaceGen для N NPC», NPC, у которых тинт тела не совпадает с тоном кожи (шов на шее) — кнопка «Обновить тинт тела», как Update NPC Body Tint Colors в CK. Двойной клик открывает запись.
  • ITM — переопределения, совпадающие с версией мастера (записи, заголовки ячеек, рефы). Кнопка «Убрать N ITM» вынимает их из активного файла (ячейки, миры и темы остаются — в них лежат другие записи).
  • Удалённые рефы (UDR): «Вернуть и выключить» — как в xEdit: реф возвращается версией мастера, initially disabled, enable parent = игрок (наоборот), опущен на z = −30000; свои удалённые рефы убираются из файла.
  • Исправления — обычные правки активного файла: Ctrl+Z, сохраняются по Ctrl+S (остальные записи — байт в байт).

Поиск и замена текста

Правка → Найти текст… (Ctrl+Shift+F; CK: Find Text, xEdit: Search and Replace): область — один плагин (все текстовые поля его записей: названия, описания, реплики и подсказки диалогов, записи журнала, книги, сообщения; секунды) или все плагины (только EditorID и названия, мгновенно). Двойной клик открывает запись (реплику — её тему). Заменить меняет найденный видимый игроку текст в записях как они сейчас (реплики — под своей темой), EditorID — по галочке; переменные скриптов, пути и другие служебные строки не заменяются. Один Ctrl+Z.

Правка в сравнении

В окне сравнения (версии записи по плагинам или несколько записей) ПКМ по значению поля верхнего уровня:

  • в сравнении версий — «Взять это значение в <активный файл>»: поле целиком (число, ссылка, структура, список — ключевые слова, инвентарь, эффекты) из этой версии переходит в версию активного файла;
  • в сравнении нескольких записей — «Скопировать это значение в остальные записи» (xEdit: Copy to selected records). Один Ctrl+Z на действие, сохраняется по Ctrl+S.

Сжатие FormID и ESL

Файл → Сжать FormID… (xEdit: Compact FormIDs for ESL; CK: Convert to light): свои записи активного файла получают номера 0x800–0xFFF (кто уже там — остаётся), все ссылки внутри плагина следуют за ними, по желанию ставится флаг ESL (до 2048 своих записей). Файлы FaceGen и озвучки рядом с плагином переименовываются под новые номера (в архивах — нет). Плагин сначала копируется в бэкапы и перезагружается; плагины, которые на него ссылаются, перечислены — их ссылки на старые номера надо исправить. Нетронутые записи сохраняются байт в байт. Локализованные плагины не сжимаются.

Упаковка в BSA

Файл → Упаковать в BSA… (CK: Create Archive): файлы рядом с активным файлом (его папка мода) — meshes, textures, scripts (.pex), sound, music, interface, strings и т. д. — в <плагин>.bsa, текстуры в <плагин> - Textures.bsa (игра подключает оба вместе с плагином). Исходники .psc, SEQ, ini и плагины не упаковываются; существующий архив сначала копируется в бэкапы. Архив SSE версии 105 без сжатия (игра читает такие; хэши имён сверены со всеми файлами ванильных архивов). Отдельные файлы остаются на месте и важнее архива — уберите их после проверки.

Каталог объектов

  • Object Window: для объектов, которые ставятся в мир, кнопка Tiles / List — плитки с готовыми 3D-миниатюрами.
  • Таблицы (Вид → Таблицы… или кнопка «Таблица»): оружие, броня, боеприпасы и другие предметы как сортируемые таблицы с правкой прямо в ячейке (урон, вес, цена, класс брони, скорость…).
  • Править вместе: несколько записей одного типа (Ctrl/Shift+клик) → ПКМ → «Править вместе» — одна форма, поле меняется во всех сразу (строки списков — по номеру строки).
  • Где используется (ПКМ по записи или кнопка в её форме; CK: Use Info, xEdit: Referenced By): записи, которые на неё ссылаются, и все места в мире, где она стоит. Двойной клик — открыть запись или ячейку с выделенным объектом.
  • + Новая (или ПКМ → «Новая запись…») — новая запись показанного типа в активном файле: Editor ID, название, для глобальных и настроек игры — вид. Диалоги, ячейки и миры так не создаются (у них свои инструменты).
  • Del или ПКМ → «Удалить из <файл>»: своя запись удаляется из файла при сохранении, override чужой записи убирается (снова побеждает предыдущий плагин). Записи других плагинов не удаляются. Ctrl+Z возвращает.
  • Фильтры над списком: Все / Переопределённые / Конфликты и плагин (только записи, которые он добавляет или переопределяет). «Конфликты» сравнивают версии по полям, как xEdit: изменение какого-то плагина теряется у победителя.
  • Preview: выбранный объект в 3D — ПКМ крутить, колесо зум, двойной клик сброс, Spin — вращение; ЛКМ-перетаскивание ставит объект в мир.

Лицензия

Будет GPL-3.0 (Mutagen — GPL-3.0). Физика Run Havok Sim — BepuPhysics 2 (Apache-2.0), генерация навмеша — DotRecast (zlib), скрипты — Roslyn (MIT).

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages