reckfellENGINE

AudioStreamPlayer3D

Источник звука с направлением и затуханием в мире 3D.

На этой странице
class AudioStreamPlayer3DReckfellSharpНаследует Entity3D

AudioStreamPlayer3D рассчитывает звук относительно активного слушателя 3D. AudioListener3D позволяет отделить точку слуха от камеры. У viewport должен быть включён приём звука 3D.

Модель затухания и UnitSize определяют изменение уровня с расстоянием. Положительный MaxDistance дополнительно ограничивает дальность. Параметры не меняют размеры объектов. Для эффекта стены нужна отдельная логика: наличие коллизии не заглушает звук автоматически. Пространственные обновления выполняются на физическом шаге.

Практический пример.

Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.

Конструкторы1

AudioStreamPlayer3DКонструктор
# AudioStreamPlayer3D
C#
public AudioStreamPlayer3D();

Свойства22

AreaMaskСвойство
# AreaMask
C#
public uint AreaMask { get; set; }

Определяет, какие слои Area3D влияют на звук для эффектов реверберации и аудиошины. Области можно использовать для перенаправления AudioStreams так, чтобы они воспроизводились на определенной аудиошине. Примером того, как это можно использовать, является создание области «воды», чтобы звуки, воспроизводимые в воде, перенаправлялись через аудиошину, чтобы они звучали так, как будто они воспроизводятся под водой.

AttenuationFilterCutoffHzСвойство
# AttenuationFilterCutoffHz
C#
public float AttenuationFilterCutoffHz { get; set; }

Частота среза фильтра нижних частот ослабления в Гц. Звук выше этой частоты ослабляется сильнее, чем звук ниже этой частоты. Чтобы отключить этот эффект, установите его на 20500, так как эта частота выше предела человеческого слуха.

AttenuationFilterDbСвойство
# AttenuationFilterDb
C#
public float AttenuationFilterDb { get; set; }

Величина, в которой фильтр влияет на громкость, в децибелах.

AttenuationModelСвойство
# AttenuationModel
C#
public AudioStreamPlayer3D.AttenuationModelEnum AttenuationModel { get; set; }

Решает, должен ли звук становиться тише с расстоянием линейно, квадратично, логарифмически или не зависеть от расстояния, эффективно отключая затухание.

AutoplayСвойство
# Autoplay
C#
public bool Autoplay { get; set; }

Если true, звук воспроизводится при добавлении узла AudioStreamPlayer3D в дерево сцены.

BusСвойство
# Bus
C#
public StringName Bus { get; set; }

Шина, на которой воспроизводится этот звук. Примечание: При установке этого свойства имейте в виду, что проверка соответствия данного имени существующей шине не выполняется. Это связано с тем, что макеты аудиошин могут быть загружены после установки этого свойства. Если данное имя не может быть разрешено во время выполнения, оно вернется к "Master".

DopplerTrackingСвойство
# DopplerTracking
C#
public AudioStreamPlayer3D.DopplerTrackingEnum DopplerTracking { get; set; }

Решает, на каком этапе следует рассчитывать эффект Доплера. Примечание: Если AudioStreamPlayer3D.DopplerTracking не является AudioStreamPlayer3D.DopplerTrackingEnum.Disabled, но в текущем Camera3D/AudioListener3D отключён доплеровский трекинг, эффект Доплера будет слышен, но не будет учитывать движение текущего слушателя. Для получения точного доплеровского трекинга доплеровский трекинг следует включить как в AudioStreamPlayer3D, так и в текущем Camera3D/AudioListener3D.

EmissionAngleDegreesСвойство
# EmissionAngleDegrees
C#
public float EmissionAngleDegrees { get; set; }

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

EmissionAngleEnabledСвойство
# EmissionAngleEnabled
C#
public bool EmissionAngleEnabled { get; set; }

Если true, звук должен быть ослаблен в соответствии с направлением звука.

EmissionAngleFilterAttenuationDbСвойство
# EmissionAngleFilterAttenuationDb
C#
public float EmissionAngleFilterAttenuationDb { get; set; }

Коэффициент затухания, используемый, если слушатель находится за пределами AudioStreamPlayer3D.EmissionAngleDegrees и задан AudioStreamPlayer3D.EmissionAngleEnabled, в децибелах.

MaxDbСвойство
# MaxDb
C#
public float MaxDb { get; set; }

Устанавливает абсолютный максимум уровня звука в децибелах.

MaxDistanceСвойство
# MaxDistance
C#
public float MaxDistance { get; set; }

