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...
AudioStreamPlayer3D
Успадковує: Node3D < Node < Object
Відтворює позиційний звук у тривимірному просторі.
Опис
Відтворює аудіо з позиційними звуковими ефектами на основі відносної позиції аудіослухача. Позиційні ефекти включають ослаблення на відстані, спрямованість і ефект Доплера. Для більшої реалістичності до віддалених звуків застосовано фільтр низьких частот. Це можна вимкнути, встановивши attenuation_filter_cutoff_hz на 20500.
За замовчуванням звук лунає з камери. Це можна змінити, додавши до сцени вузол AudioListener3D і ввімкнувши його, викликавши для нього AudioListener3D.make_current().
Перегляньте також AudioStreamPlayer, щоб відтворити звук непозиційно.
Примітка: Приховування вузла AudioStreamPlayer3D не вимикає його аудіовихід. Щоб тимчасово вимкнути аудіовихід AudioStreamPlayer3D, установіть volume_db на дуже низьке значення, як-от -100 (яке не чутно для людського слуху).
Посібники
Властивості
|
||
|
||
|
||
|
||
|
||
StringName |
|
|
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Методи
void |
|
void |
|
void |
stop() |
Сигнали
finished() 🔗
Видається, коли звук припиняється.
Переліки
enum AttenuationModel: 🔗
AttenuationModel ATTENUATION_INVERSE_DISTANCE = 0
Зниження гучності відповідно до лінійної відстані.
AttenuationModel ATTENUATION_INVERSE_SQUARE_DISTANCE = 1
Зниження гучності відповідно до квадрата відстані.
AttenuationModel ATTENUATION_LOGARITHMIC = 2
Послаблення гучності відповідно до логарифмічної відстані.
AttenuationModel ATTENUATION_DISABLED = 3
Немає ослаблення гучності відповідно до відстані. На відміну від AudioStreamPlayer, звук буде чути позиційно. ATTENUATION_DISABLED можна об’єднати зі значенням max_distance, більшим за 0.0, щоб досягти лінійного затухання, прикріпленого до сфери певного розміру.
enum DopplerTracking: 🔗
DopplerTracking DOPPLER_TRACKING_DISABLED = 0
Вимикає доплерівське відстеження.
DopplerTracking DOPPLER_TRACKING_IDLE_STEP = 1
Виконує доплерівське відстеження під час кадрів процесу (див. Node.NOTIFICATION_INTERNAL_PROCESS).
DopplerTracking DOPPLER_TRACKING_PHYSICS_STEP = 2
Виконує доплерівське відстеження під час кадрів фізики (див. Node.NOTIFICATION_INTERNAL_PHYSICS_PROCESS).
Описи властивостей
Визначає, які шари Area3D впливають на звук ефектів реверберації та аудіошини. Області можна використовувати для перенаправлення AudioStream, щоб вони відтворювалися на певній аудіошині. Прикладом того, як це можна використовувати, є створення «водної» області, щоб звуки, що відтворюються у воді, перенаправлялися через аудіошину, щоб вони звучали так, ніби вони відтворюються під водою.
float attenuation_filter_cutoff_hz = 5000.0 🔗
Частота зрізу фільтра низьких частот ослаблення, Гц. Звук вище цієї частоти послаблюється більше, ніж звук нижче цієї частоти. Щоб вимкнути цей ефект, встановіть значення 20500, оскільки ця частота перевищує межу людського слуху.
float attenuation_filter_db = -24.0 🔗
Величина впливу фільтра на гучність, у децибелах.
AttenuationModel attenuation_model = 0 🔗
void set_attenuation_model(value: AttenuationModel)
AttenuationModel get_attenuation_model()
Вирішує, чи повинен звук зменшуватися з відстанню лінійно, квадратично, логарифмічно, чи на нього відстань не впливає, фактично вимикаючи затухання.
Якщо true, звук відтворюється, коли вузол AudioStreamPlayer3D додається до дерева сцен.
StringName bus = &"Master" 🔗
void set_bus(value: StringName)
StringName get_bus()
Автобус, на якому відтворюється цей звук.
Примітка: Встановлюючи цю властивість, майте на увазі, що перевірка не виконується, щоб побачити, чи дане ім’я відповідає існуючій шині. Це пояснюється тим, що макети аудіошини можуть завантажуватися після встановлення цієї властивості. Якщо це задане ім’я не може бути визначено під час виконання, воно повернеться до "Master".
DopplerTracking doppler_tracking = 0 🔗
void set_doppler_tracking(value: DopplerTracking)
DopplerTracking get_doppler_tracking()
Визначає, на якому кроці слід розраховувати ефект Доплера.
Примітка: Якщо doppler_tracking не є DOPPLER_TRACKING_DISABLED, але для поточного Camera3D/AudioListener3D вимкнено доплерівське відстеження, ефект Доплера буде чути, але рух поточного слухача не враховуватиметься. Якщо потрібен точний ефект Доплера, доплерівське відстеження слід увімкнути як для AudioStreamPlayer3D, так і для поточного Camera3D/AudioListener3D.
float emission_angle_degrees = 45.0 🔗
Кут, під яким аудіо доходить до слухача без ослаблення.
bool emission_angle_enabled = false 🔗
Якщо true, аудіо повинні бути загартовані за напрямком звуку.
float emission_angle_filter_attenuation_db = -12.0 🔗
void set_emission_angle_filter_attenuation_db(value: float)
float get_emission_angle_filter_attenuation_db()
Коефіцієнт ослаблення, який використовується, якщо слухач знаходиться за межами emission_angle_degrees і встановлено emission_angle_enabled, у децибелах.
Встановлює абсолютний максимум рівня звуку в децибелах.
Відстань, за якою звук більше не чути взагалі. Має ефект, лише якщо встановлено значення більше за 0.0. max_distance працює в тандемі з unit_size. Однак, на відміну від unit_size, поведінка якого залежить від attenuation_model, max_distance завжди працює лінійно. Це можна використовувати, щоб AudioStreamPlayer3D не вимагав мікшування звуку, коли слухач знаходиться далеко, що економить ресурси ЦП.
Максимальна кількість звуків, які цей вузол може відтворювати одночасно. Відтворення додаткових звуків після досягнення цього значення призведе до відрізання найстаріших звуків.
float panning_strength = 1.0 🔗
Масштабує силу панорамування для цього вузла шляхом множення базового значення ProjectSettings.audio/general/3d_panning_strength на цей коефіцієнт. Якщо продукт має значення 0.0, то стереопанорамування вимкнено, а гучність однакова для всіх каналів. Якщо продукт має версію 1.0, то один із каналів буде вимкнено, коли звук буде розташований точно ліворуч (або праворуч) від слухача.
Двоколонна стереосистема реалізує Стандарт WebAudio для панорамування StereoPannerNode, де гучність дорівнює косинусу половини азимутального кута до вуха.
Для інших схем розташування динаміків, таких як 5.1 та 7.1, реалізовано алгоритм SPCAP (Speaker-Placement Correction Amplitude - корекція амплітуди розташування динаміків).
Висота звуку та темп аудіо як множник частоти дискретизації семплу аудіо.
PlaybackType playback_type = 0 🔗
void set_playback_type(value: PlaybackType)
PlaybackType get_playback_type()
Експериментальний: Ця властивість може бути змінена або усунута у наступних версіях.
Тип відтворення потокового програвача. Якщо встановлено інше значення, ніж значення за замовчуванням, цей тип відтворення буде примусово.
Якщо true, аудіо відтворюється або стоїть у черзі для відтворення (див. play()).
AudioStream stream 🔗
void set_stream(value: AudioStream)
AudioStream get_stream()
Ресурс AudioStream для відтворення.
Якщо true, відтворення буде призупинено. Ви можете відновити його, встановивши для stream_paused значення false.
Коефіцієнт ефекту ослаблення. Вищі значення роблять звук чутним на більшій відстані.
Базовий рівень звуку до загасання, в децибелах.
Базовий рівень звуку до загасання, як лінійне значення.
Примітка: цей учасник змінює volume_db для зручності. Повернене значення еквівалентно результату @GlobalScope.db_to_linear() на volume_db. Налаштування цього члена еквівалентно встановленню volume_db для результату @GlobalScope.linear_to_db() для значення.
Описи методів
float get_playback_position() 🔗
Повертає позицію в AudioStream.
AudioStreamPlayback get_stream_playback() 🔗
Повертає об’єкт AudioStreamPlayback, пов’язаний із цим AudioStreamPlayer3D.
Повертає, чи може AudioStreamPlayer повертати об’єкт AudioStreamPlayback.
void play(from_position: float = 0.0) 🔗
Ставить аудіо в чергу для відтворення на наступному кадрі фізики, починаючи з заданої позиції from_position, за секунди.
void seek(to_position: float) 🔗
Встановлює позицію, з якої буде відтворюватися звук, у секундах.
void stop() 🔗
Зупиняє аудіо.