CanvasGroup Beta: Group Transparency on UI Groups

This is a pretty cool thing and I will definitly use it once it is fully released. If I have to suggest something I’d say is that when you insert childs in they wont scale.

You can choose canvas group if there is special needs for you to use any of the following:

  • accurate group transparency
  • apply effect(round corner, gradient) to a group of GuiObjects

Otherwise you should always consider using a frame for performant UI.

Hello I meant some new gul what is one not working
I just got a Error and I script I need someone to do fix it
It would help me to go to the route

Any chance we can get the ability use ctrl + g to create a CanvasGroup with the selected UI objects like how doing it with items in the workspace creates a model?

2 Likes

This is great, but unfortunately the canvas being blurry even at what seems to be the highest quality is just really annoying. Pretty much makes the feature unusable for small UI that requires detail.

2 Likes

I’ve run into issues while using canvas group in studio, when the CG’s Size is changed the objects within it disappear. (This Makes it difficult to test UI in studio)

I am not able to bring back the Visuals that were included in the group.

*Note: I only Changed the size and nothing else and I even tried it again in an Empty Base Plate and the issue reoccurred

I dont have access to BUG REPORTS

Video:


Frame Setup:
image

  • It seems to happen with Scale Size

Code:

local gui = script.Parent
local frame = gui.Frame
local defualt  = frame.Size
for i = 10 , -10 , -1  do
	frame.Size = UDim2.fromScale(i/10,1)
	wait(.01)
end
frame.Size = defualt
2 Likes

Does it clip a descendant which has its rotation property changed? Because when I use clipdescendants and rotate the gui inside it stop being clipped.

Hey there - this is great! However, I think it’d be benefecial if we could store the result of a CanvasGroup render, and reuse it.

I’d like to use CanvasGroup to render flags that are defined by code. However, these flags are shown in a lot of places. It’s not very performant to copy them everywhere, but if I could store the result of a CanvasGroup render and reuse it in other CanvasGroups or ImageLabels, Roblox would only have to render a flag once, and then reuse that result wherever it wants to display the same items.

Perhaps it could be implemented by adding a property RenderedGroup. If it’s nil, the CanvasGroup will show it’s children. If it’s set to another CanvasGroup, it will show the same render as that group and ignore whatever children it has. CanvasGroups using RenderedGroup can’t be interacted with. They only, exclusively show the render of RenderedGroup.

This way, instead of creating a new texture for each CanvasGroup, they can all just reuse the same one from RenderedGroup. This would be a huge improvement for my game. Thank you!

4 Likes

When is this gonna be fully released?

OS: Arch Linux x64
CPU: Ryzen 7 3800x
GPU: RTX 3080Ti
Display Resolution:
– Primary: 2560x1440 @ 240hz
– Secondary: 1920x1080 @ 60hz

I also had a friend test the issues below on his Windows system, just to rule that out.
CPU: Intel i7,
GPU: NVIDIA GTX 960M

Overall, this feature seems great. I have some visual issues that I am currently getting more specific details on, namely the Viewport frame in my nested CanvasGroups sometimes disappearing, and the CanvasGroup is having a rendering issue on the bottom of my user interface whenever the UI is opened. See below:


Any sort of interaction with the CanvasGroup seems to fix this issue.

Viewport frame issue:

Hi, theoretically it should be clear when the canvas group’s absolute size is less than 2k. Do you have extra set up of window scale? And do you mind share your device’s spec? Thanks.

Will we be seeing the ability to scale, stretch, and transform the canvas? The biggest caveat I’ve come across with UIScale is its inconsistencies with text, especially with UITextSizeConstraints, where it just refuses to resize text when being clamped

Hi, thanks for the reply! Not sure what you meant (sorry) but I think this example shows it.

I’ve attached a place file, to see the difference set the device emulator to 1920x1080 at Actual Resolution, then make the CanvasGroup in StarterGui visible then invisible and see the difference.

Text is extremely blurry, and here is a grid view of the pixels. You can see that the border of the frame which is set to 1 pixel is blurred.

image
image

My specs:
i5-4460
GTX 960
8GB RAM

Here is a place file:
CanvasGroupBlur.rbxl (40.4 KB)

The results can be inconsistent. Sometimes the CanvasGroup is the exact same quality as a normal frame, but after switching the ScreenGuis ZIndexBehaviour or duplicating the CanvasGroup it goes blurry again.

1 Like

I have made a minimal test case showcasing this issue.

Attached should be the model file, here’s the quick studio command bar code that I ran with it that can be used to demonstrate the issue.

local a = game.StarterGui.ScreenGui.CanvasGroup; a:TweenSize(UDim2.new(0, 200, 0, 0), Enum.EasingDirection.In, Enum.EasingStyle.Linear, 0.175); task.wait(0.3); a:TweenSize(UDim2.new(0, 200, 0, 500), Enum.EasingDirection.In, Enum.EasingStyle.Linear, 0.175)

CanvasGroupIssue.rbxm (4.2 KB)

1 Like

Thanks for your places, I have put up a pending fix for this.

3 Likes

Thank you so much! Now that CanvasGroups are released, given there functionality do you think they could be used for some cool UI effects now that it’s rendered as an image?

Hi for some reason my Studio is crashing when I focus a TextBox that is inside a CanvasGroup.

It’s a known bug.
image

Does anyone know when this Beta feature will be made official, me and my team have found many cool ways to utilise it for ui in our game and are eager for it’s release to use in our project for this month!

1 Like

when is this feature being fully released

6 Likes