AudioStreamInteractive

Наследует: AudioStream < Resource < RefCounted < Object

Аудиопоток, который может воспроизводить музыку в интерактивном режиме, объединяя клипы и таблицу переходов.

Описание

Это аудиопоток, который может воспроизводить музыку интерактивно, объединяя клипы и таблицу переходов. Сначала необходимо добавить клипы, а затем правила перехода через add_transition(). Кроме того, этот поток экспортирует параметр свойства для управления воспроизведением через AudioStreamPlayer, AudioStreamPlayer2D или AudioStreamPlayer3D.

Это используется путем заполнения ряда клипов, а затем настройки таблицы переходов. Оттуда клипы выбираются для воспроизведения, и музыка будет плавно переходить от текущего к новому, используя соответствующее правило перехода, определенное в таблице переходов.

Свойства

int

clip_count

0

int

initial_clip

0

Методы

void

add_transition(from_clip: int, to_clip: int, from_time: TransitionFromTime, to_time: TransitionToTime, fade_mode: FadeMode, fade_beats: float, use_filler_clip: bool = false, filler_clip: int = -1, hold_previous: bool = false)

void

erase_transition(from_clip: int, to_clip: int)

AutoAdvanceMode

get_clip_auto_advance(clip_index: int) const

int

get_clip_auto_advance_next_clip(clip_index: int) const

StringName

get_clip_name(clip_index: int) const

AudioStream

get_clip_stream(clip_index: int) const

float

get_transition_fade_beats(from_clip: int, to_clip: int) const

FadeMode

get_transition_fade_mode(from_clip: int, to_clip: int) const

int

get_transition_filler_clip(from_clip: int, to_clip: int) const

TransitionFromTime

get_transition_from_time(from_clip: int, to_clip: int) const

PackedInt32Array

get_transition_list() const

TransitionToTime

get_transition_to_time(from_clip: int, to_clip: int) const

bool

has_transition(from_clip: int, to_clip: int) const

bool

is_transition_holding_previous(from_clip: int, to_clip: int) const

bool

is_transition_using_filler_clip(from_clip: int, to_clip: int) const

void

set_clip_auto_advance(clip_index: int, mode: AutoAdvanceMode)

void

set_clip_auto_advance_next_clip(clip_index: int, auto_advance_next_clip: int)

void

set_clip_name(clip_index: int, name: StringName)

void

set_clip_stream(clip_index: int, stream: AudioStream)


Перечисления

enum TransitionFromTime: 🔗

TransitionFromTime TRANSITION_FROM_TIME_IMMEDIATE = 0

Начните переход как можно скорее, не ждите какого-то определенного времени.

TransitionFromTime TRANSITION_FROM_TIME_NEXT_BEAT = 1

Переход, когда позиция воспроизведения клипа достигает следующего такта.

TransitionFromTime TRANSITION_FROM_TIME_NEXT_BAR = 2

Переход, когда позиция воспроизведения клипа достигает следующего такта.

TransitionFromTime TRANSITION_FROM_TIME_END = 3

Переход после завершения воспроизведения текущего клипа.


enum TransitionToTime: 🔗

TransitionToTime TRANSITION_TO_TIME_SAME_POSITION = 0

Переход к той же позиции в клипе назначения. Это полезно, когда оба клипа имеют одинаковую длину и музыка должна плавно переходить между ними.

TransitionToTime TRANSITION_TO_TIME_START = 1

Переход к началу целевого клипа.


enum FadeMode: 🔗

FadeMode FADE_DISABLED = 0

Не используйте затухание для перехода. Это полезно при переходе от конца клипа к началу клипа, и у каждого клипа есть свое начало/конец.

FadeMode FADE_IN = 1

Используйте плавное появление следующего клипа, дайте текущему клипу закончиться.

FadeMode FADE_OUT = 2

Используйте затухание в текущем клипе, следующий клип начнется сам собой.

FadeMode FADE_CROSS = 3

Используйте плавный переход между клипами.

FadeMode FADE_AUTOMATIC = 4

Использовать автоматическую логику затухания в зависимости от перехода от/к. Рекомендуется использовать это по умолчанию.


enum AutoAdvanceMode: 🔗

AutoAdvanceMode AUTO_ADVANCE_DISABLED = 0

Отключить автопереход (по умолчанию).

AutoAdvanceMode AUTO_ADVANCE_ENABLED = 1

Для включения автоматического перехода необходимо указать клип.

AutoAdvanceMode AUTO_ADVANCE_RETURN_TO_HOLD = 2

Включить авто-переход, но вместо указания клипа воспроизведение вернется в режим паузы (см. add_transition()).


