Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
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
Переход к началу целевого клипа.
TransitionToTime TRANSITION_TO_TIME_PREVIOUS_POSITION = 2
Переход осуществляется к последней воспроизведенной позиции в целевом клипе, если ранее был переход из этого клипа. В противном случае воспроизведение начинается с начала целевого клипа.
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, связанный с текущим клипом.