Audio Reactive Animator

The Audio Reactive Animator can be used to control a Unity Animator Controller and make it react to the audio that is being played.

The Audio Reactive Animator receives the audio analysis data (beat detection and energy levels) from the application, processes it, and sends the results as parameters to the corresponding Animator Controller component.

The Audio Reactive Animator does not only allow traditional animations to react to audio, but thanks to Unity’s Animator Controller and its state machine, in combination with Unity Animation Clips, it can also be used to control any exposed component property in a sequence of logical steps, enabling users to create complex logic.

Potential use cases for the Audio Reactive Animator are:

  • A crowd that dances in sync with the music
  • Special effects (ex: fireworks, smoke) triggered when a beat is detected
  • Moving head lights animated in sync with the music
  • Switching between different light controllers when audio Energy Levels change

The AnimatedSparks prefab (Path: EntroPi/SDK/Example/AudioReactive) in the Example Environment scene included with the SDK, demonstrates how to use the Audio Reactive Animator to control a particle effect system.

The Audio Reactive Animator can be tested in the Unity Editor using the Audio Reaction Emulator.

To control the flow of the state machine, the Audio Reactive Animator assigns the following parameters to the Animator Controller:

  • Beat Detected (Trigger): A trigger that is set on each frame a beat is detected
  • Beat Intensity (Float): A value between 0 and 1 that fades out after a beat is detected.
  • Energy Level Changed (Trigger): A trigger that is set once the Energy Level changes
  • Energy Level (Int): The current energy level represented as an integer. 1 (Low), 2 (Normal), 3 (High)
  • Energy Level Duration (Float): The time since the last energy level change
  • Random Float (Float): Random value between 0 and 1 (Changes each frame)
  • Random Int (Int): Random integer value between 0 and 100 (Changes each frame)

Please note that the names of these parameters are case sensitive!

  • Beat Detection Delay: The time (in seconds) with which the beat detection is delayed.
  • Beat Fade Duration: The time (in seconds) it takes for the Beat Intensity parameter to drop to 0 after the last beat was detected. Also affects how often the Beat Detected Trigger is set.
  • sdk_component_audio_reactive_animator.txt
  • Last modified: 2019/10/09 13:39
  • by 123