I found the solution by myself. By replacing the fade by a dissolve, and by playing with ComposeTransition and behind, I was able to create a nice effect. Here is the code :
Code:
#First show the BG and 4 sprites :
show bg at Position(xpos=1.0, xanchor=1.0, ypos=1.0, yanchor=1.0) with fade
show img1 at Position(xpos=0.75, xanchor=0.5, ypos=1.0, yanchor=1.0) with easeinright
show img2 at Position(xpos=0.5, xanchor=0.5, ypos=1.0, yanchor=1.0) with easeinleft
"checkpoint 1"
show black behind bg
with None
#Dissolve everything into a black screen with move
show bg at Position(xpos=3.0, xanchor=1.0, ypos=1.0, yanchor=1.0)
show img1 at Position(xpos=2.75, xanchor=0.5, ypos=1.0, yanchor=1.0)
show img2 at Position(xpos=2.5, xanchor=0.5, ypos=1.0, yanchor=1.0)
with ComposeTransition(Dissolve(0.5), MoveTransition(8.0))
hide bg
with None
#Show the second set of sprites behind black screen
show bg at Position(xpos=-0.1,xanchor=0.0,ypos=1.0,yanchor=1.0) behind black
show img3 at Position(xpos=0.15,xanchor=0.5,ypos=1.0,yanchor=1.0) behind black
show img4 at Position(xpos=0.4,xanchor=0.5,ypos=1.0,yanchor=1.0) behind black
with None
#Show it with move and dissolve
show black behind bg
show bg at Position(xpos=0.0,xanchor=0.0,ypos=1.0,yanchor=1.0)
show img3 at Position(xpos=0.25,xanchor=0.5,ypos=1.0,yanchor=1.0)
show img4 at Position(xpos=0.5,xanchor=0.5,ypos=1.0,yanchor=1.0)
with ComposeTransition(Dissolve(0.5), None, MoveTransition(0.5))
"checkpoint 2"
Now I want ro reproduce an animation 4Leaf team used in Katawa Shoujo. I want to do the same thing than above, but without dissolving into a black screen between the two sets of sprites. I have written a code that almost do it :
Code:
#First display
show bg at Position(xpos=1.0, xanchor=1.0, ypos=1.0, yanchor=1.0) with fade
show img1 at Position(xpos=0.75, xanchor=0.5, ypos=1.0, yanchor=1.0) with easeinright
show img2 at Position(xpos=-0.75, xanchor=0.5, ypos=1.0, yanchor=1.0)
with None
"checkpoint 1"
#Move all images, but not simultaneously ! Unfortunely.
show bg at Position(xpos=0.0, xanchor=0.0, ypos=1.0, yanchor=1.0)
with MoveTransition(2.0)
show img1 at Position(xpos=1.75, xanchor=0.5, ypos=1.0, yanchor=1.0)
with ComposeTransition(Dissolve(2.0),MoveTransition(2.0))
show img2 at Position(xpos=0.25, xanchor=0.5, ypos=1.0, yanchor=1.0)
with ComposeTransition(Dissolve(2.0),None,MoveTransition(2.0))
"checkpoint 2"
You see ? I want to apply different transitions to these images, but I would like these transitions to occure simultaneously. And Ren'py wait for the end of each transition to run the next line...
I found an interesting solution, if I use a "Move()" clause after a "at", I can move several images simultaneously ! But I can't dissolve them at the same time
Example :
Code:
show bg at Move((1.0,1.0,1.0,1.0),(0.0,1.0,0.0,1.0),2.0)
show img1 at Move((0.75,1.0,0.5,1.0),(1.75,1.0,0.5,1.0),2.0)
show img2 at Move((-0.75,1.0,0.5,1.0),(0.25,1.0,0.5,1.0),2.0)
I also tryied to use renpy.transition(), but it doesn't do the job. If I write :
Code:
show bg at Position(xpos=1.0, xanchor=1.0, ypos=1.0, yanchor=1.0)
show img1 at Position(xpos=0.75, xanchor=0.5, ypos=1.0, yanchor=1.0)
with None
show bg at Position(xpos=0.0, xanchor=0.0, ypos=1.0, yanchor=1.0)
$renpy.transition(MoveTransition(2.0))
show img1 at Position(xpos=0.75, xanchor=0.5, ypos=1.0, yanchor=1.0)
$renpy.transition(ComposeTransition(Dissolve(2.0),MoveTransition(2.0)))
I see the bg dissolving, and I don't want to. The renpy.transition() function seems to apply to all images currently moving.
So, if someone have an idea, I would be grateful
For now, I think I will take a deeper look to ATL ^^