Структура файлов Fable: The Lost Chapters
Автор статьи: Torionel (с дополнениями odarenkoas)
Все файлы игры делятся на две больших категории: те, что нужны моддеру (папка "data", файлы userst.ini, splashimage.bmp, Fable.exe), и те, что его обычно не интересуют (всё остальное в корневой папке игры).
Общая структура файлов Fable TLC
Папка data
В папке data есть 13 папок, прямо относящихся к моддингу.
Самые важные для моддера (по убыванию значимости):
- CompiledDefs
- Levels
- graphics
- lang
- Tattoos
В них находятся самые часто используемые файлы (см. следующий раздел).
Более опытные моддеры могут поэкспериментировать с файлами в папках:
- graphics
- Bones
- Sound
- Video
- Misc
Игровые объекты с их параметрами
game.bin. Основной файл игры с большей частью ее параметров (погода, урон заклинаний и т.п.) и игровыми объектами (существа, предметы инвентаря).
Вся информация собрана в разделы, которые открываются нажатием на плюсик. Самые важные:
- CREATURE (существа);
- OBJECT (все объекты, которые можно "потрогать" в игре, включая те, что в инвентаре).
Условно назовём подобные разделы ГЛАВНЫМИ. Их названия написаны капсом.
При этом большая часть разделов — это так называемые cdef (или просто дефы) — служебные файлы, отвечающие только за один или несколько сходных параметров игры. Условно назовём дефы ПОДЧИНЁННЫМИ РАЗДЕЛАМИ.
Дефы "прикрепляются" с помощью гиперссылок к крупным записям из главных разделов, к которым в итоге привязано множество дефов. Пример: запись CREATURE_HERO, задающая нашего персонажа, ссылается на множество различных дефов.
У дефов вместо уникальных имён есть только id. Для редактирования тех или иных параметров такой записи проще всего найти ее по кликабельной ссылке на "прикреплённый" деф.
text.big. Содержит тексты и диалоги, которые мы можем легко поменять в FE или создать вместо этого новые. Находится в папке "\data\English\lang".
textures.big. Содержит текстуры игровых объектов. Фактически представляет из себя огромный архив с любопытными картинками. Находится в папке "\data\graphics\pc".
graphics.big. Модели объектов. Находится в папке "\data\graphics".
Файлы локаций
Файлы локаций находятся в папке Levels.
Особенность этих файлов в том, что они делятся на какие-либо из перечисленных ниже элементов:
- Вложенные внутрь файлы (как FinalAlbion.WAD).
- Строки (FinalAlbion.qst и другие).
- Скрипты (т.е. сценарии, являющиеся целостной совокупностью строк, описывающих конкретный объект, как, например, в tng-файлах, которые представляют собой набор скриптов конкретных локаций).
То есть, иными словами, это либо архивные файлы (FinalAlbion.wad, FinalAlbion_RT.stb, FinalAlbion.bwd), либо текстовые (все остальные). Текстовые можно открывать с помощью Блокнота или любого другого текстового редактора (к примеру, популярного у программистов Notepad++). При их редактировании важно соблюдать синтаксис, который заложен разработчиками игры.
Файлы в папке Levels (7 штук)
- FinalAlbion.wad — большой архив с файлами отдельных локаций. У них есть два расширения: .lev и .tng.
- В tng в виде текста построчно перечислены все объекты в локации, кроме ландшафта и растительности.
- Lev'ы задают ландшафт и невидимые границы (данные по "навигации", или nav-data). Игра использует из всей информации только высотную карту ландшафта, данные навигации и тип поверхности для воспроизведения звуков ходьбы.
- FinalAlbion.qst — таблица квестов. Значения около них (true/false) показывают, активированы ли их секции по умолчанию. Т.е. если вы напишете true вместо false около пройденного (или не пройденного) квеста, включатся все скрипты в его секции (допустим, включаете секцию Q_DURAK. Теперь в локации, где есть эта секция и в ней какие-то скрипты - так вот они начнут снова работать. Но квест в списке не появится).
- GlobalQuests.qst — бесполезный файл.
- FinalAlbion_RT.stb — содержит большое количество информации, относящейся к "статичным картам". Назначение этого файла — графическое отображение .lev файлов. (текстурирование ландшафта, деревья, вода).
- FinalAlbion.bwd — содержит немного различной информации. Файл определения области, связанный с файлом WLD.
- FinalAlbion.GTG — содержит некоторые глобальные скрипты (можно понимать как "важные скрипты"). Точки телепорта и подобное. Содержание файла похоже на содержание любого TNG-файла локации, только тут по 1-2 важному скрипту для большинства локаций.
- FinalAlbion.wld — содержит метаданные о картах и регионах:
- Половину файла занимает описание карт, а половину — описание регионов, в которые входят эти карты.
- Фактически "карты" описывают отдельные lev-файлы (по количеству lev-файлов), а регионы — те локации, которые мы посещаем в игре (потому что многие локации составные и состоят из нескольких lev-файлов).
- Параметры регионов такие: какие карты в них входят, какие карты видимы из локации (параметр SeesMap). Название текста, задающего название локации, какую текстуру она использует под мини-карту, какой она использует REGION-def. Здесь есть настройка координат локации на мировой карте, но она не используется игрой (так как используются одноименные строки из REGION-def локации).
Заключение
Несколько общих выводов:
- Разные файлы связаны друг с другом через ссылки на разделы друг друга (к примеру, любое оружие в разделе OBJECT файла game.bin содержит ссылку на модель оружия [т.е. раздел] в graphics.big и на текстуру в textures.big; на cdef, который, в свою очередь, ссылается на два раздела в text.big (название и описание).
- Названия объектов в файлах игры не совпадают с теми, что мы видим в игре. Ориентироваться нужно по идентификаторам — уникальным цифровым номерам каждого раздела или вложенного файла (id's). Добавление новых разделов может сбить идентификаторы (особенно это актуально, когда работаете над крупным модом).
- В файлах игры есть множество того, что не попало в конечную версию игры (к примеру, следы намерений разработчиков сделать кооперативное сетевое прохождение).
- Всё перечисленное частично относится и к Fable Anniversary (но не полностью, так как структура файлов переиздания всё же отличается).