If we use a UICorner in a UI Element and set the CornerRadius to 0, 0 on a normal Frame, does it only affect that UI Element that the UICorner is applied to?
I think it’s because it’s part of the GuiObject class and has ClipsDescendants as an inherited property from it. To solve this they could either:
- Create an entirely new class for it OUTSIDE the GuiObject class (which could break some
:IsA()
checks and is kinda just weird) - Ignore the property (Not consistent with other gui objects, but doesn’t break
:IsA()
)
It makes sense to just ignore the property, but they might do something about it later about it
THANK YOU SO MUCH ROBLOX!
I’m convinced this is the greatest update to the UI system so far, and opens up so many new possibilities, I’m really looking forward to making stuff with this.
If you cant tell from the image, you can essentially use canvas group for a way better alternative ClipsDescendants, now supporting rotation and UICorner, which it doesn’t on normal ui objects.
This is a great feature and I’m very excited to not have to make complicated transparency tweening functions!
im glad performance was accounted for as well, very interesting announcement, do you have an idea to when this will release?
It’s great that it’s finally here, but it turns out this feature isn’t as useful as I thought it would’ve been due to a couple of issues.
The first is that it appears very blurry, even in the highest render quality.
CanvasGroup
Frame
It would be nice if there was some way to force it to render in the highest quality possible, as this makes my interface look really low-quality, and is the reason I don’t like to use RichText currently and often avoid it due to the blurry scaling of it. This seems to suffer with the same issue as some dimensions it being rendered in look decent, but most really awful.
Secondly, I understand that due to technological concerns, ZIndexBehavior must be “Sibling”. I make all of my interfaces in “Global”, especially considering it seems to automatically pick the deepest one first if it can - similar to Sibling, but without the constraints. If I need something nested in one object to take up its transformation, but appear lower than it (such as a drop shadow), then I can just subtract. I haven’t been able to do this with Sibling.
The main reason I bring this up is that I usually like to put everything relating to the games main interface in one ScreenGui, as it’s a lot easier to manage. Since I have tooltips and such which have drop shadows or certain frames which meet the needs above, I have to give this entire interface Sibling to be able to make use of this feature.
A possible solution could be if all GuiObjects had a “ZIndexBehavior” property that allowed its descendants to be ordered based off of it, and ZIndex of the current GuiObject would act as ScreenGui’s LayoutOrder property.
I’d be able to have this one shop frame be Sibling, with most of the other frames being Global, all under the same Gui.
Not supporting ClipsDescendants is quite disappointing, but I understand here, and currently don’t have any issues with it other than having to touch up on my interfaces a bit.
ON THE POSITIVE SIDE, I was hoping this would allow for more customization than just color & transparency (assuming it would’ve been treated as one image), and it turns out we can use effects like UIGradient to make nice transitions for the entire frame seamlessly!! Thank you for this!
Extremely useful however as someone who never uses Sibling ZIndex behavior, this amazing feature becomes un-usable. Would really love to see that change.
Thanks for the feedback, we will make ClipsDescendants
always displayed as true and untoggleable in the future releases.
I’m absolutely happy with how the CanvasGroup turned out as it unlocks many new ways of customization for UI designers!
However, I have unfortunately found a bug with it as trying to use a TextBox that has a UICorner inside of it parented in a CanvasGroup, which also has a UICorner in it crashes Studio.
Nonetheless, this is another beta feature I am not disappointed with! Way to go!
This is an amazing change, certainly going to benefit tons of developers with the only deal-breaker being the ZIndexBehavior.
Hopefully, Roblox can figure out some way to let Global ZIndex work as converting a game to Sibling is pretty tedious but other than this I love this update.
Another day another victory for the UIUX community. Thank you guys for the amazing features!
This is so cool!
I’ve been waiting for this since I started UI designing. With the new CanvasGroup
, it will make my life easier. Thank you very much, and kudos to the team for making this quality of life change.
Regards,
Obsentiel
I am overwhelmed with the possibilities here
I know roblox’s entire brand is powering imagination but I think there’s too much of it right now (not that its bad or anything )
I still dont know how to communicate my love for this update
im about to cry tears of joy
Given how the feature is described to work, I imagine this is intended behaviour. But given that it isn’t mentioned anywhere from what I saw and no one has mentioned it yet, I figured I’d mention it. Buttons in a CanvasGroup with AutoButtonColor enabled will not interact when hovered over or clicked like they will under a regular Frame. I made a quick example file in case this isn’t intended behavior.
CanvasGroupNoAutoButtonColor.rbxl (48.5 KB)
This might be due to it not updating unless the properties of it’s descendants change, hope they fix it.
Good job engineers!!
We are provided with an example place file, a lot of showcase images and very descriptive explanations
WELL DONE!
the only issue I have is with Studio Beta, I would like to show the new changes to my players which don’t have access to Studio place for obvious reasons.
Rotating a UI Object with clipping was a very much needed update, and this is great.
I don’t know how feasible it is, but given that it is rendered as a texture, it would be a game-changer if you could use a CanvasGroup as a Decal’s TextureId, a Texture’s TextureId, a Mesh’ TextureId, and mostly any sort of image if possible. Roblox has lacked spritesheet usage and wrapped GUI support for the longest time, only now it has been introduced with flipbook particles, yet we still don’t have the latter. If GUI images were able to be used without the restrictions of being flat, it would open up a ton of creative solutions to effects that can be done in other engines, but are inefficient or need unoptimal workarounds.
An example that comes to mind is flipbook effects on meshes, which is possible on other engines by scaling down the image and properly aligning it to the UV’s when cycling through them, but in Roblox you’d need to upload every single frame of the effect animation and preload them on the client, in terms of instance count and game loading time, spritesheets can cut down those two by a lot.
CanvasGroups as image textures would allow for so much. The effects I said earlier, dynamic damaging of enemies, by showing wounds where they are hit; animated textures, and lots more.
It’s just a feature that I’ve been hoping would come, seeing as how spritesheet support is something that Roblox has plans for the future, but GUI’s as textures would be a much bigger breakthrough.
Wow finally! i don’t have to spam on image transparency and this also helps with reducing WHOLE line of code but are we able to use it for TweenService()
??? would be good if they work for it.
What does “group size” mean?
If you mean scaling an entire frame and all of its descendants, you can just convert descendant frames into Scale instead of Offset, and resizing the main frame would resize all the descendants.
Its so good, now i can make fading screens properly. Thanks.
question:
can we tween canvasgroups? if so this is literally the best, would be useful for my test.