[ENHANCEMENT] Implement animation priority #6370
                
     Open
            
            
          
  Add this suggestion to a batch that can be applied as a single commit.
  This suggestion is invalid because no changes were made to the code.
  Suggestions cannot be applied while the pull request is closed.
  Suggestions cannot be applied while viewing a subset of changes.
  Only one suggestion per line can be applied in a batch.
  Add this suggestion to a batch that can be applied as a single commit.
  Applying suggestions on deleted lines is not supported.
  You must change the existing code in this line in order to create a valid suggestion.
  Outdated suggestions cannot be applied.
  This suggestion has been applied or marked resolved.
  Suggestions cannot be applied from pending reviews.
  Suggestions cannot be applied on multi-line comments.
  Suggestions cannot be applied while the pull request is queued to merge.
  Suggestion cannot be applied right now. Please check back later.
  
    
  
    
Linked Issues
True... or False... call it.
Description
Characters had a very weird implementation of animation priority. Singing was set to have the highest priority, despite not even being set to ignore other animations, overriding any other animation that may play instead. It was a mess.
This PR introduces a json-configurable animation priority system, which should hopefully make the animations a lot more consistent. The new system supports adding asterisks to animations, in case multiple animations should have the same priority. Any animation that isn't in the configurable array assumes the index of -1 and therefore has the highest priority. The default animation priority queue is
["sing*", "idle"]or["sing*", "dance*"], meaning that sing and miss animations should happen before the idling animation(s).Caution
This is a breaking change for mods using
ignoreExclusionPref, as well as for the base game scripts using it! I've opened a PR in the assets repo (FunkinCrew/funkin.assets#295) that should be merged as well so that there's no script errors being thrown on the screen for every character initialization.Screenshots/Videos
pogchamp.vs.hey.mp4