Audio
Valentin BRIAND
Destination Primus Vita Episode 1 : Austin
EPSILON GAMES Xbox One, PS4, Steam Production d’un an
Equipe:
Valentin Briand : Audio Designer Martin Paradis : Programmer
Antoine Berthiaume : Compositeur
Contenu :
● Introduction
● Vue d'ensemble de l'implémentation Audio
● Utilisation de spline pour système d'ambiance
● Equalisation d'ambiance en temps réel, Sharawadji effect
● Système de respiration
● Système de musique
Destination Primus Vita est un jeu narratif et de puzzles à la première personne, qui vous sera offert de façon épisodique. Nous nous retrouvons dans les années 3040, où une équipe toute spéciale doit se rendre sur Primus Vita pour récupérer l'Eau que des
extraterrestres nous ont volé des siècles
précédemment.
L'équipe 121, composée d'Austin, Coby, Geny, Hayao, Artémis et de BrX, sont en route vers Primus Vita et comme le voyage dure quatre ans, tous les passagers sont mis en état de cryo-sommeil.
NIM, notre IA, leur construit directement dans leurs pensées une simulation tout spéciale qui saura les
préparer pour leur mission à venir : elle stimule, à l'aide des puzzles, leur intelligence cognitive et par des souvenirs qui leur sont propres et
uniques, leur intelligence émotive.
‘‘DESTINATION: PRIMUS VITA IS AN ENJOYABLE NARRATIVE SCI-FI
EXPERIENCE. IT LOOKS AND SOUNDS TERRIFIC AS YOU INVESTIGATE YOUR ENVIRONMENT, SOLVE PUZZLES, DASH THROUGH MAZES, AND NAVIGATE SHORT CONVERSATIONS WITH YOUR COLLEAGUES AND FRIENDS.’’
- 85/100 VENTUREBEAT
Vue d'ensemble de l'implémentation audio
Mise en place de l’engin de son
Unity
Wwise Wwise Unity Integration
Audio Hardware
Epsilon Games Audio Scripts C#
Configuration Wwise/Unity
Primus Vita est composé de 19 scènes, dont certaines d’entre elles ont plusieurs états. Pour faciliter la communication entre Unity et Wwise, chaques scènes est composé d’un composant qui indique à Wwise le nom de la scène chargé ainsi que son état. Unity trigger un switch dans Wwise.
Quelle scène est chargée
Est ce que cette scène contient différents états, quelle est l’état de
cette scène Besoins de Wwise
Envois de Unity
Cette configuration permets une certaine modularité sur le chargement des scènes. Elle permet de réagir rapidement à l'intégration d’une nouvelle scène ou la modification de l’ordre de chargement des scènes.
Utilisation de spline pour système d'ambiance
Dans la première scène le joueur évolué sur un chemin composé de différents environnements. Le joueur débute dans une caverne ensuite sur un chemin
extérieur de pierres et évolue au travers de différents canyones. Pour sonoriser la scène, l’utilisation de la spline permet de contrôler les transitions entre les
différents environnements.
Ls spline est configuré sur l'ensemble du chemin. Cette dernière est composé d’un Game Object qui va suivre le joueur est son avancement le long de la spline. Ce Game Object va envoyer une valeur de Rtpc (Real-Time Parameter Controls) à Wwise indiquant la position du joueur dans la scène. Cette Rtpc aura pour valeur minimum 0 (position initial du joueur) et 100 (position final du joueur). Un blend
Container paramétré pour suivre cette valeur de rtpc va déclencher les différents blend container enfant de chaques parties du chemin.
Il y a 12 parties différentes sur le chemin qui sonnent différemment. Le blend container parent contient les
douze sous blend container enfants correspondant. Il est donc possible de sonoriser les différents environnement de cette scène tout en contrôlant leurs transitions. Par exemple il est possible de filtrer le son quand le joueur passe derrière un rocher etc ...
Gameplay Video
Video :
Equalisation d'ambiance en temps réel (Wwise music callbacks, L’effet Sharawadji )
Le but est d'equalizer les ambiances sur les même fréquences que la note de musique joué en temps réel pour créer un effet sharawadji.
Unity +
Epsilon Games Audio Scripts C#
Music Segment
Ambient container
music playing a C
Equalize C frequencies
Wwise Unity
Rtpc Value Wwise callbacks
- RTPC
Créer une Rtpc ( appelé dans l’exemple RTPC_Note).
Cette Rtpc est composé de douze valeurs allant de 0 à 11. Chaques valeurs correspondent a une des douze notes du mode tempérée.
Chaques notes est composé de huit
différentes fréquences
- Wwise EQ
Pour contrôler 8 fréquences en même temps nous avons besoins d’une EQ a 8 bandes de fréquences. Wwise EQ permet seulement l’utilisation de trois bandes de fréquences.
Il faut donc ajouter trois Wwise EQ sur le container d'ambiances pour pouvoir utiliser huit bandes
La première bande de frequence controle la première fréquence de chaque notes de musique, le deuxième bande contrôle le deuxième fréquence, ainsi de suite ...
C #/b D #/b E F #/b G #/b A #/b B
bande 1 bande 2 bande 3 bande 4 bande 5 bande 6 bande 7 bande 8
- Custom Cue sur les Music Segment
Ajouter des custom cue sur chaque note des music segment concerné en les nommant par leurs note de musique
- Wwise Callbacks + Custom Script
Les callbacks de Wwise sont des notifications d'événements envoyé par Wwise à l’engin de jeu.
Dans notre cas nous avons besoins de savoir quand un custom cue est atteint et quel est le nom de la note indiqué. Pour cela on peut utiliser la fonction MusicSyncUserCue Callbacks qui est la notification correspondant à un événement de custom cue
A l’aide d’un script il nous faut récupérer cette information et renvoyer une valeur de rtpc correspondant à la note reçu.
Le symbole # ne pouvant être utilisé , j’ai utilisé les bemol
Par exemple , quand un custom cue marqué Do est atteint dans Wwise, Unity lit la notification reçu par le callback est renvoit la valeur de RTPC correspondante à cette note.
Cette valeur de Rtpc va alors modifier les fréquences de l’EQ placé sur le container d’ambiances pour s’adapter à la note joué.
Plusieurs fois dans le jeu, le joueur est forcé de contempler l'environnement et cet effet permet de donner une sensation de beauté et de plénitude dans la contemplation du paysage.
Gameplay Video Video :
Système de respiration
Unity + Epsilon Games Audio Scripts
C#
Séquence du cycle
de respiration
Inspiration
Expiration
Calme
Stressé
Paniqué Calme
Stressé
Paniqué
Fort Moyen Faible Fort Moyen Faible Fort Moyen Faible
Fort Moyen Faible Fort Moyen Faible Fort Moyen Faible Etat
Mental : Valeur de switch Etat Physique:
RTPC vitesse du joueur
Inspiration
Expiration