Расстояние, за пределами которого звук больше не слышен. Действует только если установлено значение больше 0.0. AudioStreamPlayer3D.MaxDistance работает в паре с AudioStreamPlayer3D.UnitSize. Однако, в отличие от AudioStreamPlayer3D.UnitSize, поведение которого зависит от AudioStreamPlayer3D.AttenuationModel, AudioStreamPlayer3D.MaxDistance всегда работает линейно. Это можно использовать для предотвращения необходимости микширования звука AudioStreamPlayer3D, когда слушатель находится далеко, что экономит ресурсы ЦП.

MaxPolyphonyСвойство
# MaxPolyphony
C#
public int MaxPolyphony { get; set; }

Максимальное число одновременных голосов этого плеера. Новый Play при превышении лимита вытесняет самый старый голос. Используйте положительное значение; для одного управляемого музыкального потока задайте 1.

PanningStrengthСвойство
# PanningStrength
C#
public float PanningStrength { get; set; }

Масштабирует силу панорамирования для этого узла, умножая базовый ProjectSettings.audio/general/3d_panning_strength на этот коэффициент. Если произведение равно 0.0, то стереопанорамирование отключено, а громкость одинакова для всех каналов. Если произведение равно 1.0, то один из каналов будет отключен, когда звук расположен точно слева (или справа) от слушателя. Двухканальные стереосистемы реализуют стандарт WebAudio для панорамирования StereoPannerNode, где громкость равна косинусу половины угла азимута к уху. Для других схем расположения динамиков, таких как 5.1 и 7.1, реализован алгоритм SPCAP (Амплитуда коррекции спикера-установка).

PitchScaleСвойство
# PitchScale
C#
public float PitchScale { get; set; }

Высота тона и темп звука как множитель частоты дискретизации аудиосэмпла.

PlaybackTypeСвойство
# PlaybackType
C#
public AudioServer.PlaybackType PlaybackType { get; set; }

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

PlayingСвойство
# Playing
C#
public bool Playing { get; set; }

Если true, звук воспроизводится или поставлен в очередь на воспроизведение (см. AudioStreamPlayer3D.Play).

StreamСвойство
# Stream
C#
public AudioStream Stream { get; set; }

Ресурс AudioStream для воспроизведения.

StreamPausedСвойство
# StreamPaused
C#
public bool StreamPaused { get; set; }

Приостанавливает существующие голоса или возобновляет их. Без голосов предварительная команда не сохраняется. В режиме Stream пауза делает IsPlaying() ложным, сохраняя HasStreamPlayback().

UnitSizeСвойство
# UnitSize
C#
public float UnitSize { get; set; }

Фактор эффекта затухания. Более высокие значения делают звук слышимым на большем расстоянии.

VolumeDbСвойство
# VolumeDb
C#
public float VolumeDb { get; set; }

Базовый уровень звука до затухания, в децибелах.

VolumeLinearСвойство
# VolumeLinear
C#
public float VolumeLinear { get; set; }

Базовый уровень звука до затухания, как линейное значение. Примечание: Этот член изменяет AudioStreamPlayer3D.VolumeDb для удобства. Возвращаемое значение эквивалентно результату @GlobalScope.db_to_linear для AudioStreamPlayer3D.VolumeDb. Установка этого члена эквивалентна установке AudioStreamPlayer3D.VolumeDb на результат @GlobalScope.linear_to_db для значения.

Методы50

GetAreaMaskuint
# GetAreaMask
C#
public uint GetAreaMask();
Возвращает uint
GetAttenuationFilterCutoffHzfloat
# GetAttenuationFilterCutoffHz
C#
public float GetAttenuationFilterCutoffHz();
Возвращает float
GetAttenuationFilterDbfloat
# GetAttenuationFilterDb
C#
public float GetAttenuationFilterDb();
Возвращает float
GetAttenuationModelAudioStreamPlayer3D.AttenuationModelEnum
# GetAttenuationModel
C#
public AudioStreamPlayer3D.AttenuationModelEnum GetAttenuationModel();
Возвращает AudioStreamPlayer3D.AttenuationModelEnum
GetBusStringName
# GetBus
C#
public StringName GetBus();
Возвращает StringName
GetDopplerTrackingAudioStreamPlayer3D.DopplerTrackingEnum
# GetDopplerTracking
C#
public AudioStreamPlayer3D.DopplerTrackingEnum GetDopplerTracking();
Возвращает AudioStreamPlayer3D.DopplerTrackingEnum
GetEmissionAnglefloat
# GetEmissionAngle
C#
public float GetEmissionAngle();
Возвращает float
GetEmissionAngleFilterAttenuationDbfloat
# GetEmissionAngleFilterAttenuationDb
C#
public float GetEmissionAngleFilterAttenuationDb();
Возвращает float
GetMaxDbfloat
# GetMaxDb
C#
public float GetMaxDb();
Возвращает float
GetMaxDistancefloat
# GetMaxDistance
C#
public float GetMaxDistance();
Возвращает float
GetMaxPolyphonyint
# GetMaxPolyphony
C#
public int GetMaxPolyphony();
Возвращает int
GetPanningStrengthfloat
# GetPanningStrength
C#
public float GetPanningStrength();
Возвращает float
GetPitchScalefloat
# GetPitchScale
C#
public float GetPitchScale();
Возвращает float
GetPlaybackPositionfloat
# GetPlaybackPosition
C#
public float GetPlaybackPosition();

