Optimiser l'audio Wwise pour les appareils mobiles est une discipline critique qui façonne directement les performances des jeux, la rétention des joueurs et les cotes de stockage. Les plateformes mobiles imposent des contraintes strictes sur les cycles CPU, la bande passante de la mémoire et l'espace de stockage. Contrairement au développement de PC ou de console, où vous pouvez souvent échanger des performances pour la fidélité, les jeux mobiles doivent équilibrer la richesse audio avec la durée de vie de la batterie, le grottling thermique et les ressources partagées du système.
Comprendre l'audio Wwise sur mobile
Wwise est un intergiciel audio multiplateforme qui permet des systèmes audio interactifs complexes. Pour optimiser efficacement, vous devez comprendre comment il structure et gère les actifs à l'exécution sur les appareils mobiles.
Chaque segment sonore, musical ou bus de Wwise est un objet audio. Ces objets sont regroupés dans des fichiers SoundBank contenant des données audio et des métadonnées pour la lecture. Sur mobile, SoundBanks sont chargés à partir de stockage flash ou en streaming. Les principaux actifs comprennent les fichiers audio source (importés sous la forme de WAV, FLAC, AIFF), les formats spécifiques à la plate-forme convertis (Vorbis, ADPCM, MP3), SoundBanks eux-mêmes (conteneurs de temps de run avec événements, commutateurs et paramètres), audio en streaming (joué directement à partir du disque) et la hiérarchie de la structure du son (conteneurs, effets, buss).
Les appareils mobiles partagent RAM avec le système d'exploitation et d'autres applications (souvent 512 MB à 4 Go), ont un stockage flash plus lent (surtout sur les anciens modèles), et manquent de matériel DSP audio dédié.Les données audio concurrencent les graphiques, la physique et l'interface utilisateur pour les ressources.Chaque décision sur le format, la qualité et la stratégie de chargement doit respecter ces contraintes.De plus, les processeurs mobiles utilisent généralement de grandes architectures.LETTLE où le décodage audio devrait fonctionner sur des cœurs efficaces pour éviter les piles drainantes.
Stratégies d'optimisation de base
L'optimisation est un processus continu qui s'étend sur la création, la conversion, l'emballage, la gestion des temps d'exécution et le profilage.
1. Choisissez le bon format de compression audio
Le choix du format de compression est la plus grande influence sur l'utilisation de la mémoire et la bande passante en continu.
- Vorbis – Codec perceptuel avec haute compression (10:1 sur PCM) et bonne qualité à 64–128 kbps pour la musique stéréo. Utilisez la qualité 0.40–0.60 pour la parole et l'ambiance, 0.70–0.90 pour la musique où la fidélité compte. Les paramètres inférieurs (0.30–0.40) fonctionnent pour les clics UI et les effets à une prise qui n'ont pas besoin de fidélité élevée.
- MP3 – Format plus ancien; Wwise , encoder MP3 produit des fichiers plus grands que Vorbis à qualité équivalente. Préférez Vorbis pour tous les nouveaux projets à moins que vous ne ciblez le matériel qui a un décodeur matériel MP3.
- ADPCM – Codec perdu, faible complexité (4:1) avec des frais CPU très bas. Idéal pour les sons courts et répétitifs comme les pas, les impacts et les retours d'interface utilisateur où le décodeur rapide est plus important que le taux de compression. ADPCM utilise moins de batterie que Vorbis parce qu'il nécessite moins d'instructions par échantillon.
- PCM (non comprimé) – Réservez pour des sons extrêmement courts (moins de 100 ms) où la latence est importante et le fichier est petit. Un clic PCM mono 50 ms à 44100 Hz est seulement 8,8 KB; même en ADPCM est 2,2 KB. Évitez PCM pour tout ce qui dépasse quelques centaines de millisecondes.
Conseils pratiques: Profiler la mémoire audio avec le profileur Wwise. Convertir les boucles ambiantes et la musique en Vorbis à la qualité 0.50–0.60; la parole à 0.40–0.50; les effets sonores de moins de 500 ms en ADPCM. Tester sur votre appareil cible — certains anciens appareils Android avec le logiciel Vorbis décodage peut laisser tomber des voix si trop de flux Vorbis de haute qualité jouent simultanément.
2. Organiser efficacement les banques sonores
Les banques à faible structure sont une cause principale de bloat de mémoire et de longs temps de chargement.
- Séparer par niveau ou scène – Créer une BanqueSoundSoft pour chaque niveau de jeu, menu ou écran. Chargez la banque uniquement lorsque le joueur entre dans cette zone et déchargez-la en partant. Cela maintient la mémoire proportionnelle au contenu actif.
- Répartition par langue – Placez le dialogue localisé dans des banques spécifiques à la langue, séparées de la musique ou du SFX partagés. Chargez un seul paquet linguistique à la fois.
- Découpe par le comportement de chargement – Désignez une petite banque de -core , pour les sons d'interface utilisateur et les mécaniques essentielles qui chargent au démarrage. Mettez des actifs spécifiques de niveau dans des banques séparées chargées asynchronement. Placez des actifs en flux (musique, longues ambiances) dans des banques dédiées en flux pour éviter de les charger dans la piscine de mémoire.
- Limiter la taille de la banque – Une seule banque ne doit pas dépasser 5-10 Mo sur mobile; moins de 2 Mo est idéal. Les grandes banques causent des charges de blocage et des pics de mémoire longs. Activer l'option -Enlever les médias inutilisés - - lors de la conversion pour couper les actifs qui ne sont pas référencés.
- Utiliser avec prudence les dépendances bancaires – Quand une banque a besoin d'actifs d'une autre, vous pouvez déclarer des chaînes de dépendance. Cependant, une dépendance excessive peut annuler l'épargne mémoire parce que charger une banque peut forcer plusieurs autres banques à rester en mémoire. Préférez diviser par scène sur la création d'arbres de dépendance profonde.
3. La qualité audio fine-tune et les paramètres de conversion
Wwise fournit des paramètres de conversion par ensemble qui contrôlent directement la taille et la fidélité des fichiers. Commencez par un ShareSet de conversion spécifique au mobile, puis remplacez pour les actifs critiques.
- Taux d'échantillonnage – 44100 Hz est standard pour la musique et l'ambiance haute-détail; 22050 Hz fonctionne pour la parole et la plupart des SFX. Pour l'herbe ambiante, le vent, ou les clics UI, 11025 Hz est souvent acceptable. Rarement fait besoin de son mobile 48000 Hz; l'oreille humaine ne peut pas distinguer la différence avec les haut-parleurs ou casques mobiles standard.
- Profondeur du bit – Déjà géré par le codec (Vorbis utilise un point flottant en interne), mais vous pouvez convertir les WAV source 24 bits en 16 bits pour réduire la taille du fichier source. Cela n'affecte pas la qualité d'exécution après l'encodage Vorbis.
- Nombre de canaux – Utilisez mono pour la plupart des effets sonores, voix off et dialogue NPC. Stéréo seulement pour la musique ou les ambiances spatiales qui le justifient.
- Qualité de conversion – Créer un jeu de parts dédié pour mobile avec qualité Vorbis 0.50 par défaut et taux d'échantillonnage 44100/22050. Ensuite, surpasser les actifs spécifiques : les passages musicaux critiques peuvent utiliser 0.70 ; les impacts d'explosion peuvent tomber à 0.30. Pour les actifs ADPCM, vous ne pouvez pas ajuster la qualité ; au lieu de cela, envisager préfiltrage haute fréquences pour réduire l'aliasage si nécessaire.
- LFE et canaux de sortie – Désactiver la génération LFE (subwoofer) pour les BanquesSondes mobiles. Définissez le nombre de canaux de sortie stéréo ou mono pour éviter les données gaspillées.
4. Mettre en oeuvre la rationalisation des grands biens
Le streaming lit l'audio depuis le stockage dans de petits morceaux pendant la lecture, en maintenant l'utilisation de la mémoire faible. Cependant, il introduit la latence d'E/O et nécessite un pré-fetping soigneux.
- Musique de fond en streaming et de longues ambiances – Tout clip audio de plus de 10 à 15 secondes bénéficie du streaming. L'empreinte mémoire par actif streamé est généralement 128 à 256 KB (la taille du tampon pré-fettch), quelle que soit la longueur du fichier original.
- Régler la taille du tampon de flux – En Paramètres du projet > Banques son, la taille du tampon de flux contrôle la quantité de données préchargées avant le début de la lecture. Les tampons plus grands réduisent le risque d'abandon mais augmentent la mémoire. Pour mobile, un tampon de 64 à 128 échantillons par flux est souvent suffisant.
- Limiter les voix en flux simultané – Chaque voix en flux consomme la mémoire tampon et maintient le périphérique de stockage occupé. Limitez les voix en flux simultanés à 4–6 sur mobile pour éviter la dispute d'E/S. Utilisez Wwise , la limitation de la voix comme un filet de sécurité.
- Ne pas diffuser des sons courts et fréquents – Les clics d'interface utilisateur, les coups de feu, les pas doivent être chargés en mémoire. Le streaming ajoute de la latence (généralement 20–50 ms due à la recherche et à la lecture) qui peut ruiner la réactivité interactive.
Pour plus de stratégies de streaming, consultez Audiokinetics Documentation de gestion de streaming- Oui.
5. Gérer la priorité vocale et limiter
Les appareils mobiles ne peuvent jouer qu'un nombre limité de voix simultanément avant que le processeur ne soit débordé ou que des artefacts audio apparaissent (effacement, abandons).
- Définir une limite vocale globale – 32 voix pour les téléphones haut de gamme, 16 pour les appareils plus anciens. Wwise tuera les voix virtuelles les moins importantes (les moins prioritaires) ou les jouera comme des voix virtuelles à faible taux d'échantillon qui ne consomment presque aucun processeur.
- Attribuer la priorité et la limite de lecture par son – Les sons critiques de gameplay (hits, alertes) devraient avoir une priorité élevée (90–100), tandis que les boucles ambiantes ou la musique peuvent être plus basses (10–30).
- Utiliser les voix virtuelles – Lorsque la lecture vocale est volée, vous pouvez configurer Wwise pour arrêter le son ou le rendre virtuel (joué à 1 image par seconde pour maintenir le timing). Paramètres du projet > Voix – choisissez -Jouer à partir de début - ou -Jouer à partir de offset virtuel - en fonction de vos besoins de jeu.
- Paramètres de jeu de levier (RTPC) – Régler dynamiquement la priorité vocale en fonction de la distance, de la visibilité de la caméra ou de l'importance contextuelle. Un son derrière un mur ou loin peut avoir sa priorité abaissée, ce qui le rend plus susceptible de devenir virtuel au lieu d'un son proche.
6. Optimiser l'utilisation du bassin de mémoire
Wwise utilise trois piscines de mémoire principales: Pool par défaut (structures essentielles), Banques sonores (actifs chargés), et Pool de streaming (clauses de courant). La configuration de ces paramètres pour le mobile nécessite un calibrage délibéré :
- Taille par défaut du pool – Réglez à 2–4 Mo pour les appareils haut de gamme, 1 Mo pour les appareils bas de gamme. Ce pool contient des objets internes Wwise comme les instances vocales et les structures de bus. Surveillez l'utilisation dans le profileur; si le pool est trop petit, Wwise peut refuser de créer des voix.
- Banque Sound – Utilisez avec un bassin dédié. Réglez sa taille à la taille maximale attendue chargée de la banque plus 20% de frais généraux pour la fragmentation.
- Piscine de streaming – Allocate en fonction du nombre de flux simultanés et de la taille du tampon. Pour 4 flux avec 128 tampons d'échantillon à 44100 Hz stéréo 16 bits, chaque tampon est d'environ 22 KB.
- Charger et décharger les banques de manière agressive – Ne jamais charger toutes les banques au démarrage. Utilisez le chargement asynchrone avec des callbacks. Déchargez les banques dès que le joueur quitte une scène ou un niveau. Surveillez les fuites de mémoire dans le profileur sous - -Utilisation de mémoire - par pool.
Voir Audiokinetics , Guide de gestion de la mémoire pour la configuration d'allocateur spécifique à la plate-forme, y compris les allocateurs personnalisés pour Android ou iOS.
Techniques d'optimisation avancées
Au-delà des stratégies de base, plusieurs techniques avancées réduisent encore plus le CPU et la charge mémoire.
Optimiser le traitement des effets
Les effets audio comme la réverbération, la convolution et la compression dynamique sont intensifs en CPU.
- Utiliser des effets Wwise intégrés (Reverb, EQ, Delay) au lieu de la réverb. La réverbération de la convolution est beaucoup plus coûteuse et rarement nécessaire pour l'audio mobile.
- Appliquer les effets sur les bus plutôt que sur les sons individuels. Partager un bus auxiliaire unique pour toute réverbération ambiante pour éviter le traitement redondant.
- Réduire le paramètre Qualité de l'effet pour la réverbération (réduire la taille de la pièce, la diffusion ou le mélange humide/sec).
- Si vous utilisez des Plugins Source ou des voix de synthétiseur, évaluez si un actif préenregistré peut remplacer la synthèse en temps réel. Les synths consomment CPU par voix et sont plus difficiles à optimiser.
- Envisagez d'utiliser les effets Wwise , ou ,Panner , en tant que de besoin; chaque effet ajouté coûte des cycles de pipeline.
Utiliser efficacement les groupes et les commutateurs d'État
Les groupes d'état (par exemple, jour/nuit, agressif/volant) changent quels sons sont actifs. Concevoir votre architecture SoundBank de sorte que seuls les états pertinents sont chargés. Banque de chargement pour l'État fonction de charger et décharger les banques au fur et à mesure que l'état du jeu change. Par exemple, lorsque le joueur entre dans une zone d'eau, chargez la banque SFX d'eau et déchargez la banque de terrain générique.
De même, les conteneurs de commutation peuvent changer les clips audio en fonction des paramètres du jeu. Assurez-vous que les conteneurs de commutation ne font référence qu'aux objets sonores qui existent dans les banques actuellement chargées. Utilisez le rapport -Inclus Media-Inclus dans Wwise pour vérifier qu'aucune référence bancaire ne fait référence aux médias d'une banque déchargée.
Mettre en œuvre le chargement asynchrone avec les rappels
Le callback peut informer votre jeu lorsque les actifs audio sont prêts. Utilisez-le pour lisser les pics de charge — par exemple, préchargez la banque de niveau suivant pendant un couloir de passage pendant que le joueur marche. Sur mobile, évitez de charger toutes les banques synchronement au démarrage; cela provoque une pause notable et une éventuelle application de veille de chien tue.
Profilage des performances audio sur mobile
Optimiser sans mesure est devinette. Wwise fournit le Profileur WWWIS (ou Connexion à distance pour les diagnostics en temps réel) qui montrent:
- Nombre de voix et utilisation de la voix virtuelle – Si de nombreuses voix sont volées (virtuelle), augmentez la limite vocale ou réduisez le nombre d'émetteurs actifs dans les scènes denses.
- Utilisation de la mémoire par piscine – Vérifiez le pool SoundBank, le pool en streaming et l'utilisation par défaut du pool. Cherchez de grandes allocations inutilisées ou des transitions de mémoire persistante après la scène.
- Utilisation du processeur par catégorie – Décoder audio, traitement des effets et sortie matérielle chacun ont leur propre temps. Si le processeur de décodage est élevé, envisager de réduire le taux d'échantillonnage ou passer à ADPCM pour les sons courts.
- E/S disque pour les fichiers en streaming – Des taux de lecture élevés indiquent que les tampons de streaming sont trop petits ou trop nombreux sont actifs. Si le périphérique de stockage ne peut pas suivre, augmenter la taille du tampon de flux ou réduire les flux simultanés.
- Direction vocale – Utilisez la liste vocale de profiler pour confirmer que les voix virtuelles sont correctement dépriorisées et qu'aucun son critique n'est arrêté prématurément.
Toujours profiler sur les appareils cibles. Un jeu qui fonctionne bien sur un iPhone 15 Pro peut lutter sur un téléphone Android de moyenne portée avec un stockage flash plus lent et moins de cœurs de processeur. Appareil paramètres pour simuler le matériel de bas de gamme en réduisant les limites vocales et la qualité de codage. Pour une plongée plus profonde, lire Blog Audiokinetic sur le profilage Wwise sur mobile- Oui.
Pièges fréquents à éviter
- Surutilisation de PCM non compressés – Même les sons courts se complètent. Un PCM stéréo de 0,3 seconde à 44100 Hz utilise 105 KB. ADPCM le réduit à 26 KB sans différence sonore sur les haut-parleurs mobiles.
- Chargement de tous les SoundBanks au démarrage – C'est l'erreur la plus fréquente. Chargez seulement l'interface utilisateur centrale et la banque SFX essentielle au démarrage; chargez les banques de niveau paresseusement.
- Neglecting to décharger les banques – Ne pas appeler provoque des fuites de mémoire qui s'accumulent jusqu'à ce que le jeu s'écrase. Utilisez des crochets de cycle de vie de scène pour assurer un déchargement cohérent.
- Ignorer la compatibilité mono – De nombreux appareils mobiles ont un haut-parleur unique. Les sons stéréo se mélangent de toute façon. Envisagez de créer une ambiance mono pour économiser la mémoire et réduire le coût de décodage.
- Utilisation de la réverbération de convolution de haute qualité – Extrêmement CPU-lourd et rarement nécessaire sur mobile. Utilisez la réverbération algorithmique avec une faible diffusion et une courte désintégration.
- Réglage trop d'instances vocales dupliquées – Si 8 ennemis jouent simultanément des sons de pas, cela signifie 8 voix. Utilisez la limite de lecture sur le conteneur (par exemple, 4 instances) et laissez la voix virtuelle gérer le reste.
- Sur-optimisation prématurée – Profile d'abord, puis optimisez. Vous pouvez trouver que votre jeu a une salle de tête pour une meilleure qualité sur certains actifs. Abaisser aveuglément tous les paramètres de qualité nuit à l'expérience du joueur sans avantage garanti.
Conclusion
Optimiser l'audio Wwise pour les jeux mobiles est un processus continu qui commence à la création d'actifs et continue à travers des tests et des profils. En choisissant délibérément des formats de compression, en organisant SoundBanks pour correspondre aux scènes de jeu, en harmonisant les paramètres de qualité pour la cible mobile, et en gérant rigoureusement les limites vocales et les piscines de mémoire, vous pouvez fournir une expérience audio qui améliore le gameplay sans sacrifier les performances. Les stratégies décrites ici ont été prouvées dans de nombreux titres mobiles expédiés — des jeux de puzzle occasionnels aux titres d'action 3D complexes. Commencez à les mettre en œuvre tôt dans votre cycle de développement, profilez souvent sur des appareils réels, et itérer.
Pour d'autres pratiques exemplaires, voir le Guide des meilleures pratiques WWWWY et les Optimisation de l'audio pour Mobile section de l'aide Wwise.