YetAnotherSound

UE5 Audio System & Editor Tools

A UE5 C++ audio plugin that lets designers manage sounds through Gameplay Tags, load them based on the current game context, and visualize audio behavior directly in the level.

Engine

Unreal Engine 5

Engine

Unreal Engine 5

Language

C++/HLSL

Language

C++/HLSL

Type

Audio System & Editor Tools

Type

Audio System & Editor Tools

Role

Team Lead & Systems

Role

Team Lead & Systems

Team

Build for Game 'Sken'

Team

Build for Game 'Sken'

Focus

Audio Designer Workflow

Focus

Audio Designer Workflow

Status

Work in Progress

Status

Work in Progress

Demo

Team Context

YetAnotherSound started as part of the audio workflow for Skén, where gameplay systems such as footsteps, dialogue, ambience, music, and environmental interactions all needed to trigger sounds. Direct sound references worked for simple cases, but changing an asset, attenuation setting, or concurrency setup meant finding and updating every place where that sound was used. I built the system to give designers and programmers one shared place to configure sounds. Gameplay code only needs to know the sound’s Gameplay Tag, while the assigned sound asset and its settings remain inside a Sound Stack. The plugin is still work in progress. For this case study, I am mainly focusing on the completed designer workflow around Sound Stacks and the 3D attenuation visualizer rather than presenting every experimental audio feature as finished.

Responsibilities

Get Centralized Audio Configuration

Target is Responsibility

Created a tag-based Sound Stack system that gives audio designers one central place to assign and adjust sound assets, surface variations, attenuation, and concurrency without searching through gameplay Blueprints or C++ code.

Accessible Sound Editing Workflow

Built a dedicated editor for managing Sound Stacks that combines stack creation, sound entry management, search, and property editing into one user-friendly interface. This makes the workflow more approachable for team members with less Unreal Engine experience.

Context-Based Sound Loading

Developed a stack-based runtime workflow that groups sounds by level or gameplay context, loads only the assets required by active stacks, and allows the same Gameplay Tag to resolve to different sounds through stack priority.

In-Editor Audio Visualization

Target is Responsibility

Created an editor visualization tool that makes audio behavior visible directly in the level, including attenuation previews for tag-based sounds that no longer have a placed Audio Component to display Unreal’s default visualization.

System Overview

The system separates sound configuration from the code that plays the sound. The audio team configures sounds inside Sound Stacks. Systems then request sounds through Gameplay Tags without needing direct references to the sound assets. At runtime, a subsystem manages which stacks are active, loads the required sound assets, and finds the correct sound for each tag. The attenuation visualizer is a separate system, that lets users inspect the attenuation settings without needing a permanent Audio Component. The following diagrams show the editor workflow, the runtime lookup, and how the different parts connect.

High-Level Architecture

Designer Workflow

Runtime Sound Flow

Before / After

Drag with LMB / RMB / MMB to pan · Ctrl-scroll to zoom · Pinch to zoom · Double-click reset

System Breakdown

Centralized Audio Configuration

Accessible Sound Editing Workflow

Context-Based Sound Loading

In-Editor Attenuation Visualization

Problem

Sound assets and their settings were often assigned directly inside the Blueprint or Audio Component that played them.

This meant that an audio designer might need to search through Blueprints, actors, or C++ code just to find where a sound was configured.

Settings such as attenuation and concurrency could also be stored in different places. Changing a sound was therefore not always as simple as replacing one asset.

Solution

I created Sound Stacks that store sounds using Gameplay Tags. Gameplay systems only request a tag such as:

Audio.Sounds.Player.Footstep

The Sound Stack decides which sound asset and settings belong to that tag. This gives the audio team one place to change the sound without editing the system that uses it.

Sound Definition Setup

Sound Definition Settings

Sound Stack Editor

Each sound definition keeps the sound asset and its main playback settings behind one Gameplay Tag.

Result

Programmers can request sounds without storing direct references to the sound assets.

Audio designers can replace sounds, change attenuation, update concurrency, or add surface variations without searching through the Blueprint or C++ system that plays the sound.

Designer Workflow

A typical designer-facing setup follows this flow:

Create a Sound Stack

Open the Sound Stack Editor, enter a name and save path, and create a new Sound Stack.

Add a Sound Entry

Select the Sound Stack and add a new sound entry, that you want to configure.

Configure the Sound

Assign a Gameplay Tag that describes what the sound is used for. Then assign the assets.

Activate the Stack

Push the Sound Stack when entering the level or gameplay state that needs its sounds.

Play the Sound

Play the sound using its Gameplay Tag.

Visualize the Attenuation

Activate the visualizer and connect it to the source.

Challenges and Tradeoffs

Challenges & Tradeoffs

Keeping Sound Stack Data in Sync

The tag is both the sound’s identifier and the key used inside the Sound Stack map. Changing it required updating the map and keeping the editor in sync.

Challenge

Visualizing Tag-Based Sounds

Tag-based sounds are spawned at runtime and do not have a placed Audio Component. This meant Unreal could no longer display its attenuation.

Challenge

Flexibility vs Default Unreal Visualization

The tag-based workflow made sound setup more flexible and kept it in one place, but removed Unreal’s built-in attenuation preview. Thus the custom visualizer.

Tradeoff

Impact

Improved collaboration between departments by providing a dedicated editor for managing and accessing sounds.

Reduced the need to search through gameplay Blueprints or C++ code when changing or iterating on sounds.

Improved loading performance and reduced memory use by grouping sounds based on the current level or gameplay context.

Made attenuation strength easier to understand by displaying it as a custom 3D volume.

What I Learned

Designer-facing tools are valuable because users should not need to understand the internal data structure to use a system.

Gameplay Tags are useful for separating systems, but they also need good search and debugging tools.

Debug visualization is especially important for systems such as audio, where most of the behavior is normally invisible.

What I Would Improve

Add an Active Sound Stack Debugger that shows the current stack order during Play Mode.

Add a Preview button to sound entries so they can be tested directly from the editor.

Show currently playing sounds with debug text during Play Mode.

Connect the attenuation visualizer directly to Sound Stack entries so their assigned attenuation can be previewed faster.

Add documentation and an example level that explains the full workflow.

Continue developing the environment audio zone and emitter systems, including portal-based sound propagation similar to Wwise workflows.

Copyright © Julian Serve 2026

Copyright © Julian Serve 2026

Copyright © Julian Serve 2026