Возвращает позицию последнего созданного голоса в секундах, а не общее время всех голосов. Между смешиваниями значение может меняться ступенчато. Для одного потока со скоростью 1 оценку можно уточнить временем после последнего mix; паузу, перемотку и задержку вывода учитывайте отдельно.

Возвращает float
GetPlaybackTypeAudioServer.PlaybackType
# GetPlaybackType
C#
public AudioServer.PlaybackType GetPlaybackType();
Возвращает AudioServer.PlaybackType
GetStreamAudioStream
# GetStream
C#
public AudioStream GetStream();
Возвращает AudioStream
GetStreamPausedbool
# GetStreamPaused
C#
public bool GetStreamPaused();
Возвращает bool
GetStreamPlaybackAudioStreamPlayback
# GetStreamPlayback
C#
public AudioStreamPlayback GetStreamPlayback();

Возвращает объект AudioStreamPlayback, связанный с этим AudioStreamPlayer3D.

Возвращает AudioStreamPlayback
GetUnitSizefloat
# GetUnitSize
C#
public float GetUnitSize();
Возвращает float
GetVolumeDbfloat
# GetVolumeDb
C#
public float GetVolumeDb();
Возвращает float
GetVolumeLinearfloat
# GetVolumeLinear
C#
public float GetVolumeLinear();
Возвращает float
HasStreamPlaybackbool
# HasStreamPlayback
C#
public bool HasStreamPlayback();

Проверяет, хранит ли плеер объекты воспроизведения, включая приостановленные. Это не признак слышимого сигнала: mute, расстояние или пауза могут давать тишину.

Возвращает bool
IsAutoplayEnabledbool
# IsAutoplayEnabled
C#
public bool IsAutoplayEnabled();
Возвращает bool
IsEmissionAngleEnabledbool
# IsEmissionAngleEnabled
C#
public bool IsEmissionAngleEnabled();
Возвращает bool
IsPlayingbool
# IsPlaying
C#
public bool IsPlaying();

В режиме Stream возвращает true для активно играющего голоса. На паузе false; для наличия сохранённого воспроизведения проверяйте HasStreamPlayback() или StreamPaused. Не отсекайте этим методом команду возобновления.

Возвращает bool
Playvoid
# Play
C#
public void Play(float fromPosition = 0f);

Ставит звук в очередь для воспроизведения в следующем физическом кадре, начиная с указанной позиции from_position в секундах.

Параметры
ИмяТипПо умолчанию
fromPositionfloat0f
Seekvoid
# Seek
C#
public void Seek(float toPosition);

Перезапускает плеер с заданной позиции в секундах только при активном воспроизведении. Останавливает прежние голоса и запускает новый с позиции. В режиме Stream на паузе или остановке ничего не делает. Для перемотки с сохранением паузы явно сохраните флаг, вызовите Stop(), Play(position) и восстановите StreamPaused.

