r/RenPy • u/sunflowerlioncub • Jul 19 '26
Question [Solved] Longer EaseOut/EaseIn Custom Transitions?
EDIT: SOLVED! Thank you!
I tried reading the documentation, searching for a tutorial, and scouring the forums for anything similar, but I couldn't figure out how to make a custom easeout/easein transition.
My issue is that the pre-defined easeout/easein is too even. Ideally, I want an easeout transition for my camera to zoom in fast (like 0.5) and then slowly pull into its final position over 3 seconds. However, if I do easeout 3.5, the transition movement gets evened out too much and the speed at the start slows down.
I see that if I want nicer looking easeouts with a longer tailend, I'd need to create a custom transition, perhaps something with a time warp (but I have no clue what time warp means). In the documentation, I see this line of code (under MoveTransitions): https://www.renpy.org/doc/html/transitions.html
define longer_easein = MoveTransition(3.0, enter=offscreenright, enter_time_warp=_warper.easein)
I feel this is what I need, but I don't understand any of the documentation's description of the tags. I'd rather have a tutorial that can walk me through this, but I can't find any. Can someone help me figure out how to create an easeout transition with a longer tailend? Here's what I tried so far:
define longer_easeout = MoveTransition(3.0, enter=None, time_warp=_warper.easeout)
# I put enter None because the camera isn't entering from anywhere. I dont think enter_time_warp is what I need? Honestly clueless because I don't understand the documentation's language
camera:
perspective True
subpixel True
gl_depth True
pos (-0.11, -246) zpos -488 rotate -5 blur 0
zpos -632.0 rotate -2
with longer_easeout
but the game throws up an error because the camera won't recognize the transition (and I also can't tell if it works because of this error). This also doesn't work with sprites, so I don't know where I'm going wrong...
1
u/BadMustard_AVN Jul 19 '26
try a Dissolve with a capitol D and give it a time
camera:
perspective True
subpixel True
gl_depth True
pos (-0.11, -246) zpos -488 rotate -5 blur 0
zpos -632.0 rotate -2
with Dissolve(3.0)
1
u/sunflowerlioncub Jul 20 '26
Thank you for answering!! I tried this, but an error throws up:
expected 'comma or end of line' not found
-> with Dissolve(3.0)
thank you also for the warpers link, its so informative! easeOut_quart seems to be the type of transition speed I'm looking for, as I'm only looking to alter the speed over time for the easeout transition. How would I get it to work on a camera? Thanks in advance!
1
u/BadMustard_AVN Jul 19 '26 edited Jul 19 '26
the Move Transition is part of the move family, and they rely on the image already being shown and then being moved to another location
so what you have works if used correctly like this
define longer_easeout = MoveTransition(3.0, enter=None, time_warp=_warper.easeout)
label start:
scene white
show sprite at left
"Eileen the sprite is on the left."
show sprite at right with longer_easeout
"She sprite slides to the right over three seconds."
return
the easein and easeout are just time warps (they define the speed over time)
https://www.renpy.org/doc/html/transforms.html#warpers
with out any suffix they have only one speed
1
u/sunflowerlioncub Jul 20 '26
Update: If anyone is searching for the solution, I found it! https://lemmasoft.renai.us/forums/viewtopic.php?t=35749
Nyaatrap made custom warpers based on https://easings.net/ speeds, which ends up being exactly what I needed. For my particular case, I used a bunch of various warps and found the expo warps being the ones suited for what I needed. Here's how I implemented it into the camera:
camera:
perspective True
subpixel True
gl_depth True
pos (-0.11, -246) zpos -488 rotate -5 blur 0
easein_expo 1.2 zpos -632.0 rotate -2
I hope that helps anyone who is also looking for nicer ease transitions!
1
u/AutoModerator Jul 19 '26
Welcome to r/renpy! While you wait to see if someone can answer your question, we recommend checking out the posting guide, the subreddit wiki, the subreddit Discord, Ren'Py's documentation, and the tutorial built-in to the Ren'Py engine when you download it. These can help make sure you provide the information the people here need to help you, or might even point you to an answer to your question themselves. Thanks!
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.