Skyrim CK:Формат файлов модов

Материал из Tiarum
Перейти к: навигация, поиск
Переводить Этот материал нуждается в переводе или допереводе..
Вы можете помочь перевести его. Не забывайте предварительно добавлять строку {{Edit|--~~~~}} в материалы над которыми работаете, чтобы не создавать конфликта правок.
Пожалуйста, снимите шаблон этого сообщения, когда материал будет вычитан.


Содержание

Все данные в мастер-файлах *.esm и плагинах *.esp разбиты на блоки.

Каждый блок обязательно включает в себя поле, в котором указаны:

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

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

Все блоки можно разделить на три основных типа:

Файл плагина на самом высоком уровне группировки содержит (в начале файла):

  • Одну запись TES4 с данными о длине файла (информация о моде).
  • Коллекция групп верхнего уровня.

Типы записей

Тип Что означает
AACT Действия
ACHR Актёры
ACTI Активаторы
ADDN Частицы
ALCH Позиция
AMMO Амуниция
ANIO Анимированные объекты
APPA Приборы
ARMA Модели брони/одежды
ARMO Броня
ARTO Art Object
ASPC Акустические пространства
ASTP Association Type (Parent, Courting, etc)
AVIF Actor Value related
BOOK Книги
BPTD Данные о частях чел
CAMS Настройки камер
CELL Ячейки
CLAS Классы
CLDC Cloud Cluster
CLFM Цвета
CLMT Климат
COBJ Рецепты
COLL Слои коллизии
CONT Контейнеры
CPTH Camera Path
CSTY Стили боя
DEBR Обломки
DIAL Темы диалогов
DLBR Ветви диалогов
DLVW Dialog View?
DOBJ
DOOR Двери
DUAL Dual Cast Data
Тип Что означает
ECZN Зона столкновений (Encounter Zone)
EFSH Шейдерный эффект (Effect Shader)
ENCH Зачарование (Enchantment)
EQUP Equip Slot (flag-type values)
EXPL Взрывы
EYES Глаза
FACT Фракции
FLOR Растения
FLST Форм-лист Form List (не уровневый список)
FSTP Следы шагов
FSTS Footstep Set
FURN Мебель
GLOB Глобальные переменные
GMST Игровые настройки
GRAS Трава
GRUP Группы
HAIR Волосы
HAZD Опасности
HDPT Части головы
IDLE Анимация бездействия (Idle Animation)
IDLM Idle Form
IMAD Image Space Modifier
IMGS Image Space
INFO Dialog Topic Info
INGR Ингредиенты
IPCT Impact Data
IPDS Impact Data Set
KEYM Ключи
KYWD Ключевые слова
LAND Ландшафт
LCRT Location Reference Type
LCTN Location
LGTM Lighting Template
LIGH Источник света
Тип Что означает
LSCR Загрузочные экраны
LTEX Текстуры земли
LVLI Уровневый предмет (Leveled Item)
LVLN Уровневый актер (Leveled Actor)
LVSP Уровневое заклинание (Leveled Spell)
MATO Material Object
MATT Material Type
MESG Сообщения
MGEF Магические эффекты
MICN Иконки меню
MISC Misc. Object
MOVT Movement Type
MSTT Перемещаемые статические объекты
MUSC Типы музыки
MUST Музыкальные дорожки
NAVI
NAVM Навигационная сетка перемещений (NavMesh)
NOTE Записки
NPC_ Актёры (NPC, Существа)
OTFT Outfit
PACK AI пакеты
PARW
PBAR
PBEA
PCON
PERK Перк ((англ.) Perk - способность)
PFLA
PGRE Placed grenade
PHZD Placed hazard
PMIS Placed missile
PROJ Projectile
QUST Квесты
RACE Раса / тип существа
REFR Object Reference
Тип Что означает
REGN Регионы
RELA Relationship
REVB Reverb Parameters
RFCT Visual Effect (Reference Effect?)
RGDL Ragdoll
SCEN Сцены
SCOL Static Collection
SCPT Скрипты
SCRL Свиток (Scroll)
SHOU Крики
SKIL Навыки
SLGM Камни душ
SMBN Story Manager Branch Node
SMEN Story Manager Event Node
SMQN Story Manager Quest Node
SNCT Sound Category
SNDR Sound Descriptor
SOPM Sound Output
SOUN Звуки
SPEL Заклинания
SPGD Shader Particle Geometry
STAT Статические объеты
TACT Talking Activator
TES4 Информация о плагине (Plugin info)
TLOD
TOFT
TREE Деревья
TXST Texture Set
VTYP Тип голоса (Voice Type)
WATR Типы воды
WEAP Оружие
WOOP Слова силы
WRLD Миры
WTHR Погода

Группы

GRUP - Группы (Groups) - одни из основных типов блоков в файлах данных Скайрима (а также Обливиона).

Они служат для группирования записей одного типа, а также для создания иерархии в таких типах, как миры (WRLD), ячейки (CELL) и диалоги (DIAL).

Имя Тип Размер,
байт
Комментарий
type char[4] 4 Всегда "GRUP"
groupSize ulong 4 Размер поля данных, включая заголовок группы (24 байта).
label ubyte[4] 4 Метка. Зависит от конкретного типа группы.
groupType long 4 Тип группы...
Значение поля

groupType

Что означает Значение поля

label

