1.5.0 - The All-Natural Update
THIS IS A BIG UPDATE! IT IS REQUIRED THAT YOU DELETE YOUR VRCBCE FOLDER BEFORE UPDATING! (THIS INCLUDES THE "FSP" FOLDER; I GOT RID OF THAT, YOU DON'T NEED IT ANYMORE)
Hello! Apologies for the multi-week delay: Panda and myself have been getting increasingly busy with VRChat world work. Panda's working on her spookality entry while I got sidetracked with the latest VRCPrefabs world jam and made something for it (and subsequently took a mini-break from Unity afterward). On top of that, I've had to balance a few other side projects for people that have approaching deadlines as well (like recording voice work for a certain annual animation series), leaving sparse time for pool table work (outside of the usual free time playing video games).
Let's get to it then! ✨
NEW COTTONFOX TABLE FRESH OUT OF THE FOREST
YES. THEY'RE LITTLE FOXES. THEY SQUEAK WHEN THEY COLLIDE WITH ANYTHING. 10/10
The ever-skilled @jamestruhlar (Juice) decided to create a pool table themed around their CottonFoxes: an avatar base they created of a tiny plush fox resembling a ball of cotton. They're cute, round, fluffy, and now can be smacked into each other at high velocities for your amusement!
The table itself is fantasy-like and themed around nature, modeled in a similar style to previous works focused on their CottonFoxes, like the CottonFox Isle
Unlike the other tables, you may notice that this one is floating in the air. While not necessarily special or cool on its own, this DOES allow the table to take advantage of a particularly cool new feature...
Elevation changes
Walking around to the backside of the table will reveal to you a nearby floating handlebar pickup that you can grab and move. The entire table is tied to the pickup using a Position Constraint (locked to the Y axis), and thus- allows anyone to move the table up and down to scale with their height accordingly! You can play a game while the table is at floor-level, almost like you're playing on the ground under a canopy of trees; and you can also play a game high up in the air, with relevant parties playspace'd up to get out of the way of people- perhaps having conversations below. Now, we didn't have time for this release to implement a "reset height" button (that's planned for 1.5.1), so.. uh- we kindly ask people to not be a dick about table placement 😅
Juice and myself did a fair bit of back-n-forth work to ensure that the table's visuals were top notch while being as performant as possible (more can be done still!). Overall, I'm happy with how it turned out aesthetically and am more than glad to welcome it to our roster!
(Oh and by the way: The table has a tiny phone propped against one part of it, and the phone's screen takes up a decent amount of UV space... allowing you to change it to your hearts content 😉)
AWESOME! ANY OTHER COOL THINGS TO TALK ABOUT?
LOTS of work was done to improve collision behavior after a ball has been pocketed. The issues of balls often "flying off the table" or "rolling back onto the table" when being pocketed at high velocities or at weird angles has been my personal biggest pet-peeve. And I've toyed around with a lot of solutions to try and ultimately have my cake and eat it too. I think I've conjured up a solution in the form of a special set of box colliders wrapping around each hole for both the primary and metal tables, as well as modifying the metal table's custom colliders to be more lenient AND greatly reduce the chance of balls getting stuck in the middle! It's more effective on the metal table than the primary one; the primary table still has a decent chance of bounce-back when pocketing a ball at max velocity, but there's no way around this without causing other issues at this time. However, due to the basically nullified chance of balls flying OFF the table now, I was able to double the velocity clamp which makes pocketed balls look far more natural! Extensive testing has shown the metal table to be almost entirely reliable even with heavy use; you have to actively try to make a ball bounce back or get stuck in the rails!
There are more elegant solutions we can still experiment with in the future (like toggling larger colliders but only for a brief period of time immediately after a ball is pocketed, or fine-control the velocity programmatically), but this will do for now.
We've also gone and done a number of quality-of-life changes to the various UI panels! We've added support for multiple score panels existing in a world (with the score panel itself being abstracted into its own prefab), all mirroring the scores of the current game. On the prefab itself, we've utilized this by hiding the info canvas during gameplay and replacing it with a secondary score canvas; allowing players to check the current state of the game without having to move to a particular side. I also painstakingly went through and shifted values around to make the structure of all the UI canvases cleaner and more sanely scaled. Additionally, @daalta (Faxmashine) graciously provided us with a better rounded rectangle UI sprite for use in our canvas backgrounds; no more pixelated canvases!
Okay, aside from that... I feel as if I owe you all an apology. You see.. all this time, we here at VRCBCE have been deceiving you about the quality of our textures. All this time, you've been playing 9-ball with balls so.. digital. So utterly fake looking. It's almost as if you're just looking at the normal 8-ball texture but.. recolored. Gross. It's a good thing that @synergiance took it upon herself to create a texture based off physically referenced american pool balls with hand-made numbers to boot! Check it out!
NEAT! WHAT ELSE IS NEW?
- Multiple changes were made to make the prefab more resiliant against misconfiguration and import errors. Several components no longer require direct references to other components to reduce the chance of nested prefabs breaking things "just cause". Panda also made changes to mitigate the Utilities.IsValid errors that a few people were having on import due to U# getting confused. If you were having those issues, this should fix things for you! (Make sure to do a clean install)
- The 4-ball point visual system has been completely reworked to utilize a particle system now rather than its old custom solution. This means we can both take advantage of billboarding AND make the point particle more visually appealing with stuff like dynamic scaling and fading-to-transparency! It's probably more performant too?? Good stuff.
- HDR color values were exposed for the table's colors in the Core Table Code prefab, allowing you to not only change the colors the table uses- but also their emission!
- Multiple changes were made to fix wildly incorrect ball pocket positions after a table was enabled mid-game (a common occurance in worlds with the table off by default, including the most popular movie world at the moment 😅)
- Fixed the cue ball oftentimes endlessly spinning after being sunk on the metal table.
- Fixed the issue where the cue grips were able to collide with and push the balls out of the metal table's rail system (#114)
- The desktop camera now works with Post Processing... oops. 🥴
- Finally settled on a lightmap scale for the metal table. (It's 0)
- Some misc. prefab cleanup of random things
- And of course, we removed Herobrine
FINAL NOTES
I've changed the README a fair bit and added a section about properly adding credit for your worlds. The TL;DR is that it's best to credit "VRCBilliards" as to cover everyone fairly and reflect the new organization's name. Please go give that a look!!