Форматы файлов и инструменты для игры Nosferatu Wrath of Malachi (2003). Описание форматов в виде шаблонов для 16ричного редактора.
Основные игровые файлы находятся в архиве .csa. Сжатие в архиве не используется. Игра может работать с файлами из распакованного архива.
3D модели строений, персонажей, монстров хранятся в файлах .anb и .fxm. Первые хранят вершинную анимацию, вторые данные для скелетной анимации, сами анимации для .fxm моделей находятся в файлах .mot. Для текстур используются .jpg, .tga. Параметры материалов, т.е. какие и как текстуры накладываются на объект, хранятся в .fxf файле.
Уровни и расположенные на них модели в игре собираются из .fxa файлов.
Структура .fxa файла - набор отдельных объектов (или нод), которые расположены в файле одним за другим. Например, в одном файле может быть анимация движения объектов, свет, скрипты и т.д.. Каждый объект имеет тип (всего >40), название и координаты расположения и др. Уровень игры - один большой .fxa файл, который ссылается на файлы поменьше. Модели и другие объекты берутся из fxf файла по индексу. Одни объекты предназначены для добавления модели, другие добавляют звук, третьи служат для группировки нескольких нод в единую сущность и т.д.
Перечень всех используемых файлов игры (моделей, материалов, шрифтов) есть в fxf файле, включая название, параметры, индекс и т.д. файлы разбиты на 8 групп (типов), но используются 6 шт: Текстуры, Шрифты, Звуки, Модели, Материалы, Анимации. На каждый файл хранится индекс, название, перечень параметров в зависимости от его типа: индекс текстуры, данные по коллизии и т.п.
Файл Version\Data\StartScene_Beta2.fxa состоит из 320 объектов.
Рассмотрим объект PlazaDrawGroup.
Первый коневой объект, невидимый, тип объекта 15, координаты расположение [0, 0, 0].
Содержит 7 функций, которые запускаются при наступлении событий LocalPlayer Enter DrawGroup (вход или появление игрока внутри объекта) и LocalPlayer Exit DrawGroup (выход из объекта).
Размеры объекта в игре, т.е. координаты в которых он учитывается игрой [-3666.77, -550, 5440.74] - [3712.89, 627.66, 12714].
-
Как распаковать и запаковать архивы игры .csa?
Использовать скрипт для Quickbms (ссылка). Только распаковка. Можно не распаковывать, нужна версия от gog, например. -
Как достать модели из игры Nosferatu Wrath of Malachi?
Распаковать архив игры. Для моделей использовать плагины для Noesis (ссылка -
Как изменить уровень игры?
Отредактировать .fxa файл. На дынный момент готовых инструментов для редактирования нет, описание части структуры есть в шаблоне для 010editor. Здесь (ссылка). -
Как игра загружает модели и материалы с текстурами к ним?
Модель собирается из fxa файла, каждый визуальный объект имеет несколько связанных с ним объектов логики. Таким образом, чтобы правильно отобразить модель замка или комнаты, нужно считать все объекты и те которые отвечают за визуальную часть и те которые не имеют визуального представления, но задают положение объекта в пространстве, например. Также без чтения нужного объекта (ноды) из fxa файла не получиться правильно отобразить текстуру. В файлах моделей (fxm) нет информации о названии текстур или названии материалов.Алгоритм будет следующий:
- Для простоты возьмем модель меча которая появляется при открытии чемодана в самом начале игры. Использовать будем 010editor и подготовленные шаблоны.
- Предварительно сохраняем игру, чтобы получить файл сохранения savegame1.fxa. Открываем его в 010editor.
- Открываем fxlibrary.fxf файл, применяем (шаблон) Teamplates - Run template и ищем текст с названием sword.fxm (Меню Search-Find-Text). После того как 010Editor нашел нужный нам участок файла, нажимаем на Ctrl-J, чтобы перейти в нужное место уже в дереве структуры файла. Теперь просматриваем дерево вниз и ищем индекс модели (modelindex).
- Переходим к файлу сохранения. Ищем в файле объект типа 3, который отвечает за мечь (cмотри). Для этого просто ищем в файле (поиск-тип unsigned short) все цифры совпадающие с индексом из предыдущего пункта.
- Теперь берем уже из найденного объекта индекс модели и индекс материала. У модели может быть несколько материалов. В файле (дереве структур) они будут идти друг за другом. Эти индексы будут соответствовать индексам fxlibrary.fxf файла. Модель и ее материал найдены.
- Как импортировать модель в игру?
Данный плагин для Noesis может сохранять в .anb [plugins/noesis/fmt_ntwm_anb.py]. Тестировался довольно давно всего на одной модели, но должен работать. Для экспорта откройте поддерживаемую программой модель, выберите Export и формат anb.
FXF
Файл состоит из заголовка и двух секций.
0. Заголовок файла (24 байт)
- Версия (4 байта)
- Неизвестное значение (4 байта)
- Пустые данные (16 байт)
1. Секция с названиями типов файлов
- Количество типов (4 байта).
0. Тип Номер №1
-- Количество названий (4 байта)
-- Названия
1. Тип Номер №2
-- Количество названий (4 байта)
-- Названия
...
2. Секция с данными по каждому типу файла.
- Количество файлов (4 байта).
- Данные файла 1.
- Данные файла 2.
...
FXA
Файл состоит из заголовка и последовательно идущих нод и их параметров.
0. Заголовок файла (16 байт)
- Версия (4 байта), может и не версия, но чтение файла зависит от значения данного параметра.
- Количество нод (4 байта)
- Неизвестное значение (4 байта)
- Неизвестное значение (4 байта)
1. Ноды.
0. Нода №1
-- Параметры ноды
1. Нода №2
-- Параметры ноды
...
Nosferatu Wrath of Malachi (2003) / Вампиры (2003)
№ | Формат | Прогресс | Шаблон (010 Editor) | Описание |
---|---|---|---|---|
1 | .anb | 90% | ANB.bt | Строения, объекты, модели с вершинной анимацией |
2 | .fxm | 90% | FXM.bt | Модели |
3 | .fxm | 90% | FFXM(keypose).bt | Модели (слово keypose в названии) |
4 | .mot | 90% | MOT.bt | Анимации для fxm моделей |
5 | .csa | 90% | CSA.bt | Файл ресурсов игры |
6 | .fxa | 20% | FXA.bt | Файл хранитель объектов |
7 | .fxf | 20% | FXF.bt | Файл описание объектов в fxa файлах |
Для чего нужны шаблоны
Отображение структуры файла в удобном для изучения и редактирования виде, другими словами - описание формата файла.
Как использовать шаблоны 010Editor
0. Установить 010Editor.
1. Открыть нужный файл игры.
2. Применить шаблон через меню Templates-Run template.
№ | Скрипт | Описание |
---|---|---|
1 | unpack_csa.bms | Распаковка архивов игры |
Как использовать quickbms скрипты
1. Нужен quickbms https://aluigi.altervista.org/quickbms.htm
2. Для запуска в репозитории лежит bat файл с настройками, нужно открыть его и задать свои пути: до места, где находится quickbms, папки с игрой и места куда нужно сохранить результат.
3. Запустить процесс через bat файл или вручную (задав свои параметры для запуска quickbms, документация на английском есть здесь https://aluigi.altervista.org/papers/quickbms.txt ).
№ | Плагин | Описание |
---|---|---|
1 | fmt_ntwm_anb.py | Просмотр .anb файлов |
2 | fmt_ntwm_fxm.py | Просмотр .fxm файлов |
Как использовать Noesis плагины
1. Скачать и распаковать Noesis https://richwhitehouse.com/index.php?content=inc_projects.php&showproject=91 .
2. Скопировать нужный вам скрипт в папку ПапкасNoesis/plugins/python.
3. Запустить Noesis.
4. Открыть файл через File-Open.
5. В случае плагина для моделей на экране отобразиться модель, если используется плагин для распаковки архивов, то вы увидите меню с выбором параметров распаковки.
6. Если файл с нужным вам расширением отсутствует в меню, то или вы поместили файл плагина в другую папку или произошла ошибка при загрузке плагина.
Nosferatu The Wrath of Malachi file formats.
https://github.com/MeinerI/Nosferatu-The-Wrath-of-Malachi - almost everything is based on this repository.
№ | Format/Ext | Progress | Template (010 Editor) | Description |
---|---|---|---|---|
1 | .anb | 90% | ANB.bt | 3d Objects, buildings, enemies with morphing animation |
2 | .fxm | 90% | FXM.bt | Characters, enemies |
3 | .fxm | 90% | FFXM(keypose).bt | Characters, enemies (files named "keypose") |
4 | .mot | 90% | MOT.bt | motions (skeletal animation) |
5 | .csa | 90% | CSA.bt | motions (skeletal animation) |
Noesis python scripts
- fmt_ntwm_anb.py - open .anb files
- fmt_ntwm_fxm.py - open .fxm files