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.

AudioStreamPlayer3D

Hérite de : Node3D < Node < Object

Joue un son localisé dans un espace 3D.

Description

Joue de l'audio avec des effets sonores positionnels, en fonction de la position relative de l'auditeur audio. Les effets positionnels incluent l'atténuation avec la distance, la directionnalité et l'effet Doppler. Pour plus de réalisme, un filtre passe-bas est appliqué aux sons lointains. Cela peut être désactivé en définissant attenuation_filter_cutoff_hz à 20500.

Par défaut, l'audio est entendu de la position de la caméra. Cela peut être changé en ajoutant un nœud AudioListener3D à la scène et l'activer en appelant AudioListener3D.make_current() dessus.

Voir aussi AudioStreamPlayer pour jouer un son non-positionnel.

Note : Cacher un nœud AudioStreamPlayer3D ne désactive pas sa sortie audio. Pour désactiver temporairement la sortie audio d'AudioStreamPlayer3D, définissez volume_db à une valeur très basse comme -100 (qui n'est pas audible par l'homme).

Tutoriels

Propriétés

int

area_mask

0

float

attenuation_filter_cutoff_hz

5000.0

float

attenuation_filter_db

-24.0

AttenuationModel

attenuation_model

0

bool

autoplay

false

StringName

bus

&"Master"

DopplerTracking

doppler_tracking

0

float

emission_angle_degrees

45.0

bool

emission_angle_enabled

false

float

emission_angle_filter_attenuation_db

-12.0

float

max_db

3.0

float

max_distance

0.0

int

max_polyphony

1

float

panning_strength

1.0

float

pitch_scale

1.0

PlaybackType

playback_type

0

bool

playing

false

AudioStream

stream

bool

stream_paused

false

float

unit_size

10.0

float

volume_db

0.0

float

volume_linear

Méthodes

float

get_playback_position()

AudioStreamPlayback

get_stream_playback()

bool

has_stream_playback()

void

play(from_position: float = 0.0)

void

seek(to_position: float)

void

stop()


Signaux

finished() 🔗

Émis quand l'audio a fini de jouer.


Énumérations

enum AttenuationModel: 🔗

AttenuationModel ATTENUATION_INVERSE_DISTANCE = 0

Atténuation du volume selon la distance linéaire.

AttenuationModel ATTENUATION_INVERSE_SQUARE_DISTANCE = 1

Atténuation du volume selon la distance carrée.

AttenuationModel ATTENUATION_LOGARITHMIC = 2

Atténuation du volume selon la distance logarithmique.

AttenuationModel ATTENUATION_DISABLED = 3

Aucune atténuation du volume selon la distance. Le son sera toujours entendu de manière positionnelle, contrairement à un AudioStreamPlayer. ATTENUATION_DISABLED peut être combinée avec une valeur max_distance supérieure à 0.0 pour obtenir une atténuation linéaire bornée à une sphère de taille définie.


enum DopplerTracking: 🔗

DopplerTracking DOPPLER_TRACKING_DISABLED = 0

Désactive le suivi doppler.

DopplerTracking DOPPLER_TRACKING_IDLE_STEP = 1

Exécute le suivi Doppler pendant les trames de traitement (voir Node.NOTIFICATION_INTERNAL_PROCESS).

DopplerTracking DOPPLER_TRACKING_PHYSICS_STEP = 2

Exécute le suivi Doppler pendant les trames de physique (voir Node.NOTIFICATION_INTERNAL_PHYSICS_PROCESS).


Descriptions des propriétés

int area_mask = 0 🔗

  • void set_area_mask(value: int)

  • int get_area_mask()

Détermine quelles couches d'Area3D affectent le son pour les effets de réverbération et de bus audio. Les zones peuvent être utilisées pour rediriger les AudioStreams afin qu'ils soient joués sur un certain bus audio. Un exemple de la façon dont vous pouvez utiliser ceci est de faire une zone "eau" de sorte que les sons joués dans l'eau sont redirigés dans un bus audio pour les faire sonner comme ils étaient joués sous l'eau.


float attenuation_filter_cutoff_hz = 5000.0 🔗

  • void set_attenuation_filter_cutoff_hz(value: float)

  • float get_attenuation_filter_cutoff_hz()

La fréquence de coupure du filtre à passe-bas d'atténuation, en Hz. Un son au-dessus de cette fréquence est atténué plus qu'un son en-dessous de cette fréquence. Pour désactiver cet effet, définissez ceci à 20500 car cette fréquence est supérieure à la limite d'audition humaine.


float attenuation_filter_db = -24.0 🔗

  • void set_attenuation_filter_db(value: float)

  • float get_attenuation_filter_db()

Quantité de combien le filtre affecte le volume, en décibels.


AttenuationModel attenuation_model = 0 🔗

Décide si la piste audio doit s'atténuer avec la distance de manière linéaire, quadratique, logarithmique ou ne pas être affectée par la distance, désactivant ainsi l'atténuation.


bool autoplay = false 🔗

  • void set_autoplay(value: bool)

  • bool is_autoplay_enabled()

Si true, la lecture commence dès que le AudioStreamPlayer3D est ajouté à la scène.


StringName bus = &"Master" 🔗

Le bus sur lequel ce son joue.

Note : Lorsque vous définissez cette propriété, n'oubliez pas qu'aucune validation n'est effectuée pour voir si le nom donné correspond à un bus existant. C'est parce que les configurations de bus audio peuvent être chargées après que cette propriété soit définie. Si ce nom ne peut pas être résolu en cours d'exécution, il va se replier sur "Master".


DopplerTracking doppler_tracking = 0 🔗

