Source Of Truth#
- Task:
TODOS.phase-72.72.22.1.11 - Contract: MusicPlaylist_V2_Contract.json
- Core types:
EV2MusicPlaylistOrderMode,FV2MusicPlaylistTrack,FV2MusicPlaylist,FV2MusicPlaylistRequest,FV2ResolvedMusicPlaylistTrack, andFV2MusicPlaylistCatalog - Builder:
UV2AudioBlueprintLibrary::BuildDefaultMusicPlaylistCatalog - Validator:
UV2AudioBlueprintLibrary::ValidateMusicPlaylistCatalog - Resolver:
UV2AudioBlueprintLibrary::ResolveMusicPlaylistTrack - Registrar:
UV2AudioSubsystem::RegisterMusicPlaylistCatalog - Runtime selector:
UV2AudioSubsystem::SelectMusicPlaylistTrack
State Coverage#
The default MusicPlaylistSystem.V2 catalog provides multiple authored tracks
for each launch adaptive state that needs rotating music:
Exploration:Music.Playlist.Exploration.SequentialwithMusic.Playlist.Track.Exploration.MarketandMusic.Playlist.Track.Exploration.RooftopsTension:Music.Playlist.Tension.ShufflewithMusic.Playlist.Track.Tension.PulseandMusic.Playlist.Track.Tension.UndercurrentCombat:Music.Playlist.Combat.ShufflewithMusic.Playlist.Track.Combat.DrumsandMusic.Playlist.Track.Combat.Brass
Sequential and Shuffle ordering are both authored, and every playlist keeps
repeat avoidance enabled.
Runtime Behavior#
FV2MusicPlaylistCatalog::ResolveTrack chooses the requested playlist or the
first playlist for the requested EV2AdaptiveMusicState. Sequential playlists
walk forward from SequenceCursor; shuffle playlists use a stable hash of
playlist id, state, cursor, and ShuffleSeed. When LastTrackId or
RecentTrackIds includes a candidate and another valid candidate exists, the
resolver filters the recent track and returns a non-repeat result.
UV2AudioConfigAsset owns the default catalog. UV2AudioSubsystem registers
it, exposes SelectMusicPlaylistTrack, stores the last accepted
FV2ResolvedMusicPlaylistTrack, and publishes snapshot evidence for track
count, playlist count, multiple-track coverage, shuffle/sequential coverage,
repeat avoidance, last playlist id, and last track id.
Validation Commands#
python3 V2/ue/Tools/check-v2-music-playlist.py
python3 V2/ue/Tools/check-v2-music-ducking.py
python3 V2/ue/Tools/check-v2-audio-module.py
python3 V2/tools/validate-v2-docs.py
python3 -m json.tool V2/ue/Content/V2/Audio/MusicPlaylist_V2_Contract.json