Skip to content

Formats

Pavel_Blend edited this page Feb 22, 2024 · 52 revisions







Поддерживаемые форматы

В данной таблице указаны X-Ray форматы файлов, которые может импортировать/экспортировать аддон.

Расширение Описание Импорт Экспорт
.object Исходные объекты Да Да
.skl Скелетная анимация Да Да
.skls Скелетные анимации Да Да
.ogf Скомпилированные объекты Да Да
.omf Скомпилированные скелетные анимации Да Да
.anm Анимационные пути Да Да
.bones Данные костей Да Да
.dm Детальные модели эффектов Да Да
.details Детальные модели уровней Да Да
.level Список выделенных объектов сцены Да Да
level Игровые уровни Да Да
.part Объекты сцены Да Да
.group Группы объектов Да Да
.err Ошибки геометрии Да Нет







Описание форматов



*.object

Данные файлы предназначены для X-Ray SDK, чтобы хранить 3D контент в исходном несжатом виде без потерь данных. Являются исходными файлами, которые хранят информацию до компиляции в другие игровые сжатые форматы. Один *.object файл может хранить:

  • меши, которые хранятся только в виде треугольников (четырёхугольники и многоугольники не поддерживаются)
  • один и более мешей, если не имеет скелета и только один меш, если имеет скелет
  • один и более материалов
  • скелет может отсутствовать, а может хранится в количестве одного
  • скелет может хранить минимум 1, максимум 64 кости (при большем количестве костей, невозможно сделать экспорт в *.ogf)
  • скелетных анимаций может не быть, а может хранится одна и более анимаций
  • скелетные анимации не поддерживают Scale ключей
  • возможности и ограничения анимаций такие же, как у *.skl / *.skls формата.
  • каждый меш может иметь один и более материалов
  • каждый меш должен иметь одну UV развёртку
  • каждый материал может хранить только одну текстуру



*.skl \ *.skls

