add initial animation docs (test)

This commit is contained in:
MihailRis 2026-09-08 21:08:28 +03:00
parent 3a188cd151
commit bd9f3d86ca
5 changed files with 59 additions and 0 deletions

34
doc/ru/animation.md Normal file
View file

@ -0,0 +1,34 @@
# Анимация
Для того, чтобы загрузить дорожку анимации для скелета сущности ([см. риггинг](rigging.md)) или камеры ([см. камеры](scripting/builtins/libcameras.md)) её, как любой, незагружаемый по-умолчанию, следует указать в [preload.json пака](assets-preload.md) в секции animation.
На данный момент, движком поддерживается один формат описания анимации - [VCA](vca.md).
Общий API для работы с анимацией, как и другими продолжительными событиями, существует библиотека animation, доступная в виде глобальной переменной.
Самый простой способ анимировать что-то:
```lua
animation.play("имя_анимации", цель)
```
Где цель может быть камерой:
```lua
local camera = cameras.get(cameras.index("пак:имя_камеры"))
animation.play("имя_анимации", camera)
```
Или скелет сущности:
```lua
animation.play("имя_анимации", entity.skeleton)
```
Но для скелетов, подразумевающих переключение между состояниями (те же мобы), лучше использовать [компонент](scripting/ecs.md), реализующий простую машину состояний для анимации - [core:animator](#компонент-coreanimator)
Более подробно функциональность библиотеки animation описана [в соответствующем разделе](scripting/builtins/libanimation.md)
## Компонент core:animator
Компонент находится в работе. Зайдите позже.

View file

@ -6,6 +6,7 @@
## Разделы
- [XML разметка интерфейса](xml-ui-layouts.md)
- [Анимация](animation.md)
- [Аудио](audio.md)
- [Движок генерации мира](world-generator.md)
- [Консоль](console.md)

View file

@ -9,6 +9,7 @@
- [Свойства и методы UI элементов](scripting/ui.md)
- [Сущности и компоненты](scripting/ecs.md)
- [Библиотеки](#)
- [animation](scripting/builtins/libanimation.md)
- [app](scripting/builtins/libapp.md)
- [assets](scripting/builtins/libassets.md)
- [base64](scripting/builtins/libbase64.md)

View file

@ -0,0 +1,21 @@
# Библиотека *animation*
Библиотека для работы с анимацией и решения некоторых сопутствующих задач.
```lua
-- Воспроизводит анимацию на указанном объекте
animation.play(
-- Имя дорожки анимации
name: string,
-- Цель, что будет анимирована
target: Skeleton | Camera
)
```
```lua
-- Запускает корутину, обновляющуюся вне паузы и завершающуюся вместе с выходом из мира.
animation.action(
-- Целевая асинхронная функция
func: function()
)
```

View file

@ -36,6 +36,8 @@ VCA файл состоит из набора директив, порядок
- `duration` - явно указанная длительность в секундах (требуется указание fps при наличии ключевых кадров)
- `rotation-order` - указывает порядок применения углов Эйлера при вращении (так как порядок директив не учитывается форматом). Примеры: XYZ, ZYX, YZX.
Мета-информация применяется глобально. Поведение не зависит от её положения в файле, но рекомендуется располагать её в начале.
## Кривые с ключевыми кадрами
Требуется через атрибут `curve` указать тип кривой: