AMusicLayoutBase
(AActor)
(AActor)
MusicLayouts hold a collection of MusicSegments and are made to handle tempo-synched horizontal music transitioning. The transition rules are defined by the designer to be iterated through at runtime when the layout decides what transition to use based on the current music and the incoming music. Game systems primarily interact with MusicLayouts through game parameters and the MusicManager, which can be gotten through the AudioManagerSubsystem.
NOTE: When used within the music system, MusicLayouts will automatically listen for game parameters regardless of "Class Default" settings.
NOTE: A MusicLayout can also be used outside of the music system so long as they are a manually spawned like any other actor and managed directly.
Override this function to set the default MusicLayout behavior when called.
Stops all currently playing music and clears all transitions.
Override this function to add code that responds to the "next" command being called from the audio system.
Override this function to add code that responds to the "previous" command being called from the audio system.
Override this function to add code that responds to the "reset" command being called from the audio system.
Override this function to add code that accomodates any trigger called using FName labels.
Call this function to play a music stinger in sync with the current music playing. If no MusicSegment is playing the stinger will play immediately.
Call this function on BeginPlay() to set up the transition rules for the music layout using MusicSegments attached to the layout. The input is an array of MusicTransitionInstructions that are used to determine what transition should happen based on the current music and the queued music. Transitions are iterated through from lowest to highest index until a match is found.
Each rule can have two MusicTransitionInstructions
Main Transition = This transition is the only data considered when queueing the next music. It is the final destination of this transition rule.
Intermediate Transition = This transition is only used when a transitionary piece of music needs to be played. This can either be a whole section or something like a cymbal wash to smooth out the main transition. The "Incoming Music" property CANNOT be null, otherwise it will be ignored. When an intermediate transition exists along with a main transition, there are 2 transitions that get added to the queue. The first is the intermediate transition and the second is the main transition and they are evaluted in that order. This means that cue settings for the main transition will use the intermediate transition music's bpm and time signature.
NOTE: A default MusicTransitionInstruction is automatically added to the bottom of the transition rules for all MusicLayouts.
Call this function to add a music transition to the queue. Transitions are evaluated in the order they are added. Clearing the transition queue means this transition will be the next one evaluated after the current transition. If overriding the current transition, this transition will immediately replace the current transition.
Call this function to define and add a unique, oneoff music transition to the queue. Transitions in the "transitionRules" are not considered.
Clears the transition queue. Does not clear the current transition.
When a MusicLayout is not being used with the music system call this function manually to pass AudioSwitchParameters to the MusicLayout. This will also pass those values to the MusicLayout's MusicSegments.
When a MusicLayout is not being used with the music system call this function manually to pass AudioFloatParameters and float values to the MusicLayout. This will also pass those values to the MusicLayout's MusicSegments.
When a MusicLayout is not being used with the music system call this function manually to pass AudioSwitchParameters to the MusicLayout. This will also pass those values to the MusicLayout's MusicSegments.
When a MusicLayout is not being used with the music system call this function manually to pass AudioFloatParameters and float values to the MusicLayout. This will also pass those values to the MusicLayout's MusicSegments.
This function is only needed when a MusicLayout is spawned outside of the music system and you would like the layout to be able to get parameters linked to an actor in the KAudioSystem. The music layout will still need to be manually controlled and passed parameters.
Gets the local AudioSwitchParameter value for an AudioGroupParameter depending on how the MusicSegment was spawned.
Gets the local float value for an AudioFloatParameter depending on how the MusicSegment was spawned.
Override this function to add code that will match custom functionality with specific AudioSwitchParameters within an AudioGroupParameter received from various sources depending on how the MusicSegment was spawned.
Override this function to add code that will match custom functionality with specific AudioFloatParameters and values received from various sources depending on how the MusicSegment was spawned.
Override this function to add code that will match custom functionality with specific AudioSwitchParameters within an AudioGroupParameter received from various sources depending on how the MusicSegment was spawned.
Override this function to add code that will match custom functionality with specific AudioFloatParameters and values received from various sources depending on how the MusicSegment was spawned.
Gets the global AudioSwitchParameter value for an AudioGroupParameter.