Структура файлов игры
Автор статьи: Torionel. Дополнил и отредактировал: odarenkoas

Все файлы игры делятся на 2 больших категории: те, что нужны моддеру (папка "data", файлы userst.ini, splashimage.bmp, Fable.exe), и те, что его не интересуют (всё остальное в корневой папке игры).

Все значимые для моддинга файлы игры делятся на 3 больших категории:

  1. Общие параметры игры (касаются игры в целом).
  2. Игровые объекты с их частными параметрами, включая:
  • Всё, что связано с локациями (у этих файлов своя собственная логика).
  • Другие объекты и параметры (текстуры, модели, вещи, параметры всего перечисленного).

Общая структура файлов Fable TLC

Папка "data"

В папке "data" находится 13 папок, прямо относящихся к моддингу.

Самые важные для моддера папки (по убыванию значимости):

  1. CompiledDefs
  2. Levels
  3. graphics
  4. lang
  5. Tattoos

Почему? Потому что этих папках находятся самые часто используемые файлы (см. следующий раздел).

Более опытные моддеры могут поэкспериментировать с файлами в папках:

  1. graphics
  2. Bones
  3. Sound
  4. Video
  5. 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.

Особенность этих файлов в том, что они делятся на какие-либо из перечисленных ниже элементов:

  1. Вложенные внутрь файлы (как FinalAlbion.WAD).
  2. Строки (FinalAlbion.qst и другие).
  3. Скрипты (т.е. сценарии, являющиеся целостной совокупностью строк, описывающих конкретный объект, как, например, в tng-файлах, которые представляют собой набор скриптов конкретных локаций).

То есть, иными словами, это либо архивные файлы (FinalAlbion.wad, FinalAlbion_RT.stb, FinalAlbion.bwd), либо текстовые (все остальные). Текстовые можно открывать с помощью Блокнота или любого другого текстового редактора (к примеру, популярного у программистов Notepad++), при их редактировании важно соблюдать тот синтаксис, который заложен разработчиками игры.

Файлы в папке Levels (7 штук)

  1. FinalAlbion.wad - это как бы большой архив, наподобие обычного архива, которым мы часто пользуемся, только в нем хранятся файлы локаций.  Содержит два типа файлов: .lev и .tng.
  • В tng указаны все объекты, которые есть в локации.
  • Lev'ы задают ландшафт и nav-data (данные по "навигации", т.е. куда можно пройти - невидимые границы). Игра использует из всей информации только высотную карту ландшафта, данные навигации и тип поверхности для воспроизведения звуков ходьбы.
  1. FinalAlbion.qst - таблица квестов. Значения около них (true/false) показывают, активизированы ли их секции по умолчанию. Т.е., вот как - если вы напишете true заместо false около пройденного (или не пройденного) квеста, включатся скрипты в его секции (допустим, включаете секцию Q_DURAK. Теперь в локации, где есть эта секция и в ней какие-то скрипты - так вот они начнут снова работать. Но квест в списке не появится, ничего такого).
  2. GlobalQuests.qst - бесполезный файл.
  3. FinalAlbion_RT.stb - содержит большое количество информации, относящийся к "статичным картам". Назначение этого файла - графическое отображение .lev файлов. (текстурирование ландшафта, деревья, вода)
  4. FinalAlbion.bwd - содержит немного различной информации. Файл определения области, связанный с файлом WLD.
  5. FinalAlbion.GTG - содержит некоторые глобальные скрипты (можно понимать как "важные скрипты"). Точки телепорта и подобное. Содержание файла похоже на содержание любого TNG-файла локации, только тут по 1-2 важному скрипту для большинства локаций.
  6. FinalAlbion.wld - содержит метаданные о картах и регионах:
  • Половину файла занимает описание карт, а половину - описание регионов, в которые входят эти карты.
  • Фактически "карты" описывают отдельные lev-файлы (по количеству lev-файлов), а регионы - те локации, которые мы посещаем в игре (потому что многие локации составные и состоят из нескольких lev-файлов).
  • Параметры регионов такие: какие карты в них входят, какие карты видимы из локации (параметр SeesMap). Название текста, задающего название локации, какую текстуру она использует под мини-карту, какой она использует REGION-def. Здесь есть настройка координат локации на мировой карте, но она не используется игрой (так как используются одноименные строки из REGION-def локации).

Заключение

Ещё несколько общих выводов:

  1. Разные файлы связаны друг с другом через ссылки на разделы друг друга (к примеру, любое оружие в разделе OBJECT файла game.bin содержит ссылку на модель оружия [т.е. раздел] в graphics.big и на текстуру в textures.big; на cdef, который, в свою очередь, ссылается на два раздела в text.big (название и описание).
  2. Названия объектов в файлах игры не совпадают с теми, что мы видим в игре. Ориентироваться нужно по идентификаторам - уникальным цифровым номерам каждого раздела или вложенного файла (id's). Добавление новых разделов может сбить идентификаторы (особенно это актуально, когда работаете над крупным модом).
  3. В файлах игры есть множество того, что не попало в конечную версию игры (к примеру, следы намерений разработчиков сделать кооперативное сетевое прохождение).
  4. Всё перечисленное частично относится и к Fable Anniversary (но не полностью, так как структура файлов переиздания всё же отличается).