Константы

CLIP_ANY = -1 🔗

Эта константа описывает, что любой клип действителен для определенного перехода как источник или как место назначения.


Описания свойств

int clip_count = 0 🔗

  • void set_clip_count(value: int)

  • int get_clip_count()

Количество клипов, содержащихся в этом интерактивном плеере.


int initial_clip = 0 🔗

  • void set_initial_clip(value: int)

  • int get_initial_clip()

Индекс начального клипа, который будет воспроизведен первым при воспроизведении данного потока.


Описания метода

void add_transition(from_clip: int, to_clip: int, from_time: TransitionFromTime, to_time: TransitionToTime, fade_mode: FadeMode, fade_beats: float, use_filler_clip: bool = false, filler_clip: int = -1, hold_previous: bool = false) 🔗

Добавьте переход между двумя клипами. Укажите индексы исходного и конечного клипов или используйте константу CLIP_ANY, чтобы указать, что переход происходит из/в любой клип к этому.

* from_time указывает момент в текущем клипе, после срабатывания которого начнется переход.

* to_time указывает время в следующем клипе, с которого начнется воспроизведение.

* fade_mode указывает, как будет происходить затухание между клипами. Если вы не уверены, просто используйте FADE_AUTOMATIC, который использует наиболее распространенный тип затухания для каждой ситуации.

*fade_beats указывает, сколько ударов займет затухание. Разрешено использование десятичных дробей.

* use_filler_clip указывает, что между исходным и конечным клипами будет использоваться клип-заполнитель.

* filler_clip индекс клипа-заполнителя.

* Если используется hold_previous, то этот клип будет запомнен. Это можно использовать вместе с AUTO_ADVANCE_RETURN_TO_HOLD, чтобы вернуться к этому клипу после завершения воспроизведения другого.


void erase_transition(from_clip: int, to_clip: int) 🔗

Удалите переход, указав индексы клипов from_clip и to_clip. CLIP_ANY можно использовать для любого из аргументов или для обоих.


AutoAdvanceMode get_clip_auto_advance(clip_index: int) const 🔗

Возвращает, включено ли для клипа автоматическое продвижение. См. set_clip_auto_advance().


int get_clip_auto_advance_next_clip(clip_index: int) const 🔗

Возвращает клип, к которому будет автоматически переходить клип, указанный в clip_index.


StringName get_clip_name(clip_index: int) const 🔗

Возвращает название клипа.


AudioStream get_clip_stream(clip_index: int) const 🔗

Возвращает AudioStream, связанный с клипом.


float get_transition_fade_beats(from_clip: int, to_clip: int) const 🔗

Возвращает время (в тактах) перехода (см. add_transition()).


FadeMode get_transition_fade_mode(from_clip: int, to_clip: int) const 🔗

Возвращает режим перехода (см. add_transition()).


int get_transition_filler_clip(from_clip: int, to_clip: int) const 🔗

Возвращает заполняющий клип для перехода (см. add_transition()).


TransitionFromTime get_transition_from_time(from_clip: int, to_clip: int) const 🔗

Верните исходную временную позицию для перехода (см. add_transition()).


PackedInt32Array get_transition_list() const 🔗

Вернуть список переходов (от, до чередующихся).


TransitionToTime get_transition_to_time(from_clip: int, to_clip: int) const 🔗

Возвращает конечную временную позицию для перехода (см. add_transition()).


bool has_transition(from_clip: int, to_clip: int) const 🔗

Возвращает true, если указанный переход существует (был добавлен с помощью add_transition()).


bool is_transition_holding_previous(from_clip: int, to_clip: int) const 🔗

Возвращает, использует ли переход функциональность удержания предыдущего (hold previous) (см. add_transition()).


bool is_transition_using_filler_clip(from_clip: int, to_clip: int) const 🔗

Возвращает, использует ли переход функциональность заполнителя (filler clip) (см. add_transition()).


void set_clip_auto_advance(clip_index: int, mode: AutoAdvanceMode) 🔗

Укажите, будет ли клип автоматически перематываться, изменив режим автоматического перематывания.


void set_clip_auto_advance_next_clip(clip_index: int, auto_advance_next_clip: int) 🔗

Установите индекс следующего клипа, к которому этот клип будет автоматически переходить по завершении. Если воспроизводимый клип зацикливается, то автоматическое перемещение будет игнорироваться.


void set_clip_name(clip_index: int, name: StringName) 🔗

Задайте название текущего клипа (для более легкой идентификации).


void set_clip_stream(clip_index: int, stream: AudioStream) 🔗

Установите AudioStream, связанный с текущим клипом.