ci / release (push) Successful in 5m5s
ci-platforms / build (amd64, windows, windows-2022) (push) Skipped
ci-platforms / build (arm64, darwin, macos-15) (push) Skipped
ci-platforms / build (amd64, darwin, macos-15-intel) (push) Skipped
ci / checks (push) Successful in 4m41s
ci / build (amd64, linux, ubuntu-24.04) (push) Successful in 7m14s
The remaining editor strings and undo step names; component, field, enum, setting, diagnostic and Script API texts under schema.*, enum.*, setting.*, diag.* and api.*; the launcher, the in-game Settings View with a Language setting, the CLI and aego schema show --lang. Every documentation page has a .ru.md translation; the site has a full Russian tree with hreflang, a language switch and ru/llms.txt; aego docs check --lang ru. New doc.tutorial and doc.recipe icons. Fix: an animator restored by a rewind prepares its controller before the replayed step.
163 lines
7.0 KiB
Markdown
163 lines
7.0 KiB
Markdown
---
|
||
id: formats/aeanim
|
||
title: Клипы .aeanim
|
||
---
|
||
# Клипы .aeanim
|
||
|
||
Клип — это файл aetext. Каждое имя ниже проверяется: неизвестный блок, атрибут или поле, а также атрибут, записанный внутри блока, проваливают импорт с [ANM001](ref:ANM001) и строкой, которую нужно исправить.
|
||
|
||
anim version=1 length=0.38 fps=12 loop=loop {
|
||
track "" prop="SpriteRenderer.size" kind=vec2 {
|
||
key t=0 v=[1, 1] interp=linear {}
|
||
key t=0.13 v=[1.3, 0.84] {}
|
||
}
|
||
frames "Slash" start=0.08 {
|
||
sprites=[asset("5a1a5c00000000000000000000000010"), asset("5a1a5c00000000000000000000000011")]
|
||
durations=[0.04, 0.04]
|
||
}
|
||
event t=0.14 name="Hit" payload=1 {}
|
||
}
|
||
|
||
## anim
|
||
|
||
| Атрибут | Значение |
|
||
|---|---|
|
||
| `version` | версия текста, 1 |
|
||
| `length` | длина в секундах, обязателен |
|
||
| `fps` | частота кадров, по которой редактор привязывает записанные ключи и показывает время в кадрах; при выполнении не используется |
|
||
| `loop` | `once`, `loop` или `pingPong` |
|
||
|
||
Содержит блоки `track`, `frames` и `event`.
|
||
|
||
## track
|
||
|
||
Метка — это цель: `""` — сам узел, `"Sword"` или `"Arm/Hand"` — потомок.
|
||
|
||
| Атрибут | Значение |
|
||
|---|---|
|
||
| `prop` | `Component.field`, обязателен |
|
||
| `kind` | `float32`, `float64`, `vec2`, `vec3`, `vec4`, `color`, `rect`, `quat`, `int32`, `int64`, `bool`, `enum` или `assetRef`, обязателен |
|
||
| `numeric` | дорожка `int32` или `int64`, которая интерполирует, а не переключается ступенями |
|
||
| `root` | дорожка движения корня (`transform.position`, `vec2`) |
|
||
| `authority` | `presentation` (по умолчанию) или `simulation` |
|
||
| `onEnd` | `hold` (по умолчанию) или `restore` |
|
||
|
||
Содержит только блоки `key`.
|
||
|
||
## key
|
||
|
||
| Атрибут | Значение |
|
||
|---|---|
|
||
| `t` | время в секундах, обязателен |
|
||
| `v` | значение типа дорожки, обязателен |
|
||
| `interp` | `bezier`, `linear` или `step` |
|
||
| `tangent` | `auto`, `linear` или `free` |
|
||
| `in`, `out` | касательные ключа `free` |
|
||
|
||
## frames
|
||
|
||
Краткая запись дорожки спрайта со ступенчатыми ключами. Метка — это цель, как у `track`.
|
||
|
||
| Атрибут | Значение |
|
||
|---|---|
|
||
| `start` | время первого кадра |
|
||
| `fps` | частота кадров, когда нет `durations`, по умолчанию 12 |
|
||
| `prop` | свойство спрайта, по умолчанию `SpriteRenderer.sprite` |
|
||
| `flipProp` | свойство отражения, по умолчанию `SpriteRenderer.flipX` |
|
||
| `authority` | как у `track` |
|
||
|
||
| Поле | Значение |
|
||
|---|---|
|
||
| `sprites` | список ассетов спрайтов, обязателен |
|
||
| `durations` | секунды на кадр, по одному на спрайт |
|
||
| `flipX` | `true` или `false` для каждого спрайта |
|
||
|
||
## event
|
||
|
||
| Атрибут | Значение |
|
||
|---|---|
|
||
| `t` | время в секундах, обязателен |
|
||
| `name` | имя события, обязателен |
|
||
| `payload` | число или `true`/`false` |
|
||
| `mode` | `gameplay` (по умолчанию), `presentation` или `preview` |
|
||
|
||
---
|
||
id: formats/aectrl
|
||
title: Контроллеры .aectrl
|
||
---
|
||
# Контроллеры .aectrl
|
||
|
||
Контроллер — это файл aetext. Неизвестные блоки, атрибуты и поля проваливают импорт с [ANC006](ref:ANC006); имена, которые не находятся, дают [ANC001](ref:ANC001) и [ANC002](ref:ANC002).
|
||
|
||
controller version=1 entryPos=[-176, 0] anyPos=[-176, 110] {
|
||
entry="Idle"
|
||
param "Speed" kind=float {}
|
||
param "Attack" kind=trigger {}
|
||
state "Idle" clip=asset("a0a10000000000000000000000000001") pos=[0, 0] {}
|
||
state "Run" clip=asset("a0a10000000000000000000000000002") speed=1.2 pos=[220, 0] {}
|
||
transition "Idle" to="Run" duration=0.1 {
|
||
cond "Speed" op=gt value=0.1 {}
|
||
}
|
||
transition "any" to="Hit" interrupt=true {
|
||
cond "Attack" {}
|
||
}
|
||
}
|
||
|
||
## controller
|
||
|
||
| Атрибут | Значение |
|
||
|---|---|
|
||
| `version` | версия текста, 1 |
|
||
| `ease` | сглаживание смешивания, по умолчанию `inOutQuad` |
|
||
| `entryPos` | `[x, y]` метки «Вход» в панели «Аниматор» |
|
||
| `anyPos` | `[x, y]` метки «Любое состояние» в панели «Аниматор» |
|
||
|
||
| Поле | Значение |
|
||
|---|---|
|
||
| `entry` | состояние, с которого начинает «Аниматор»; если поле не задано — первое состояние |
|
||
|
||
Содержит блоки `param`, `state` и `transition`. `pos`, `entryPos` и `anyPos` нужны только редактору: при выполнении они не используются, а панель сама раскладывает то, у чего нет позиции.
|
||
|
||
## param
|
||
|
||
Метка — это имя.
|
||
|
||
| Атрибут | Значение |
|
||
|---|---|
|
||
| `kind` | `bool`, `int`, `float` или `trigger`, обязателен |
|
||
| `default` | начальное значение; у триггеров его нет |
|
||
|
||
## state
|
||
|
||
Метка — это имя; `any` зарезервировано.
|
||
|
||
| Атрибут | Значение |
|
||
|---|---|
|
||
| `clip` | ассет клипа |
|
||
| `speed` | скорость воспроизведения, по умолчанию 1 |
|
||
| `loop` | заменяет режим повтора клипа |
|
||
| `pos` | `[x, y]` блока в панели «Аниматор» |
|
||
| `events` | во время смешивания: `dominant` (по умолчанию), `both` или `incoming` |
|
||
|
||
## transition
|
||
|
||
Метка — это исходное состояние или `any`. Переходы проверяются в порядке файла.
|
||
|
||
| Атрибут | Значение |
|
||
|---|---|
|
||
| `to` | целевое состояние, обязателен |
|
||
| `duration` | время смешивания в секундах |
|
||
| `exitTime` | сколько проходов клипа состояния должно проиграться; 1 — один проход |
|
||
| `interrupt` | может прервать идущее смешивание |
|
||
|
||
Содержит только блоки `cond`; все они должны выполняться.
|
||
|
||
## cond
|
||
|
||
Метка — это параметр.
|
||
|
||
| Атрибут | Значение |
|
||
|---|---|
|
||
| `op` | `set`, `eq`, `ne`, `gt`, `ge`, `lt` или `le`; триггеры используют `set` |
|
||
| `value` | число или `true`/`false`; обязателен, кроме `set` |
|