Эти файлы хранят скелетные анимации. Формат хранения анимаций в *.skl/*.skls аналогичен формату анимаций, встроенных в *.object файлы. Анимации хранятся в несжатом виде. Данные о движении костей при экспорте из 3D редактора сохраняются без потерь. Эти форматы предназначены для X-Ray SDK. Используются в качестве исходных файлов, которые компилируются в сжатые форматы для игры. Файлы *.skl/*.skls имеют такие возможности и ограничения:

  • Анимации хранятся в виде 3 анимационных кривых для позиции и 3 кривых для вращения в углах Эйлера с порядком осей ZXY.
  • Файл skls может хранить одну и более анимаций
  • Файл skl может хранить только одну анимацию
  • Каждая анимация имеет игровые параметры.
  • При импорте имя skl анимации совпадает с именем skl файла (имя, которое указано внутри самого skl файла, игнорируется)
  • Скелетные анимации не поддерживают Scale ключей
  • Анимационные ключи поддерживают разные типы интерполяций: Stepped, Linear, Bezier 1D, Bezier 2D, Hermite, TCB. При импорте в блендер все типы интерполяций, кроме Stepped и Linear, преобразуются в Linear ключи без промежуточных кадров.



*.ogf

Скомпилированные 3D модели для игры. Файлы могут хранить скелет и анимации. Формат имеет следующие возможности и ограничения:

  • Поддерживается хранение мешей без скелета и со скелетом.
  • Скелет может быть только один.
  • Количество костей от 1 и не более 64 штук.
  • Кости имеют игровые параметры и шейпы для коллизии.
  • Модели со скелетом могут иметь анимации или ссылки на внешние *.omf файлы с анимациями (Motion References).
  • Количество костей, которые могут влиять на вершину, может быть в таких пределах: ТЧ формат - 1, 2, ЧН/ЗП - 1, 2, 3, 4 (при экспорте лишние отбрасываются и сохраняются только те веса, которые имеют наибольшие влияние).
  • Файл может хранить много материалов.
  • Если при экспорте объект в блендере имеет много материалов, то он будет сохранён в *.ogf разбитым на части так, что каждый отделённый меш будет иметь только один материал. Из-за этого у формата есть ограничение, которое описано ниже (см. следующий пункт).
  • Количество вершин, на которых строятся треугольники одного разделённого меша (см. предыдущий пункт), не может быть больше 65 536 (так как номера вершин хранятся в 2 байтах). На практике, при создании объектов в блендере, нужно следить за тем, чтобы количество треугольников одного материала было не больше 65 536.
  • Сглаживание хранится в виде нормалей вершин. Благодаря этому, во время экспорта в *.ogf, сохраняются не только границы групп сглаживания, но и направление нормалей.
  • Меш может иметь только одну UV карту.
  • Материал может иметь только одну текстуру.
  • Есть поддержка хранения информации об упрощении геометрии в виде Slide Window Items (на данный момент аддон не поддерживает экспорт эти данных, а во время импорта они игнорируются и не сохраняются).
  • Ограничения и возможности анимаций такие же, как у *.omf формата. *.omf файлы - это часть данных *.ogf файла, но вынесены в отдельный внешний файл, чтобы можно было эти данные использовать сразу у большого количества *.ogf файлов.



*.omf

Скомпилированные скелетные анимации. Формат имеет такие возможности и ограничения:

  • Трансформации костей хранятся в виде вектора позиции, с координатами X, Y, Z и вращения в виде кватерниона с компонентами W, X, Y, Z.
  • Позиция хранится в 8 битах для ТЧ формата, а для в ЧН/ЗП форматов в 8 и 16 (если при экспорте включён параметр High Quality Motions) битах.
  • Анимации не поддерживают Scale ключей.
  • Формат хранит данные о Bone Parts.
  • Формат хранит параметры анимаций (FPS, Speed, Falloff и т. д.).



*.anm

Анимационные пути. Используется в игре и X-Ray SDK для анимаций камеры и анимационных путей для аномалий и других объектов. Формат имеет такие возможности и ограничения:

  • Файлы хранят трансформации в виде анимационных ключей для позиции с координатами X, Y, Z и вращения в углах Эйлера с компонентами X, Y, Z и порядком осей YXZ.
  • Один файл может хранить только одну анимацию.
  • Анимационные ключи имеют такие типы интерполяций: Stepped, Linear, Bezier 1D, Bezier 2D, Hermite, TCB. При импорте в блендер все типы интерполяций, кроме Stepped и Linear, преобразуются в Linear ключи без промежуточных кадров.



*.bones

Хранит настройки костей. Используется в X-Ray SDK и является исходным форматом, который используется для облегчения настройки скелетов в *.object файлах. Формат имеет такие возможности и ограничения:

  • Поддерживается сохранение информации о шейпах костей.
  • Поддерживается сохранение Bone Parts.
  • Трансформации костей не хранятся в этом формате. Хранятся только игровые настройки.



*.dm

Файлы этого формата используются для эффектов погоды. Возможности и ограничения:

  • Формат хранит только один меш.
  • Меш может иметь только один материал.
  • Меш может иметь только одну UV-карту.
  • Количество вершин должно быть не более 65 536.
  • Не поддерживается информация о сглаживании.



*.details

Формат хранит информацию о траве на локации. Возможности и ограничения:

  • Модели травы хранятся в формате dm. Ограничения и возможности аналогичны.
  • Максимальное количество моделей травы равно 63.
  • Формат хранит слоты, которые представлены в виде параллелепипедов, которые указывают, где может расти трава.
  • Ширина и длина слота равны 2.0 метра.
  • Максимальная высота слота равна 25.5 метров.
  • Минимальная координата слота по оси Z равна -200.0 метров.
  • Максимальная координата слота по оси Z равна 619.0 метров.
  • Слоты имеют информацию об освещении: тени от солнца, статичные источники света, hemi освещение.
  • К одному слоту может быть привязано не более 4 моделей растительности.



*.level

Список выделенных объектов из Level Editor, которые сохранены во внешний файл.

  • Хранит относительные ссылки на *.object файлы из папки rawdata\objects.
  • Геометрию не содержит.



level

  • Описание
  • Возможности
  • Ограничения



*.part

Исходный файл локации, который хранит список статичных объектов на уровне. Обычно имеет имя scene_object.part. Возможности и ограничения аналогичны формату *.level.



*.group

Исходный файл, который хранит список статичных объектов в группе. Группы могут быть добавлены на уровень в Level Editor. Возможности и ограничения аналогичны формату *.level.



*.err

Список ошибок компиляции Invalid Faces. Хранит только битые полигоны.











































Содержание

Clone this wiki locally