Marbles vs Music - Visualizer Bars Battle Royale

3,016,816
0
Published 2023-03-01
Chaos League is my marble race series that spawns YOU in. Create your character with custom images, colors, victory messages and more. Climb the leaderboards and see how you rank among the competition. How do I join for free? It’s simple, just become a valid patron at patreon.com/doodlechaos and you will be spawned in to the next Chaos League video automatically! You can join for FREE with Patreon’s new “Free Trial” feature! I’ve maxed out the duration. The higher tier you pick, the easier it will be to spot your character in the crowd. (PSA: If you cancel before the video comes out, I won't be able to draw your information from the API and you won't spawn in. Custom pledges below "Doodler" tier will not spawn in.)

Welcome to episode 3 of Chaos League. I built my own physics based music visualizer just to make this video. It's mostly procedural along a line renderer, which is how I was able to curve the visualizer bars into different paths. Super fun to build, but boy did it turn out to be way more challenging than I was expecting. I've been learning a lot while working on this.

Season 1 Uploads
Chaos League Ep 1 -    • Marble race, but each marble is a rea...  
Chaos League Ep 2 -    • Can you escape me?  

How do I customize my marble?
Your marble will be spawned in with your current Patreon profile picture image. Display names are taken from your Patreon name as well. You can update these at any time on Patreon. Other customization options (such as victory message and name color) must be modified by logging in with your Patreon account at doodlechaos.com. Don’t forget to add a victory message to display on the top ten leaderboard!

Have other questions? Ask in the Chaos League Discord Text Channel.
discord.gg/VZPKr8VvRE

Twitter:
twitter.com/DoodleChaos

Music:
[Electro] Nitro Fun - Cheat Codes [Monstercat Release]
   • [Electro] Nitro Fun - Cheat Codes [Mo...  

Lego Click SFX by CGEffex:
freesound.org/people/CGEffex/sounds/104818/

My main takeaways from this project (Mostly me rambling just to clear my head)
1. Unity Package Manager is amazing! Learn to make your own packages and you will become 10x more organized. It is so cool that I can make a change to my visualizer spectrum package, and then update it into all other unity projects with ease. No more duplicate instances of code across projects.
2. Animation does not play well with kinematic rigidbodies. Challenge: Make super fast moving bars animated to music interact naturally with rigidbody physics, and exert the proper force on the balls based on their change in growth velocity on the bar from the music. Making the bars grow while also maintaining the correct velocity was a tough challenge. My solution was to create "caps" for each of the bars that are a constant scale, then scale a secondary base mesh underneath it. Now how should I move these caps? First failure, PID controlled caps, it looked correct, but the balls kept glitching through the bar colliders. Second failure, making custom config joint sliders for each of the caps so that they are locked into a certain range of motion. This also had crazy bugs in the physics. Sometimes the balls would stick to the top even as the bars were moving down against gravity. My theory for why this method was failing the penetration resolution tried to push the bar away to resolve the collision, rather than the ball, but the rigidbody world somehow wasn't aware that I had a constraint due to the config joint? IDK. Constraints + Rigidbodies in unity have been buggy in my experience, but I'm probably doing something wrong. Finally, the working solution turned out to be the simplest. All I had to do was make the rigidbodies kinematic and animate them with Rigidbody.MovePosition(). This updates the velocity correctly and viola, no more glitches!

Fun facts:
- I pulled an all nighter just to get the physics correct when the marbles impact the music visualizer bars.
- I added support for emojis in the victory message on the leaderboard!

All Comments (21)
  • @rbunpat
    IDK why but seeing the ball get thrown around when the bass drops is hilarious to me
  • @rwqfsfasxc
    My random picks were: Richtofen (224th) Brendon (138th) Klaod (100th) not real great here, but I got right on 100! so that's cool
  • @Klabbity_Kloots
    2:36 Rest in peace, Backwards "F" Guy. You were the only ball I could keep track of.
  • @TheWhanos
    i think you could create the next great rhythm game
  • It’s a shame none of the balls used cheat codes to survive the level. Btw great level! And yes, I AM saying that before I even watched it.
  • With some of these songs choices this is starting to feel more and more like Just Shapes and Beats Marble Edition and I love it.
  • @foxxyytofficial
    That was amazing, and even better with the JSAB soundtrack
  • @CurlyBolt
    This feels very inspired by just shapes and beats
  • @Gizmote
    Insanely clever concept, great execution! One of the most innovative channels I know of, especially with regards to audience participation. Amazing work!
  • @RatchetSly
    I saw that trap in the middle with the Just Shapes & Beats colours of cyan and pink, very good.
  • @sirgabealot01
    As both an Animusic admirer and a past Jack Spero fan, words can't do justice to emphasizing how much I love this series. Definitely hoping this becomes a regular thing, this is currently one of my favorite things to watch. Great work as always.
  • @lunarr8499
    Yeah Cheat Codes! My favourite jsab level music! The visualisers look so cool and music sync is very well done,
  • Let's be honest JSAB music is the best (just shape and beats)