Screen blur

Discuss how to use the Ren'Py engine to create visual novels and story-based games. New releases are announced in this section.
Forum rules
This is the right place for Ren'Py help. Please ask one question per thread, use a descriptive subject like 'NotFound error in option.rpy' , and include all the relevant information - especially any relevant code and traceback messages. Use the code tag to format scripts.
Post Reply
Message
Author
SteelRazer
Newbie
Posts: 10
Joined: Thu Dec 06, 2018 12:25 pm
Contact:

Screen blur

#1 Post by SteelRazer »

Hello,
I would like to know if there is a way to create something like a blur mask that would blur the whole screen or layer, instead of defining and using images with im.Blur() function.
If there is a way to use the rendering API for blurring that renpy uses.

User avatar
hell_oh_world
Miko-Class Veteran
Posts: 777
Joined: Fri Jul 12, 2019 5:21 am
Contact:

Re: Screen blur

#2 Post by hell_oh_world »

SteelRazer wrote: Fri Oct 04, 2019 4:42 pm Hello,
I would like to know if there is a way to create something like a blur mask that would blur the whole screen or layer, instead of defining and using images with im.Blur() function.
If there is a way to use the rendering API for blurring that renpy uses.
I don't know if you can achieve things like that to apply im.Blur generally to all of screen components even to those non-displayables. Your best bet I guess is to use an Image processing software such as photoshop, then make a blurred image then make it translucent then place it atop of all the screen elements which is in the very bottom of the screen.

SteelRazer
Newbie
Posts: 10
Joined: Thu Dec 06, 2018 12:25 pm
Contact:

Re: Screen blur

#3 Post by SteelRazer »

hell_oh_world wrote: Fri Oct 04, 2019 6:20 pm I don't know if you can achieve things like that to apply im.Blur generally to all of screen components even to those non-displayables. Your best bet I guess is to use an Image processing software such as photoshop, then make a blurred image then make it translucent then place it atop of all the screen elements which is in the very bottom of the screen.
I did achieve blur with im.Blur and it's not a problem when you blur the background. Problem is when I have a background and there are imagebuttons above the background image, im.Blur() is a good function to not add too much images and save space, but it's kinda limiting. If there was a way to create a mask and apply it to only some layers though.

User avatar
hell_oh_world
Miko-Class Veteran
Posts: 777
Joined: Fri Jul 12, 2019 5:21 am
Contact:

Re: Screen blur

#4 Post by hell_oh_world »

SteelRazer wrote: Fri Oct 04, 2019 6:41 pm im.Blur() is a good function to not add too much images and save space, but it's kinda limiting
And what do you mean by this? How does it limit you? Actually I'm not sure on what you want to mask out and more specifically what do you want to achieve. You want the buttons to be masked out like to not be blurred? Using AlphaMask() displayable, you can specify the mask for the displayable. If you want the whole layer to be blurred, again I don't think that's possible because im.Blur only works on displayables, and not on the entire screen or layer. All in all, I'm guessing that you want the background to be blurred while the currently displaying element which is in the foreground is crystal clear, somewhat like focus effect.

Also this statement...
im.Blur() is a good function to not add too much images and save space
I'm not sure if I'm right but im.Blur() doesn't work that way, maybe you can enlighten me by what you mean by that.

SteelRazer
Newbie
Posts: 10
Joined: Thu Dec 06, 2018 12:25 pm
Contact:

Re: Screen blur

#5 Post by SteelRazer »

hell_oh_world wrote: Fri Oct 04, 2019 7:11 pm
And what do you mean by this? How does it limit you? Actually I'm not sure on what you want to mask out and more specifically what do you want to achieve. You want the buttons to be masked out like to not be blurred? Using AlphaMask() displayable, you can specify the mask for the displayable. If you want the whole layer to be blurred, again I don't think that's possible because im.Blur only works on displayables, and not on the entire screen or layer. All in all, I'm guessing that you want the background to be blurred while the currently displaying element which is in the foreground is crystal clear, somewhat like focus effect.

I'm not sure if I'm right but im.Blur() doesn't work that way, maybe you can enlighten me by what you mean by that.
I want to blur a specific layer, let say 'master' and 'screens', everything else should be clear, but I guess it's not possible.

By saving space I meant like you just need to define image with im.Blur(), you don't need to manually blur images and then add them into game. With 500 images the size could be relatively significant. Also you can easily change or add images with different strength of the blur.

Post Reply

Who is online

Users browsing this forum: Semrush [Bot]