Структура файлов игры |
Автор статьи: Torionel. Дополнил и отредактировал: odarenkoas |
Все файлы игры делятся на 2 больших категории: те, что нужны моддеру (папка "data", файлы userst.ini, splashimage.bmp, Fable.exe), и те, что его не интересуют (всё остальное в корневой папке игры).
Все значимые для моддинга файлы игры делятся на 3 больших категории:
- Общие параметры игры (касаются игры в целом).
- Игровые объекты с их частными параметрами, включая:
- Всё, что связано с локациями (у этих файлов своя собственная логика).
- Другие объекты и параметры (текстуры, модели, вещи, параметры всего перечисленного).
Общая структура файлов 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 (но не полностью, так как структура файлов переиздания всё же отличается).