Décide dans quelle étape l'effet Doppler devrait être calculé.

Note : Si doppler_tracking n'est pas DOPPLER_TRACKING_DISABLED mais le Camera3D/AudioListener3D courant a le suivi doppler désactivé, l'effet Doppler sera entendu mais ne prendra pas en compte le mouvement de l'auditeur actuel. Si un effet Doppler précis est souhaité, le suivi doppler doit être activé sur le AudioStreamPlayer3D et le Camera3D/AudioListener3D courant.


float emission_angle_degrees = 45.0 🔗

  • void set_emission_angle(value: float)

  • float get_emission_angle()

L'angle avec lequel l'audio atteint un auditeur non atténué.


bool emission_angle_enabled = false 🔗

  • void set_emission_angle_enabled(value: bool)

  • bool is_emission_angle_enabled()

Si true, l'audio doit être atténué selon la direction du son.


float emission_angle_filter_attenuation_db = -12.0 🔗

  • void set_emission_angle_filter_attenuation_db(value: float)

  • float get_emission_angle_filter_attenuation_db()

Facteur d'atténuation utilisé si l'auditeur est à l'extérieur de emission_angle_degrees et queemission_angle_enabled est défini, en décibels.


float max_db = 3.0 🔗

  • void set_max_db(value: float)

  • float get_max_db()

Définit le maximum absolu du niveau sonore, en décibels.


float max_distance = 0.0 🔗

  • void set_max_distance(value: float)

  • float get_max_distance()

La distance passée laquelle le son ne peut plus être entendu du tout. A un effet seulement si défini à une valeur supérieure à 0.0. max_distance fonctionne en tandem avec unit_size. Cependant, contrairement à unit_size, dont le comportement dépend du attenuation_model, max_distance fonctionne toujours de façon linéaire. Cela peut être utilisé pour empêcher l'AudioStreamPlayer3D d'exiger un mixage audio lorsque l'auditeur est loin, ce qui permet d'économiser des ressources CPU.


int max_polyphony = 1 🔗

  • void set_max_polyphony(value: int)

  • int get_max_polyphony()

Le nombre maximum de sons que ce nœud peut jouer en même temps. Jouer des sons supplémentaires après que cette valeur est atteinte coupera les sons les plus anciens.


float panning_strength = 1.0 🔗

  • void set_panning_strength(value: float)

  • float get_panning_strength()

Redimensionne la force de balance de ce nœud en multipliant la base ProjectSettings.audio/general/3d_panning_strength par ce facteur. Si le produit vaut 0.0, la balance stéréo est désactivée et le volume est le même pour tous les canaux. Si le produit vaut 1.0, l'un des canaux sera muet lorsque le son est situé exactement à gauche (ou à droite) de l'auditeur.

Les arrangements stéréo à 2 haut-parleurs implémentent le standard WebAudio pour la balance StereoPannerNode où le volume est le cosinus de la moitié de l'angle d'azimut à l'oreille.

Pour d'autres arrangements des haut-parleurs tels que le 5.1 et 7.1, l'algorithme SPCAP (Speaker-Placement Correction Amplitude) est implémenté.


float pitch_scale = 1.0 🔗

  • void set_pitch_scale(value: float)

  • float get_pitch_scale()

La hauteur et le tempo de l'audio, en tant que multiplicateur du taux d'échantillonnage de l’échantillon audio.


PlaybackType playback_type = 0 🔗

Expérimental : Cette propriété peut être changée ou retirée dans de futures versions.

Le type de lecture du lecteur de flux. Si défini à autre chose que la valeur par défaut, elle forcera ce type de lecture.


bool playing = false 🔗

  • void set_playing(value: bool)

  • bool is_playing()

Si true, l'audio joue ou est en file pour être joué (voir play()).


AudioStream stream 🔗

La ressource AudioStream à jouer.


bool stream_paused = false 🔗

  • void set_stream_paused(value: bool)

  • bool get_stream_paused()

Si true, la lecture est en pause. Vous pouvez la reprendre en définissant stream_paused à false.


float unit_size = 10.0 🔗

  • void set_unit_size(value: float)

  • float get_unit_size()

Le facteur pour l'effet d'atténuation. Des valeurs plus élevées rendent le son audible sur une distance plus grande.


float volume_db = 0.0 🔗

  • void set_volume_db(value: float)

  • float get_volume_db()

Le niveau sonore de base avant l'atténuation, en décibels.


float volume_linear 🔗

  • void set_volume_linear(value: float)

  • float get_volume_linear()

Le niveau sonore de base avant l'atténuation, en tant que valeur linéaire.

Note : Ce membre modifie volume_db par commodité. La valeur renvoyée est équivalente au résultat de @GlobalScope.db_to_linear() sur volume_db. Définir ce membre est équivalent à définir volume_db au résultat de @GlobalScope.linear_to_db() sur une valeur.


Descriptions des méthodes

float get_playback_position() 🔗

Renvoie la position dans l'AudioStream.


AudioStreamPlayback get_stream_playback() 🔗

Renvoie l'objet AudioStreamPlayback associé avec ce AudioStreamPlayer3D.


bool has_stream_playback() 🔗

Renvoie si l'AudioStreamPlayer peut renvoyer l'objet AudioStreamPlayback ou non.


void play(from_position: float = 0.0) 🔗

Met dans la file d'attente la piste audio à jouer lors de la prochaine trame physique, depuis la position from_position donnée, en secondes.


void seek(to_position: float) 🔗

Définit la position depuis laquelle l’audio sera joué, en secondes.


void stop() 🔗

Arrête l'audio.