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.
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.
I hate to be the person who obsesses over names, but the only other “canvas” in Roblox I can think of is the ScrollingFrame canvas, which makes this feature sound like it’s related to that. Is there a reason for the name CanvasGroup, rather than something like RenderGroup, GroupFrame, UIGroup, or something?
Well this was unexpected, I was just complaining about grouptransparency not being released yet!
Despite the special notes, this update is pretty good and reduced a lot of lines on my UI code.
Thanks Roblox, really cool.
The current setting should make all render crisp unless you are creating a texture that exceeds 2k in any dimension. Do you mind sharing about your place settings?
I will write about this hopefully shortly in the future. Putting everything under one ScreenGui is not a great choice, as our internal caching system works at individual GuiLayerCollector (ScreenGui/SurfaceGui/Billboard) level. Putting them together would make gui cache keeps invalidate and rebuild through the whole ui tree.
I’m a little biased, but this is one of the best updates for UI Designers! I had a chance to really play around with it today. The UI itself is made up entirely of Frames, UIGradient, UIStroke, and UICorner scripts. There’s no imported bitmaps used here! I used rotation and gradient transparency to create custom shapes like corner brackets and faded lines.
For the hide/show animation, I used TweenService to tween the offset of the UIGradient. The possibilities with this are endless!