45 lines
2.4 KiB
Markdown
45 lines
2.4 KiB
Markdown
# Риггинг
|
|
|
|
## Скелеты
|
|
|
|
Скелеты сущностей создаются через json файлы в папке skeletons.
|
|
|
|
> [!IMPORTANT]
|
|
>
|
|
> Скелет является неиндексируемой единицей контента. При его загрузке к имени добавляется префикс пака (пример: *drop* в паке base -> *base:drop*).
|
|
|
|
Элемент скелета, или кость, состоит из матрицы транформации, определяющей её положение, вращение и масштаб относительно родительского элемента (кости) или сущности, если элемент является корневым, модели и списка под-элементов.
|
|
|
|
Файл скелета имеет следующую структуру:
|
|
```json
|
|
{
|
|
"root": {
|
|
"name": "имя",
|
|
"model": "имя_модели",
|
|
"nodes": [
|
|
...
|
|
]
|
|
}
|
|
}
|
|
```
|
|
|
|
- root - корневой элемент
|
|
- name - имя элемента для получения индекса (поле опционально)
|
|
- model - имя модели для отображения элемента (поле опционально)
|
|
- nodes - список элементов - потомков, на которые влияет матрица данного элемента (поле опционально)
|
|
|
|
На данный момент расположение, вращение, масштабирование выполняется через скриптинг, так же как и анимация.
|
|
|
|
Процесс работы со скелетами будет упрощен в будущем.
|
|
|
|
## Модели
|
|
|
|
Модели должны располагаться в папке models. На данный момент поддерживается только OBJ формат.
|
|
|
|
>[!IMPORTANT]
|
|
> При загрузке obj модели игнорируется файл \*.mtl.
|
|
|
|
Текстура определяется именем материала, соответствующем формату имен текстур, используемому в preload.json.
|
|
|
|
Текстуры загружаются автоматически, указывать используемые моделью текстуры в preload.json не обязательно.
|