When applying smoothangle to a union operation part to smooth out the angles for the part by applying 180 to the part that is selected, smooth angle will not apply. I have done a refresh reinstall of roblox studio completely but still get the same result of smooth angle that will not apply to any of the union operation parts now.
UPDATE:
Performed another fresh reinstalled on roblox, and roblox studio refusing to perform a smooth angle onto any union operations at all, does anyone know a fix for this?
Hi, I’ve looked into this issue and I see what’s happening. We’re currently replacing the smoothing algorithm with one that should be considerably more predictable, but unfortunately we didn’t take care of the fallback paths correctly.
I have a fix ready that I’ll get turned on as soon as possible, but it will be a couple of weeks before I’m able to flip it on. I’m also looking into flipping an existing flag to fix this issue sooner, but I can’t promise anything there.
As a workaround for the time being, although it’s a little annoying, you can use the GeometryService API, which correctly routes into the new smoothing algorithm. Pasting this in the command bar would work for most cases:
local results = game:GetService("GeometryService"):UnionAsync(workspace.Union1, {}); results[1].Parent = workspace.Union1.Parent; workspace.Union1:Destroy()
If you do try it, let me know if it produces bad results for any of your use cases! It should look better a lot of the time.
Sorry for letting this bug slip through and go unfixed for a matter of weeks. Thanks a lot for reporting it and drawing attention to this issue! Please don’t hesitate to report bugs as soon as you’re confident something is wrong.
Paste it in the command bar and change the bits saying “Union1” to whatever the union is called that you want to smooth. It will replace the union with one that allows smoothing.
For me it deletes part of the union however so I would be cautious using it.
Can I just point you towards this bug that may be related, or perhaps coincidence, but seems to have broken in a similar timeframe.
I’ve also noticed (before that bug linked happened) that the Smooth Angle didn’t work properly on the new geometry once SubstituteGeometry had been used and I had to set the angle to 0 then back to a non-zero value in order to get it to smooth it.
An easier to use version of this would be as follows, this will work with the active selection rather than requiring you to specify the name of the part in the script.
local sel = game:GetService("Selection"):Get()
local part = sel[1]
if not part then return end
local results = game:GetService("GeometryService"):UnionAsync(part, {})
results[1].Parent = part.Parent
part:Destroy()
Here’s a quick plugin that adds Union and Intersect actions that uses the GeometryService method above. It should work roughly as the standard Union and Intersect does except for slightly different behaviour with negation (as Negative parts can’t be unioned in the same way via the API). It supports undo and seems to work fine in my quick tests.
Hi, the new smoothing angle algorithm is really just a necessary part of bigger changes we’re making, so it wouldn’t work as a beta feature.
A plugin button would work, but as you may have noticed, Undo doesn’t work with those commands. Instead, I’ve flipped the new algorithm off, which will make smoothing work as before when using the studio buttons. The downside is that smoothing will NOT work when using the GeometryService API, such as the scripts shared in this thread. The flag flip is rolling out right now.