Параметры
ИмяТипПо умолчанию
toPositionfloat—
SetAreaMaskvoid
# SetAreaMask
C#
public void SetAreaMask(uint mask);
Параметры
ИмяТипПо умолчанию
maskuint—
SetAttenuationFilterCutoffHzvoid
# SetAttenuationFilterCutoffHz
C#
public void SetAttenuationFilterCutoffHz(float degrees);
Параметры
ИмяТипПо умолчанию
degreesfloat—
SetAttenuationFilterDbvoid
# SetAttenuationFilterDb
C#
public void SetAttenuationFilterDb(float db);
Параметры
ИмяТипПо умолчанию
dbfloat—
SetAttenuationModelvoid
# SetAttenuationModel
C#
public void SetAttenuationModel(AudioStreamPlayer3D.AttenuationModelEnum model);
Параметры
ИмяТипПо умолчанию
modelAudioStreamPlayer3D.AttenuationModelEnum—
SetAutoplayvoid
# SetAutoplay
C#
public void SetAutoplay(bool enable);
Параметры
ИмяТипПо умолчанию
enablebool—
SetBusvoid
# SetBus
C#
public void SetBus(StringName bus);
Параметры
ИмяТипПо умолчанию
busStringName—
SetDopplerTrackingvoid
# SetDopplerTracking
C#
public void SetDopplerTracking(AudioStreamPlayer3D.DopplerTrackingEnum mode);
Параметры
ИмяТипПо умолчанию
modeAudioStreamPlayer3D.DopplerTrackingEnum—
SetEmissionAnglevoid
# SetEmissionAngle
C#
public void SetEmissionAngle(float degrees);
Параметры
ИмяТипПо умолчанию
degreesfloat—
SetEmissionAngleEnabledvoid
# SetEmissionAngleEnabled
C#
public void SetEmissionAngleEnabled(bool enabled);
Параметры
ИмяТипПо умолчанию
enabledbool—
SetEmissionAngleFilterAttenuationDbvoid
# SetEmissionAngleFilterAttenuationDb
C#
public void SetEmissionAngleFilterAttenuationDb(float db);
Параметры
ИмяТипПо умолчанию
dbfloat—
SetMaxDbvoid
# SetMaxDb
C#
public void SetMaxDb(float maxDb);
Параметры
ИмяТипПо умолчанию
maxDbfloat—
SetMaxDistancevoid
# SetMaxDistance
C#
public void SetMaxDistance(float meters);
Параметры
ИмяТипПо умолчанию
metersfloat—
SetMaxPolyphonyvoid
# SetMaxPolyphony
C#
public void SetMaxPolyphony(int maxPolyphony);
Параметры
ИмяТипПо умолчанию
maxPolyphonyint—
SetPanningStrengthvoid
# SetPanningStrength
C#
public void SetPanningStrength(float panningStrength);
Параметры
ИмяТипПо умолчанию
panningStrengthfloat—
SetPitchScalevoid
# SetPitchScale
C#
public void SetPitchScale(float pitchScale);
Параметры
ИмяТипПо умолчанию
pitchScalefloat—
SetPlaybackTypevoid
# SetPlaybackType
C#
public void SetPlaybackType(AudioServer.PlaybackType playbackType);
Параметры
ИмяТипПо умолчанию
playbackTypeAudioServer.PlaybackType—
SetPlayingvoid
# SetPlaying
C#
public void SetPlaying(bool enable);
Параметры
ИмяТипПо умолчанию
enablebool—
SetStreamvoid
# SetStream
C#
public void SetStream(AudioStream stream);
Параметры
ИмяТипПо умолчанию
streamAudioStream—
SetStreamPausedvoid
# SetStreamPaused
C#
public void SetStreamPaused(bool pause);
Параметры
ИмяТипПо умолчанию
pausebool—
SetUnitSizevoid
# SetUnitSize
C#
public void SetUnitSize(float unitSize);
Параметры
ИмяТипПо умолчанию
unitSizefloat—
SetVolumeDbvoid
# SetVolumeDb
C#
public void SetVolumeDb(float volumeDb);
Параметры
ИмяТипПо умолчанию
volumeDbfloat—
SetVolumeLinearvoid
# SetVolumeLinear
C#
public void SetVolumeLinear(float volumeLinear);
Параметры
ИмяТипПо умолчанию
volumeLinearfloat—
Stopvoid
# Stop
C#
public void Stop();

Остановка звука.

Сигналы и события1

FinishedСобытие
# Finished
C#
public event Action Finished;

Выдаётся, когда при обновлении удалён один или несколько естественно завершившихся голосов. Другие голоса могут ещё играть. Stop() и вытеснение по лимиту не означают естественное завершение; цикл не выдаёт этот сигнал на каждом круге.

AudioStreamPlayer3D.AttenuationModelEnum

ЗначениеОписание
Disabled = 3

Нет ослабления громкости в зависимости от расстояния. Звук все равно будет слышен позиционно, в отличие от AudioStreamPlayer. AudioStreamPlayer3D.AttenuationModelEnum.Disabled можно объединить со значением AudioStreamPlayer3D.MaxDistance, большим, чем 0.0, чтобы добиться линейного затухания, привязанного к сфере определенного размера.

InverseDistance = 0

Ослабление громкости в зависимости от линейного расстояния.

InverseSquareDistance = 1

Ослабление громкости пропорционально квадрату расстояния.

ВНИМАНИЕ

Logarithmic = 2

Ослабление громкости в зависимости от логарифмического расстояния.

ВНИМАНИЕ

AudioStreamPlayer3D.DopplerTrackingEnum

ЗначениеОписание
Disabled = 0

Откл. доплеровского слежения.

IdleStep = 1

Выполняет доплеровское отслеживание во время кадров процесса (см. Entity.NotificationInternalProcess).

PhysicsStep = 2

Выполняет доплеровское отслеживание во время физических кадров (см. Entity.NotificationInternalPhysicsProcess).

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.