Files

185 lines
7.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
id: aego/audio.PlayOptions.Bus
---
Выбирает шину воспроизведения. Здесь Master означает шину из настроек клипа, а не принудительное направление в главную шину.
---
id: aego/audio.PlayOptions.FadeIn
---
Задаёт длительность плавного появления звука в секундах; ноль запускает без плавного перехода.
---
id: aego/audio.PlayOptions.Loop
---
Повторяет клип до явной остановки вместо завершения после одного воспроизведения.
---
id: aego/audio.PlayOptions.Pan
---
Задаёт стереобаланс от −1 (слева) через 0 (по центру) до 1 (справа).
---
id: aego/audio.PlayOptions.Pitch
---
Одновременно меняет скорость и высоту звука; 1 сохраняет исходную скорость, а 0 в этих параметрах также выбирает 1.
---
id: aego/audio.PlayOptions.Priority
---
Задаёт приоритет голоса с ограничением диапазоном 0–255. При замене голоса микшер предпочитает звуки с большим приоритетом.
---
id: aego/audio.PlayOptions.Unscaled
---
При true оставляет звук играть во время паузы игры; false связывает его с игровой паузой.
---
id: aego/audio.PlayOptions.Volume
---
Умножает усиление клипа; 1 сохраняет его, а 0 в этих параметрах также выбирает 1, а не выключает звук.
---
id: aego/data.AudioEvent.Bus
---
Направляет голоса, запущенные этим событием, в выбранную звуковую шину.
---
id: aego/data.AudioEvent.Cooldown
---
Задаёт минимальный интервал между принятыми запусками события в секундах; ноль отключает ограничение интервала.
---
id: aego/data.AudioEvent.Loop
---
Повторяет каждый запущенный голос до его остановки, в том числе при выборе варианта клипа.
---
id: aego/data.AudioEvent.MaxDistance
---
Задаёт внешнюю дистанцию затухания в единицах мира. Для пространственного звука она должна превышать MinDistance.
---
id: aego/data.AudioEvent.MaxVoices
---
Ограничивает число одновременных голосов этого события; ноль отключает отдельный лимит события. Общий лимит микшера сохраняется.
---
id: aego/data.AudioEvent.MinDistance
---
Задаёт внутреннюю дистанцию в единицах мира, до которой пространственное затухание по расстоянию ещё не начинается.
---
id: aego/data.AudioEvent.PanWidth
---
Масштабирует пространственное стереопанорамирование от 0 (по центру) до 1 (полная ширина); не меняет затухание по расстоянию.
---
id: aego/data.AudioEvent.PauseWith
---
Выбирает Game для паузы голосов вместе с игрой или Never для продолжения воспроизведения во время игровой паузы.
---
id: aego/data.AudioEvent.Pitch
---
Задаёт общую скорость и высоту звука от 0.25 до 4; 1 сохраняет исходную скорость клипа.
---
id: aego/data.AudioEvent.PitchRand
---
Задаёт долю случайного изменения высоты от 0 до 1. Каждый запуск умножает Pitch на случайное число между 1−PitchRand и 1+PitchRand.
---
id: aego/data.AudioEvent.Priority
---
Задаёт приоритет голоса в микшере от 0 до 255; при нехватке голосов предпочтение получают звуки с большим приоритетом.
---
id: aego/data.AudioEvent.Spatial
---
Включает затухание по расстоянию и панорамирование относительно слушателя вместо непространственного воспроизведения.
---
id: aego/data.AudioEvent.Steal
---
Выбирает, отклонять ли новый запуск при достижении MaxVoices или заменять существующий голос по возрасту либо громкости.
---
id: aego/data.AudioEvent.Volume
---
Задаёт исходное линейное усиление от 0 до 2 до случайного изменения и усилений клипа и шины; ноль означает тишину.
---
id: aego/data.AudioEvent.VolumeRand
---
Задаёт долю случайного уменьшения усиления от 0 до 1. При запуске усиление лежит между Volume×(1−VolumeRand) и Volume.
---
id: aego/audio
summary: Играет клипы, звуковые события и музыку и задаёт громкость шин на сеанс.
---
Звук — это представление: он никогда не меняет состояние игры, а перемотка и повтор идут без звука. Ждите игровую логику таймером, а не `Sound`. Движок поставляет четыре клипа для тестов и набросков: `audio.Builtin("Beep")`, `Click`, `Hum` и `Melody`; последние два повторяются без шва. Пример играет гул и музыку, затем плавно гасит оба. См. [Звук](ref:audio).
## Пример
```aes run
package demo
import (
"aego/audio"
"aego/log"
)
script Chime {
var tone audio.Sound
var frames int
func Ready() {
tone = audio.PlayWith(audio.Builtin("Hum"), audio.PlayOptions{Volume: 0.5, Pitch: 1.5, Loop: true})
audio.Music(audio.Builtin("Melody"), 0.5)
audio.SetBusVolume(audio.Bus.Music, 0.6)
log.Info("the hum plays: " + string(tone.Playing()))
}
func Update(dt float) {
frames++
if frames == 60 {
tone.StopFade(0.2)
audio.StopMusic(0.5)
log.Info("the hum fades out: " + string(!tone.Playing()))
}
}
}
```
---
id: aego/data
summary: Типы ассетов данных, которые скрипты читают через AssetRef и TableRef.
---
Тип данных, зарегистрированный модулем или проектом, появляется здесь как структура. Поле скрипта `AssetRef<T>` хранит запись, `TableRef<T>` — таблицу; поля читаются через ссылку. Типы данных модулей несут имя модуля, например `AudioEvent`, поэтому не сталкиваются с собственными типами игры. См. [Ассеты данных](ref:data).
## Пример
```aes run
package demo
import (
"aego/audio"
"aego/log"
)
script Jumper {
@export var Jump AssetRef<AudioEvent>
func Ready() {
if Jump == nil {
log.Info("no jump event set")
return
}
log.Info("jump volume " + string(Jump.Volume))
audio.PlayEvent(Jump)
}
}
```