Marbles vs Music - Visualizer Bars Battle Royale

Описание к видео Marbles vs Music - Visualizer Bars Battle Royale

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   / 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  

Twitter:
  / doodlechaos  

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

Lego Click SFX by CGEffex:
https://freesound.org/people/CGEffex/...

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!

Комментарии

Информация по комментариям в разработке