AudioStreamInteractive
Наследует: AudioStream < Resource < RefCounted < Object
Аудиопоток, который может воспроизводить музыку в интерактивном режиме, объединяя клипы и таблицу переходов.
Описание
Это аудиопоток, который может воспроизводить музыку интерактивно, объединяя клипы и таблицу переходов. Сначала необходимо добавить клипы, а затем правила перехода через add_transition(). Кроме того, этот поток экспортирует параметр свойства для управления воспроизведением через AudioStreamPlayer, AudioStreamPlayer2D или AudioStreamPlayer3D.
Это используется путем заполнения ряда клипов, а затем настройки таблицы переходов. Оттуда клипы выбираются для воспроизведения, и музыка будет плавно переходить от текущего к новому, используя соответствующее правило перехода, определенное в таблице переходов.
Свойства
|
||
|
Методы
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) |
get_clip_auto_advance(clip_index: int) const |
|
get_clip_auto_advance_next_clip(clip_index: int) const |
|
get_clip_name(clip_index: int) const |
|
get_clip_stream(clip_index: int) const |
|
get_transition_fade_beats(from_clip: int, to_clip: int) const |
|
get_transition_fade_mode(from_clip: int, to_clip: int) const |
|
get_transition_filler_clip(from_clip: int, to_clip: int) const |
|
get_transition_from_time(from_clip: int, to_clip: int) const |
|
get_transition_list() const |
|
get_transition_to_time(from_clip: int, to_clip: int) const |
|
has_transition(from_clip: int, to_clip: int) const |
|
is_transition_holding_previous(from_clip: int, to_clip: int) const |
|
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 🔗
Эта константа описывает, что любой клип действителен для определенного перехода как источник или как место назначения.
Описания свойств
Количество клипов, содержащихся в этом интерактивном плеере.
Индекс начального клипа, который будет воспроизведен первым при воспроизведении данного потока.
Описания метода
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, связанный с текущим клипом.