Sorelle
Audio and Systems Engineer
Sorelle is a whimsical 3D puzzle-platformer that immerses you in the magical seaside town of Isola Chiara. Play as sisters Alessandra, Bella, and Capri as you explore the magic of sisterhood in a puzzle-solving adventure to restore magic and save the summer festival. Sorelle was developed by a team of ~30 students as an Advanced Game Project at USC Games.
For this project I implemented:
- Character swapping between the three sisters
- Music management system allowing real-time tuning of sound effects to chord progressions
- Three unique abilities with dynamic musical elements
- Wwise integration for multi-positional sounds on Niagara particles
- 300+ lines of voice over with basic procedural animations
- Discord and Steam integration including full controller support and achievements
- Dynamic reverb system based off Tom Clancy’s The Division 2
- Physics based collision audio
- Unique foley for each sister across different surfaces
- Musically synced credits sequence
- Dynamic music systems (progression based layering and a unique layers for each sister)
- Cutscene management system utilizing Unreal’s Sequencer
Sister Swapping
The core mechanic in Sorelle is swapping between the three sisters to utilize their unique magical powers. To prevent motion sickness and create a smooth visual and audio transition I utilized a timeline to move both the camera and the audio listener probe from sister to sister. This systems takes advantage of Unreal’s Player Controller and Player Character seperation to allow for each sister to exist as a seperate entity that can be controlled by the player, or by a Behavior Tree via an AI Controller.
Chord Based Sound Effect System
Sorelle’s sound design is incredibly tonal and musical with each sister being represented by a different set of instruments. This choice required a system to ensure that the sound effects don’t clash with the music. To facilitate this I created a system using Wwise’s interactive music markers to allow our composer to denote the key of each piece of music and any chord changes within the piece. Using the callbacks on these markers the audio subsystem keeps track of the current key of the music and creates an array that stores all notes that fall within the key in MIDI note numbers. The tuned elements of Sorelle’s sound design are set up as various MIDI instruments inside of Wwise. When a sound is played the MIDI instrument is triggered using one of the MIDI notes that is within the key of the current music. This system allows for sounds to be played on a specific scale degree regardless of the current key. The below video shows off this system keeping the ascending scale of Capri’s light ray ability in the same key as the music as the chords change.
Magic Particle Music Layer
Throughout Sorelle glowing magical animals float around and interact with the player. To help support the magic of these experience a unique music layer of bells and sparkles is positioned on these particles. To achieve this efficiently I created a custom Wwise integration for Niagara that allows for Niagara particles to interface with Wwise’s multi-positional emitter system. This ensures that despite there being a large number of particles on the screen there is only one instance of the music playing while still positioning the music based off the particles.
Music Synced Credits
Sorelle’s credits are played over the festival celebration where the player can explore the plaza and play with various toys and talk to NPCs. As an extra flourish for this sequence the credits appear in time with the music using Wwise markers and callbacks to denote times when credits should advance in game.
Procedural Dialogue Animation
With over 300+ lines of dialogue in cutscenes and conversations and limited animation resources Sorelle needed a way to take basic talking animations and contour them to the cadence of the voice actors delivery. This system uses the volume of the voice line to drive the intensity of the animation to make the mouth movements closer to the audio.
Dynamic Reverb
Isola Chiara is a massive play area with lots of different sized and shaped areas. With a large amount of the geometry being changed frequently I created a simple dynamic reverb system utilizing line casts to estimate the size of the area and whether it was indoors or outdoors. These line casts were average over time and used to power the RTPC that controlled reverb in Wwise.
Discord Integration
The Discord integration for Sorelle features the current level and objective as a Discord activity. The activity also shows a small image of the currently controlled Sister.
Additional work I did on Sorelle can be found here.