For testing / learning purposes I wanted to create a complex, seamless, multi layered adaptive music system in Unreal Editor using the Kysmet system. Because the timer objects can be unstable at times, I wanted to create a system that didn’t rely on those. Instead, I used the length of some audio files as timers. At the end of those the system would decide whether to switch between music levels. The downside of this system is that it doesn’t always respond quickly to changes in the game, but the emphasis of this experiment was more on seamless transitions than responsiveness.
The system consists of 4 different tension levels;
- Level 1, Rest; Low intensity, low tension
- Level 2, Tension; Increased intensity, but no action yet
- Level 3, Action; High intensity, action / fighting
- Level 4, Climax; Very high intensity, boss battle
The music system contains the following features:
- Each level is built up from different musical loops, playing simultaneously.
- Any level can seamlessly transition to any other level.
- If no switch in music is activated, each level alternates between an “A” and a “B” part for that level after a certain amount of time.
- Whenever a level switch is made, a transitional stinger sound is played.
- The music can be stopped, with different layers fading out smoothly.
The demonstration video music starts at level 1, progressing to level 2, 3, 4, back to 2 followed by the music stopping and fading out. Each switch is activated by pressing the buttons, but these could easily be replaced by invisible trigger boxes, enemy count, amount of health, etc.