Ren'Py fade, dissolve commands

monkeyposter_7

Thirsty for my Guest
Game Developer
Nov 23, 2018
330
1,180
i don't really get how this works

U have 3 commands

scene 0000 with Fade(1.0,2.0,3.0)

and as i understand it now (i might be totally wrong) in this case
1.0 =takes 1 second to fade to black
2.0=holds it black for 2 seconds
3.0=fades from black to image 0000

If i'm right about this, how to make a scene fade to black and then fade to another scene

So:
scene 0000 / fade to black for 2 seconds / holds it black until u click the mouse / and then it fades from black into scene 0001

I'm also wondering how to use dissolve, so it dissolves into next image, not itself.
Because in this 3 commands (1.0,2.0,0.0) the last one always fades/dissolves into itself (in this case it takes one second)
 

monkeyposter_7

Thirsty for my Guest
Game Developer
Nov 23, 2018
330
1,180
maybe even something like:

image 0001 with fade of 2 second into next one
image 0000 (black image)
pause
image 0002 (has to fade in from image 0000)

Or something better :)
 

Porcus Dev

Engaged Member
Game Developer
Oct 12, 2017
2,582
4,687
For my experience, you'll have a better control if you have a real "black" image to use for faders (simply create a 1920x1080 black image and name it as: black)

Like:

image 0001
black with Dissolve(1.0)
pause 2.0 #even you can force the pause with: $ renpy.pause(2.0, hard=True)
image 0000 with Dissolve(3.0)
 

79flavors

Well-Known Member
Respected User
Jun 14, 2018
1,560
2,177
scene 0000 with Fade(1.0,2.0,3.0)

and as i understand it now (i might be totally wrong) in this case
1.0 =takes 1 second to fade to black
2.0=holds it black for 2 seconds
3.0=fades from black to image 0000
I think I'd do it something like this...
Python:
    scene 0000 with dissolve
    pause(1.0)
    scene black with fade
    pause(0.5)
    scene 0001 with fade
    pause(3.0)
    scene 0002 with dissolve
    pause
Where you show an image for a second, fade it into black, leave it black for half a second, then fade it into a second image which stays on screen for 3 seconds before finally switching to a 3rd image.

A reminder you don't need image statements where the name used in the scene/show is exactly the same as the filename(.png/.jpg/.webp).

You're talking about "fade for 2 seconds" and such. And maybe that's actually what you want.
But my experience says you probably want to show the image for 2 seconds and then fade (taking 0.2 seconds to do the actual fade by default) rather than the actual fade taking 2 seconds to complete.
 

monkeyposter_7

Thirsty for my Guest
Game Developer
Nov 23, 2018
330
1,180
@79flavors

I keep forgetting i can use "seconds" after pause for this "auto" effects.

But it will work like suggested before for exaclly what i need

scene 0001 with Dissolve(3.0)
pause
scene black
pause
menu:
"wake up":
"etc etc"
scene 0002 with Dissolve(3.0)
pause
 

coffeeaddicted

Well-Known Member
Apr 13, 2021
1,740
1,424
This is an old topic but i have a similar issue.
So here is what i wanted to accomplish.
Scene has figure sleeping. I wanted to show a gradual shift to black.
So i did 5 images where i gradually turned them dimmer.
But when run it looks kind of choppy.

This is how i did it.

My aim is to have the starting scene from the figure sleeping go from that picture into black but gradually.

Code:
script:

define dissolveslow = Dissolve(5.0)

label whatever:
show sleep01 with dissolve(1.0)
$ renpy.pause(1)
show sleep02 with dissolve(1.0)
$ renpy.pause(1)
show sleep03 with dissolve(1.0)
$ renpy.pause(1)
show sleep04 with dissolve(1.0)
$ renpy.pause(1)
stop music fadeout 3
show sleep05 with dissolveslow
$ renpy.pause(1)
 
Last edited:

anne O'nymous

I'm not grumpy, I'm just coded that way.
Modder
Respected User
Donor
Jun 10, 2017
10,181
14,904
My aim is to have the starting scene from the figure sleeping go from that picture into black but gradually.
There's other way, with a custom transition by example, but this one is probably the easiest:
Python:
# Your slow transition. 5.0 feel a bit too much, you should limits to 3.0
define dissolveslow = Dissolve(5.0)

# A totally black image.
image fullBlack = "#000000"

label whatever:
    #  *Always* use /scene/ when it's an image taking all the screen.
    #  This is the original image
    scene originalImage
    [whatever you want]
    # This will be the effect you want.
    scene fullBlack with dissolveslow
    $ renpy.pause( 5.0 )
    # And now you can display the next image.
    scene nextImage
 

coffeeaddicted

Well-Known Member
Apr 13, 2021
1,740
1,424
There's other way, with a custom transition by example, but this one is probably the easiest:
Python:
# Your slow transition. 5.0 feel a bit too much, you should limits to 3.0
define dissolveslow = Dissolve(5.0)

# A totally black image.
image fullBlack = "#000000"

label whatever:
    #  *Always* use /scene/ when it's an image taking all the screen.
    #  This is the original image
    scene originalImage
    [whatever you want]
    # This will be the effect you want.
    scene fullBlack with dissolveslow
    $ renpy.pause( 5.0 )
    # And now you can display the next image.
    scene nextImage
Yay... this works much better.
I read somewhere (on the internet of course) that RenPy can't do that.
So this is much better. Thank you.

Yeah, 5 sec is a little long. Though i want to emphasize that there is someone sleeping.
I thought about hard pause but RenPy says it's rude. So i probably enjoy myself what i have intended.
It should be artistically give you, in the best case, emotions. Sound will be played and i am glad i found out how to set the default volume to half so it doesn't kill your ears.

So far it's just a start but i am myself convinced that this will be great.
So you still can click through in a rush but then it looks odd.

Anyway, thank you anne O'nymous. This is how i envisioned it. :)

Forgot. Yes, for some reason i never take advantage of the "scene" command. The game has sprites so i should really use that. Got to say that sprites are really great as it reduces the need for lots of long renders and are great for story telling. Just have to find the right balance.
 
Last edited: