Files

7.7 KiB
Raw Permalink Blame History

id
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; последние два повторяются без шва. Пример играет гул и музыку, затем плавно гасит оба. См. Звук.

Пример

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, поэтому не сталкиваются с собственными типами игры. См. Ассеты данных.

Пример

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)
    }
}