diff --git a/doc/ru/vcm.md b/doc/ru/vcm.md index 8943a19a0..a1b72ca48 100644 --- a/doc/ru/vcm.md +++ b/doc/ru/vcm.md @@ -1,4 +1,4 @@ -## VCM +# VCM Текстовый формат описания 3D моделей, являющийся заменой устаревшего свойства `model-primitives`. @@ -27,6 +27,8 @@ > При размерах более 1.0 результат не определён и может измениться в последующих обновлениях. > Используйте `region` или `region-scale` для ручной настройки. +## Примитивы + ### Свойства `tri` Примитив описывает треугольник. @@ -75,3 +77,25 @@ - `texture` - отображаемая текстура. По-умолчанию: `$индекс_стороны`. - `region` - UV регион в границах выбранной текстуры, определяется позициями противоположных углов. Пример: `region (0,0,1,1)` - `region-scale` вектор-множитель для автоматически выбранного UV региона. Пример: `region-scale (0.5,1)` + +## Скелет + +VCM позволяет описывать [скелет](rigging.md) модели. Для этого используется элемент `@bone` (кость). + +Существует два вида костей: +- безымянные - используются только для трансформаций на влюженные примитивы, не попадает в итоговый скелет. +- именованные - будет включено в итоговый скелет. Имя указывается через атрибут `name`. + +Главная кость (`root`) создаётся автоматически для всей модели. +При наличии явно указанных костей модель будет разделена на несколько частей именованных в формате `имя_модели.имя_кости`. +Так как модель относится к ассетам и не имеет префикса, загруженный скелет получает имя модели, так же, без префикса. +Загруженный скелет можно использовать у [сущности](entity-properties.md#имя-скелета---skeleton-name) через свойство `skeleton-name`. + +В списке `пак/preload.json` при указании параметра `"squash": true` vcm будет загружен как единая модель, без скелета. + +### Свойства `bone` + +- `name` - имя кости, при отсутствии которого кость будет "растворена" и не попадёт в итоговый скелет, при этом, трансформации будут применены. +- `move` - смещение вложенных элементов. +- `scale` - масштабирование вложенных элементов. Применяется перед смещением. +- `rotate` - вращение вложенных элементов вокруг осей (x,y,z) в градусах, или кватернион (x,y,z,w). Пример: `rotate (45,0,0)` или `rotate (0.3826834, 0, 0, 0.9238795)`