So, I'd like to set up a default transition which is used when a character changes emotional state. You know, like having a soft dissolve rather than a hard cut between these two lines:
Code: Select all
francine "I'm feeling okay."
francine happy "Now I'm feeling happy!"
Fortunately, Renpy has a feature that provides this!
Code: Select all
config.say_attribute_transition = Dissolve(0.5, alpha=True)
...but unfortunately, what happens if I set this is that the entire game grinds to a halt for half a second while it dissolves the image, complete with removing the side portrait and other UI elements during the transition. It's an awkward and distracting flicker and I really don't like it. Ideally what I want is for the dissolve to happen in the background, while the text box continues on its merry way, without disrupting anything.
I found one way to do it... but it's supremely awkward because it bypasses Renpy's normal emotion tagging system completely.
Code: Select all
francine "I'm feeling okay."
show francine normal:
"francine happy" with dissolve
francine "Now I'm feeling happy! ...but if I say 'francine happy' in front of this line it'll still hard-cut."
Meaning every single time I want to change emotions I need to insert this extra two-line block of hard coded script. Closest I can get to abstracting it is to set up a transition called "dissolve_francine_happy" and issue a "show francine normal at dissolve_francine_happy" but that's STILL really clunky and still gets disrupted if I accidentally left in a normal renpy call of francine happy in the script.
Is there a better way to do this, ideally integrating it right into the normal Renpy say system for emotional states? I'd rather avoid having the whole game stop what it's doing and run the dissolve, disrupting my UI... and I'd like to avoid having to insert these clunky manually coded emotion shifts.