Что означает
0 Top (Type) char[4] Тип записей, содержащихся в этой группе.
1 Дочерний мир formid Идентификатор формы родителя.
2 Блок внутренней ячейки long Номер блока
3 Подблок внутренней ячейки long Номер подблока
4 Блок внешней ячейки ushort[2] Координаты Y, X (В обратном порядке)
5 Подблок внешней ячейки ushort[2] Координаты Y, X (В обратном порядке)
6 Дочерняя ячейка formid Идентификатор формы родителя.
7 Дочерняя тема formid Идентификатор формы родителя.
8 Постоянная дочерняя ячейка formid Идентификатор формы родителя.
9 Временная дочерняя ячейка formid Идентификатор формы родителя.
10 Видимая на расстоянии дочерняя ячейка formid Идентификатор формы родителя.
stamp ulong 4 Метка времени, по-видимому указывает на дату последнего внесения изменений в файл. Время в формате MS-DOS (нуждается в подтверждении).
version ushort 2
unknown ushort 2 Назначение этого поля неизвестно

Группируемые записи

Далее приведены типы записей, которые объединены в группы в таком порядке, в котором они размещены в майстер-файле Skyrim.esm.

GMST, KYWD, LCRT, AACT, TXST, GLOB, CLAS, FACT, HDPT, HAIR, EYES, RACE, SOUN, ASPC, MGEF, SCPT, LTEX, ENCH, SPEL, SCRL, ACTI, TACT, ARMO, BOOK, CONT, DOOR, INGR, LIGH, MISC, APPA, STAT, SCOL, MSTT, PWAT, GRAS, TREE, CLDC, FLOR, FURN, WEAP, AMMO, NPC_, LVLN, KEYM, ALCH, IDLM, COBJ, PROJ, HAZD, SLGM, LVLI, WTHR, CLMT, SPGD, RFCT, REGN, NAVI, CELL, WRLD, DIAL, QUST, IDLE, PACK, CSTY, LSCR, LVSP, ANIO, WATR, EFSH, EXPL, DEBR, IMGS, IMAD, FLST, PERK, BPTD, ADDN, AVIF, CAMS, CPTH, VTYP, MATT, IPCT, IPDS, ARMA, ECZN, LCTN, MESG, RGDL, DOBJ, LGTM, MUSC, FSTP, FSTS, SMBN, SMQN, SMEN, DLBR, MUST, DLVW, WOOP, SHOU, EQUP, RELA, SCEN, ASTP, OTFT, ARTO, MATO, MOVT, HAZD, SNDR, DUAL, SNCT, SOPM, COLL, CLFM, REVB

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

Все группы содержат записи типа, соответствующего их метке (т.е., группа с меткой GMST содержит записи типа GMST и т.д., соответственно).

В подавляющем большинстве групп верхнего уровня присутствуют ТОЛЬКО соответствующие типы записей. Тем не менее, в таких типах групп как CELL, WRLD и DIAL в каждой основной записи могут следовать одна или несколько дочерних подгрупп, содержащих дополнительные записи другого типа. В отличии от Обливиона, группы записей типа WRLD больше не содержат записей типа ROAD.

Группы следующих записей могут находится только в подгруппах других записей:

REFR, ACHR, NAVM, PGRE, PHZD, LAND, INFO

Следующие шесть типов записей имеют пустое поле GRUP:

CLDC, HAIR, RGDL, SCPT, SCOL, PWAT

Записи

Имя Тип / Размер Что означает
type char[4] Тип - четырёхсимвольный код, указывающий на тип записи.
dataSize ulong Размер поля данных.
flags ulong Флаги...
Флаг Что означает
0x00000001 (Применим только к записи типа TES4) Мастер файл (ESM).
0x00000020 Удалён. Все записи, отмеченные этим флагом, не будут загружаться в игру или редактор плагинов.
0x00000080 (Применим только к записи типа TES4) Локализирован. Флаг сообщает о том, что для данного плагина существует локализация, размещённая в соответствующих файлах .STRINGS, .DLSTRINGS, и .ILSTRINGS, ассоциируемых с этим плагином (смотри "Строковые таблицы"). Если этот флаг не установлен, то все данные типа lstrings приобретают тип zstrings.
0x00000200 Отбрасывает тень
0x00000400 Квестовый предмет / Постоянная ссылка
0x00000800 Изначально отключён
0x00001000 Игнорируемый
0x00008000 Виден на расстоянии
0x00020000 Опасен / Находится за пределами (для внутренних ячеек)
0x00040000 Данные сжаты
0x00080000 Не может ждать
formID ulong Идентификатор записи (формы).
  • У записи типа TES4 отсутствует идентификатор.
revision ulong Используется для контроля версий редактором плагинов (если данная опция включена)
  • Вероятно, формат таков же, как и в Обливионе
version ushort
unknown ushort Назначение этого поля неизвестно
data ubyte[dataSize] Данные
  • Если данные записи не сжаты, то в этом поле сразу следуют подзаписи.
  • Если же данные сжаты...
Название Тип / размер Значение
decompSize uint Размер несжатых данных
compData ubyte[dataSize-4] Сжатые данные

Для декомпрессии данных используется ZLIB.

Подзаписи

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

Имя Тип / Размер Что означает
type char[4] Тип - четырёхсимвольный код, указывающий на тип подзаписи.
dataSize ushort Размер поля данных.
  • В Skyrim.esm много подзаписей имеют длину поля данных равную нулю, что, похоже, соответствует действительности. В Oblivion.esm размер поля данных устанавливался равным нулю только в том случае, когда его длина была большей, чем могло уместить число типа ushort, а далее следовала группа, содержащая сами данные подзаписи.
data ubyte[dataSize] Поле данных.
  • Тип и формат данных зависит от конкретного типа записи и подзаписи, в которой они содержатся.

Наиболее распространённые типы подзаписей

Заметки

  • See Raw Data for a dump of all records/subrecords in Skyrim.esm and their associated counts/sizes.
  • See Raw Function Data for a dump of all script/console functions and events in TESV.exe.
Личные инструменты
Пространства имён
Варианты
Действия
Навигация
Разделы TES
Разделы Fallout
Модмейкерам
Инструменты