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.
-
WildBill
- Newbie
- Posts: 4
- Joined: Thu Aug 04, 2022 12:13 pm
-
Contact:
#1
Post
by WildBill » Tue Aug 23, 2022 5:21 pm
I'm trying to create a new transition using ATL similar to the default
Pixellate transition, but using a blur instead. What I have is this:
Code: Select all
transform blur(duration=1.5, radius=200.0, new_widget=None, old_widget=None):
delay duration
old_widget
events False
easeout (duration * 0.45) blur radius
new_widget with Dissolve(duration * 0.1)
pause (duration * 0.1)
easein (duration * 0.45) blur 0.0
events True
The idea being that for 45% of the duration, the blur ramps up, then for 10% of the duration it fades from the old scene to the new, then the last 45% has the blur ramping down again. The first two of these things work, but when the dissolve is complete the blur snaps back to zero immediately, without doing the second ease. What is it that I need to do to make this work?
Last edited by
WildBill on Wed Aug 24, 2022 9:51 am, edited 1 time in total.
-
m_from_space
- Veteran
- Posts: 302
- Joined: Sun Feb 21, 2021 3:36 am
-
Contact:
#2
Post
by m_from_space » Wed Aug 24, 2022 3:20 am
Not having an answer for the problem, other than not using the dissolve like this. On the other hand, I found that you should change your radius/blur value to integer, not float. Float creates a strange flickering effect on my end when the transition finishes. Also your duration time doesn't add up to 1.0 including the pause, so the blur should happen in 40% time, not 45%, right? Not including the dissolve this works fine on my end:
Code: Select all
transform blur(duration=1.5, radius=200, new_widget=None, old_widget=None):
delay duration
old_widget
events False
easeout (duration * 0.45) blur radius
new_widget
events True
pause (duration * 0.1)
easein (duration * 0.45) blur 0
-
WildBill
- Newbie
- Posts: 4
- Joined: Thu Aug 04, 2022 12:13 pm
-
Contact:
#3
Post
by WildBill » Wed Aug 24, 2022 9:51 am
The pause is needed because changing the widget with another transition doesn't pause the ATL by itself. The main ATL runs parallel to the dissolve, it doesn't wait for it. I figured out one way to make it work using a
MultipleTransition, but it feels inelegant, I'd still like to know if there's a better way to stop the inside transition ending the outside one early.
Code: Select all
transform blur(duration=1.5, radius=200, fade=0.3, new_widget=None, old_widget=None):
delay duration
old_widget
easeout (duration * (1-fade)/2) blur radius
new_widget with MultipleTransition([False, Dissolve(duration * fade), True, Pause(duration * (1-fade)/2), True])
pause (duration * fade)
easein (duration * (1-fade)/2) blur 0
Users browsing this forum: Bing [Bot], Google [Bot], Majestic-12 [Bot]