VoxelEngine/doc/ru/rigging.md
2024-07-21 21:54:30 +03:00

2.7 KiB
Raw Permalink Blame History

Риггинг

Скелеты

Скелеты сущностей создаются через json файлы в папке skeletons.

Important

Скелет является неиндексируемой единицей контента. При его загрузке к имени добавляется префикс пака (пример: drop в паке base -> base:drop).

Элемент скелета, или кость, состоит из матрицы транформации, определяющей её положение, вращение и масштаб относительно родительского элемента (кости) или сущности, если элемент является корневым, модели и списка под-элементов.

Файл скелета имеет следующую структуру:

{
    "root": {
        "name": "имя",
        "model": "имя_модели",
        "offset": [x, y, z],
        "nodes": [
           ...
        ]
    }
}
  • root - корневой элемент
  • name - имя элемента для получения индекса (поле опционально)
  • model - имя модели для отображения элемента (поле опционально)
  • offset - смещение элемента относительно родителя (поле опционально)
  • nodes - список элементов - потомков, на которые влияет матрица данного элемента (поле опционально)

На данный момент расположение, вращение, масштабирование выполняется через скриптинг, так же как и анимация.

Процесс работы со скелетами будет упрощен в будущем.

Модели загружаются автоматически, добавление их в preload.json не требуется.

Модели

Модели должны располагаться в папке models. На данный момент поддерживается только OBJ формат.

Important

При загрузке obj модели игнорируется файл *.mtl.

Текстура определяется именем материала, соответствующем формату имен текстур, используемому в preload.json.

Текстуры загружаются автоматически, указывать используемые моделью текстуры в preload.json не обязательно.