Implementing Environmental Audio Occlusion and Obstruction in Fmod
Table of Contents
Introduction à l'Occclusion et à l'Occlusion environnementale
L'occlusion et l'obstruction environnementales simulent le comportement du son lorsqu'il rencontre des obstacles, ajoutant profondeur et conscience spatiale au gameplay. Dans FMOD, la mise en œuvre de ces effets nécessite une combinaison de la diffusion au niveau du moteur et des fonctionnalités audio spatiales intégrées. Ce guide élargi passe par la théorie, la configuration et la mise en œuvre pratique de l'occlusion et de l'obstruction à l'aide de FMOD, fournissant des étapes actionnables pour les flux de travail de Unity et Unreal.
Bien exécuté, occlusion et obstruction permettent aux joueurs de localiser les ennemis à travers les murs, de mesurer la taille d'un espace et de se sentir connecté au monde du jeu. Sans eux, l'audio se sent plat et déconnecté. À la fin de cet article, vous aurez un pipeline prêt à la production pour ajouter le filtrage audio environnemental à votre jeu FMOD.
Comprendre l'occlusion et l'obstruction
Avant de plonger dans la mise en œuvre, il est essentiel de distinguer entre occlusion et obstruction, car ils affectent le son différemment et nécessitent une manipulation séparée dans le code et FMOD Studio.
Occlusion
L'occlusion se produit lorsqu'un objet solide bloque complètement la ligne de vue directe entre une source sonore et l'auditeur. Le son doit se diffracter autour de l'objet ou le traverser, ce qui entraîne une réduction significative du volume et un effet de filtrage du passage bas. Par exemple, un tir de fusil tiré dans une pièce en béton adjacente sonne étouffé et distant.
Obstruction
L'obstruction décrit le blocage partiel du chemin sonore. Le chemin direct n'est pas complètement coupé, mais le son doit passer par un matériau semi-transparent ou autour d'un bord. Cela provoque une réduction modérée du volume et une atténuation de la fréquence. Un joueur parlant à travers une porte en bois mince est un exemple classique d'obstruction. La voix reste intelligible mais sonne légèrement amortie.
Les deux effets dépendent de la géométrie et des propriétés matérielles de l'environnement. Un principe clé est que l'occlusion et l'obstruction sont des valeurs continues plutôt que des états binaires. La quantité de blocage devrait s'écheller en douceur en fonction du nombre, de l'épaisseur et du matériau des obstacles.
Configuration de FMOD pour l'audio spatial
FMOD fournit un pipeline audio 3D robuste qui peut être étendu avec une logique d'occlusion/obstruction personnalisée. La première étape consiste à configurer correctement votre projet FMOD et votre structure d'événement.
Création d'un événement 3D dans FMOD Studio
Ouvrez FMOD Studio et créez un nouvel événement. 3D onglet, assurez-vous que l'événement est réglé à 3D plutôt que 2D. Cela permet la spatialisation, l'atténuation de la distance et les effets Doppler. Occlusion et Obstruction. Ceux-ci seront pilotés par le code de jeu à l'exécution. Définissez leurs plages de 0,0 (pas de blocage) à 1,0 (blocage complet).
Dans la chronologie de l'événement, mapper ces paramètres à volume et l'automatisation de filtre passe bas. Pour l'occlusion, vous pouvez définir le volume à tomber à -40 dB et la fréquence de passage bas à 400 Hz. Pour l'obstruction, une baisse plus légère à -15 dB et le passage bas à 2000 Hz fonctionne bien.
Intégrer FMOD à votre moteur de jeu
Après la mise à jour du projet FMOD Studio, les builds bancaires doivent être régénérés. Dans Unity, importez le paquet d'intégration FMOD Unity. Dans Unreal, activez le plugin FMOD Studio. Les deux moteurs fournissent des API C# ou C++ pour contrôler FMOD au moment de l'exécution. Assurez-vous que votre auditeur et tous les objets émettant du son utilisent FMOD=»s pour créer et gérer des événements.
Mise en œuvre de la diffusion par rayons pour la détection des obstacles
Le rayonnement est la méthode la plus courante et la plus efficace pour détecter les obstacles entre la source sonore et l'auditeur. L'approche de base lance un rayon de la position de l'auditeur à la position de la source sonore. Si le rayon frappe un collisionneur, des obstacles existent. Les valeurs d'occlusion/obstruction sont dérivées du nombre de coups, des distances de frappe et des propriétés matérielles.
Mise en œuvre de base à chaîne unique
En Unity, un simple ou peut détecter si la ligne de vue est bloquée. L'extrait C# suivant montre comment définir le paramètre d'occlusion sur une instance d'événement FMOD basée sur un seul coup de rayon :
Bien que cela fonctionne, un seul rayon n'est pas fiable – il peut manquer les bords ou donner un résultat binaire. Pour un comportement réaliste, vous avez besoin de rayons multiples ou d'une approche volumétrique.
Plusieurs Raycasts pour une occlusion plus lisse
Au lieu d'un rayon, jeter plusieurs rayons à partir de points autour de la source sonore (par exemple, une petite sphère). Chaque rayon contribue à une valeur d'occlusion moyenne. Par exemple, jeter 8 rayons dans un motif hémisphérique autour de la source sonore. Compter combien de rayons sont bloqués et les peser par distance de la source. Cela produit une valeur d'occlusion fractionnelle entre 0 et 1.
Ci-dessous est une version élargie de la logique:
Cette méthode lisse la transition lorsque la source sonore se déplace derrière les objets. Vous pouvez affiner en ne comptant pas les rayons qui frappent des objets très minces ou en utilisant des couches de rayonnage pour ignorer la source elle-même et le collider de l'auditeur.
Propriétés du matériau et filtrage de fréquence
Pour tenir compte du matériel, assignez des matériaux physiques à vos collisions avec des propriétés d'occlusion. En Unity, vous pouvez utiliser un script personnalisé qui lit un ou et le mapper à une valeur. Par exemple, un pourrait avoir un Absorption acoustique Lors de la projection, récupérer le matériau de la collision et utiliser sa valeur d'absorption pour étaler le paramètre d'occlusion. Pour l'obstruction, vous pouvez également moduler la courbe de fréquence de coupure de passage bas. FMOD , peut être appelé plusieurs fois par image pour mettre à jour les deux paramètres:
Cette approche permet des environnements dynamiques où les matériaux changent (p. ex., une rupture de mur).
Application des fonctionnalités intégrées de FMOD
La FMOD fournit plusieurs mécanismes intégrés pour appliquer l'occlusion et l'obstruction au-delà des paramètres personnalisés. L'utilisation correcte des méthodes est cruciale.
et le mélange spatial
Chaque événement 3D doit avoir ses attributs 3D mis à jour chaque image. Appelez avec l'auditeur et les positions source. Cela permet la spatialisation native de FMOD, y compris l'atténuation de distance et la panning. L'occlusion et l'obstruction sont appliquées en plus de cela. Assurez-vous que votre événement , courbe d'atténuation est réglé à quelque chose de sensible dans FMOD Studio – commencez par une courbe par défaut --Logarithmique et ajustez en fonction de votre échelle de jeu.
Utilisation de la réverbération environnementale FMOD
FMOD comprend un effet de réverbération environnementale qui peut être automatisé à côté de l'occlusion. Lorsqu'un son est fortement occlus, vous pouvez vouloir que la réverbération devienne plus proéminente pour simuler le son venant à travers un mur. Dans FMOD Studio, ajouter un effet de réverbération au groupe de mélangeur événement. RéverbMix. côté script, lorsque l'occlusion est élevée, augmenter le mélange de réverbération. Cela crée une illusion auditive convaincante de voyage du son à travers une barrière.
Par exemple, une explosion lointaine derrière un bâtiment aura un fort bruit bas de gamme avec beaucoup de réverbération, tandis que les explosions directes de ligne de vue sont nettes et sèches.
Courbes de paramètres et automatisation
Retour dans FMOD Studio, les paramètres que vous conduisez à partir du code doivent être mapés aux propriétés audio réelles. Sélectionnez l'événement ,s Voie (p. ex., la timeline du clip audio). Ajouter l'automatisation â Paramètre â Occlusion. Maintenant le volume suivra la valeur d'occlusion. Faites de même pour un filtre passe-bas (un effet ajouté à la chaîne de signal de tracks).
Définissez la coupure du filtre pour la carte de 22000 Hz (pas d'occlusion) jusqu'à , par exemple, 400 Hz (occlusion complète). Pour l'obstruction, utilisez une courbe moins agressive, peut-être seulement descendre à 2000 Hz et réduire le volume de -10 dB au maximum. Ces courbes peuvent être modifiées en cliquant droit sur la ligne d'automatisation et en ajoutant des points.
Techniques avancées
Pour les projets de grande envergure, la diffusion par rayons de base peut ne pas suffire.
Occlusion volumétrique avec les systèmes portails
Dans les jeux à géométrie complexe, comme les transitions intérieur/extérieur, envisager de mettre en place un portail ou un système cellulaire. Précalculer quelles pièces sont connectées et traiter les portes comme des portails acoustiques. Lorsqu'une source sonore est derrière un portail, le facteur d'occlusion est déterminé par le nombre de portails entre source et auditeur. Cela évite la projection par image et fonctionne bien pour la géométrie statique. FMOD , s'applique toujours, mais la valeur d'occlusion est dérivée d'un graphique de pièce.
Zones de réverbération et formes audio
Une autre approche consiste à définir des zones de déclenchement audio avec différents préréglages de réverbération. Lorsque l'auditeur passe dans des zones, la réverbération de la source sonore change. Combinée à l'occlusion de rayoncast, elle produit des transitions naturelles. Par exemple, une source à l'intérieur d'une cathédrale aura une longue queue de réverbération, tandis qu'une source extérieure aura une réverbération courte. Réverbération effet sur un bus et contrôle son mix via un paramètre global défini par la zone player.
Considérations relatives aux performances
La diffusion de chaque image pour chaque source sonore peut être coûteuse. Optimiser par:
- Limiter les rayons aux sons à une distance maximale (par exemple, 50 mètres).
- Utiliser un minuteur de refroidissement (p. ex., recalculer toutes les 0,1 seconde).
- Demandes de distribution par radiodiffusion par .
- Appliquer seulement l'occlusion à des sons importants (p. ex. ennemis, pas oiseaux ambiants).
Assurez-vous également que vos paramètres FMOD ne sont pas mis à jour chaque image si la valeur d'occlusion n'a pas beaucoup changé â utilisez une comparaison de seuil.
Conseils pratiques et pratiques exemplaires
- Utiliser plusieurs rayons autour de la source sonore pour éviter les bords fins causant des résultats binaires. Un tableau à 5-8 rayons fournit un bon équilibre.
- Régler les courbes d'atténuation pour correspondre aux matériaux environnementaux. Par exemple, un mur en bois devrait amortir le son plus qu'un rideau. Créez une table de recherche avec des rapports matériaux-absorption.
- Combiner l'occlusion et les effets réverbères Pour une meilleure perception spatiale. Les sons occlus lourds ont souvent plus de réverbération; les sons directs ont moins.
- Essai dans divers environnements pour calibrer les paramètres pour différents matériaux et géométries. Utilisez un niveau de test avec des cubes simples et différents matériaux de physique pour vérifier le comportement.
- Utiliser FMOD , Mise à jour en direct Pour surveiller les valeurs des paramètres en temps réel. En Unity, connectez-vous via FMOD Studio Live Update. Cela vous permet de voir les valeurs d'occlusion ajuster au fur et à mesure que vous déplacez l'auditeur.
- N'oublie pas l'auditeur lui-même. Si un auditeur est sous l'eau, cela affecte tout le son. Implémenter un modificateur d'occlusion global qui se combine avec l'occlusion par source.
- Considérez une interpolation sans heurts Pour les mises à jour des paramètres d'occlusion. Au lieu de définir le paramètre directement chaque image, lisez vers la valeur cible pour éviter des changements brusques.
Tests et tuning en jeu
Une fois mis en Åuvre, les tests sont cruciaux. Marchez l'auditeur dans différents environnements et écoutez des transitions contre nature.
- Occlusion tombant à zéro instantanément lorsque la source est juste derrière un pilier.
- Trop de filtrages à passe basse rendant les sons inaudibles.
- Réverbération non conforme à l'acoustique attendue.
Utiliser les FMODs intégrés Visualiseur audio 3D Dans Studio, vous pouvez aussi dessiner des rayons de débogue dans le moteur de jeu pour visualiser les rayons. Dans Unity, utilisez pour afficher des rayons bloqués contre des rayons clairs. Enregistrez les valeurs de paramètre à l'aide d'outils de profilage FMOD. Evaluez les courbes d'automatisation jusqu'à ce que l'occlusion/obstruction se sente naturelle sans devenir une nuisance de gameplay (par exemple, les joueurs devraient encore entendre des traces à travers les murs, juste mufflé).
Conclusion
En combinant l'automatisation des paramètres de la projection de moteurs de jeu avec la réverbération et l'automatisation des paramètres de FMOD, vous pouvez simuler une propagation sonore réaliste qui répond à la géométrie et aux matériaux. Commencez par une configuration simple à une seule radio, puis étendez-vous à plusieurs rayons et filtrage matériel-aiware. Utilisez les techniques avancées des systèmes de portail ou des zones de réverbération pour des environnements plus grands et plus complexes. N'oubliez pas de tester de façon exhaustive et d'ajuster les courbes des paramètres dans FMOD Studio. Le résultat sera un jeu plus immersif où les joueurs peuvent vraiment --
Pour plus de détails, consulter le Documentation sur la FMOD, les Physique de l'unité.Raycast référence, et Guide de trace de ligne de moteur irréelle. Les ressources supplémentaires en matière d'exclusion audio comprennent : Article de développeur de jeu sur l'occlusion/obstruction et a Papier blanc d'occlusion WWise (les techniques sont transférables).