화면 전환
화면 전환은 with 문이나 Ren'Py의 다른 기능에서 장면 변경에 효과를 적용할 때 사용합니다. 때로는 디스플레이어블을 다른 디스플레이어블로 바꾸는 데도 사용합니다. Ren'Py는 with 문에 직접 지정할 수 있는 몇 가지 화면 전환을 기본 제공합니다. 예를 들면 다음과 같습니다.
show bg washington
with dissolve
미리 정의된 화면 전환
- dissolve
0.5초 동안 이전 화면에서 새 화면으로 디졸브합니다.
Dissolve()화면 전환 클래스의 인스턴스입니다.
- pixellate
.5초 동안 이전 장면을 픽셀화하고 이어서 .5초 동안 새 장면을 픽셀화합니다.
Pixellate()화면 전환 클래스의 인스턴스입니다.
- move
위치가 바뀐 이미지들을 0.5초 동안 새 위치로 이동합니다.
MoveTransition()화면 전환 클래스의 인스턴스입니다.move 화면 전환과 ease 같은 유사한 화면 전환은 with 문으로 단일 레이어나 모든 레이어에 한꺼번에 적용하는 경우에만 사용할 수 있습니다. ATL,
ComposeTransition()등 다른 적용 방식에서는 동작하지 않습니다.
- moveinright
같은 계열: moveinleft, moveintop, moveinbottom
등장하는 이미지를 해당 방향의 화면 밖에서 화면 안으로 0.5초 동안 이동합니다.
- moveoutright
같은 계열: moveoutleft, moveouttop, moveoutbottom
퇴장하는 이미지를 해당 방향으로 화면 밖까지 0.5초 동안 이동합니다.
- ease
같은 계열: easeinright, easeinleft, easeintop, easeinbottom, easeoutright, easeoutleft, easeouttop, easeoutbottom
move- 계열의 화면 전환과 비슷하지만 코사인 곡선을 사용하여 시작과 끝에서 속도를 늦춥니다.
- zoomin
등장하는 이미지를 0.5초 동안 확대합니다.
- zoomout
퇴장하는 이미지를 0.5초 동안 축소합니다.
- zoominout
등장하는 이미지는 확대하고 퇴장하는 이미지는 축소합니다. 0.5초가 걸립니다.
- hpunch
실행하면 화면을 0.25초 동안 가로로 흔듭니다.
- blinds
1초 동안 세로 블라인드 효과로 화면을 전환합니다.
ImageDissolve()화면 전환 클래스의 인스턴스입니다.
- squares
1초 동안 사각형 효과로 화면을 전환합니다.
- wipeleft
같은 계열: wiperight, wipeup, wipedown
지정한 방향으로 장면을 닦아내듯 전환합니다.
CropMove()화면 전환 클래스의 인스턴스입니다.
- slideleft
같은 계열: slideright, slideup, slidedown
지정한 방향으로 새 장면을 밀어 넣습니다.
CropMove()화면 전환 클래스의 인스턴스입니다.
- slideawayleft
같은 계열: slideawayright, slideawayup, slideawaydown
지정한 방향으로 이전 장면을 밀어냅니다.
CropMove()화면 전환 클래스의 인스턴스입니다.
- pushright
같은 계열: pushleft, pushup, pushdown
새 장면이 이전 장면을 지정한 방향으로 밀어냅니다.
PushMove()화면 전환 클래스의 인스턴스입니다.
- irisin
같은 계열: irisout
사각형 조리개 효과로 새 화면을 표시하거나 이전 화면을 숨깁니다.
CropMove()화면 전환 클래스의 인스턴스입니다.
화면 전환 클래스
화면 전환 클래스는 호출하여 새 화면 전환을 만들 수 있는 함수입니다. 매개변수로 여러 종류의 화면 전환을 만들 수 있습니다. 이름과 달리 대부분 Python의 클래스가 아니므로 클래스처럼 취급하면 안 됩니다.
with 문 안에서 화면 전환 클래스를 호출할 수 있습니다. 예를 들면 다음과 같습니다.
# A very long dissolve.
with Dissolve(10.0)
같은 화면 전환 클래스를 반복해서 사용한다면 define 문으로 화면 전환을 변수에 할당할 수 있습니다.
define dissolve1 = Dissolve(1.0)
label start:
show bg washington
with dissolve1
여러 화면 전환 클래스가 받는 time_warp 인수에는 _warper 모듈의 내장 워퍼를 지정할 수 있습니다. 워퍼를 참조하세요.
- AlphaDissolve(control, delay=0.0, *, reverse=False, mipmap=None)
제어 디스플레이어블을 사용하여 화면 사이를 전환하는 화면 전환을 반환합니다. 제어 디스플레이어블은 거의 항상 애니메이션이 적용된 트랜스폼입니다. 트랜스폼을 평가한 뒤 불투명한 부분에는 새 화면을, 투명한 부분에는 이전 이미지를 사용합니다.
- control
제어 트랜스폼입니다.
- delay
화면 전환이 끝날 때까지 걸리는 시간입니다.
- reverse
참이면 알파 채널을 반전합니다. 불투명한 영역은 이전 이미지에서, 투명한 영역은 새 이미지에서 가져옵니다.
- mipmap
디졸브를 원래 크기의 절반 미만으로 축소할 경우 True로 설정할 수 있습니다. 밉맵을 생성하므로 GPU 리소스가 더 필요하지만 렌더링 오류를 줄입니다. 자세한 내용은
mipmap을 참조하세요.
- ComposeTransition(trans, before, after)
최대 세 개의 화면 전환을 조합하는 화면 전환을 반환합니다. before와 after가 None이 아니면 각각 이전 장면과 새 장면에 적용합니다. 이렇게 변경한 두 장면을 trans 화면 전환에 전달합니다.
# Move the images in and out while dissolving. (This is a fairly expensive transition.) define moveinoutdissolve = ComposeTransition(dissolve, before=moveoutleft, after=moveinright)
- CropMove(time, mode='slideright', startcrop=(0.0, 0.0, 0.0, 1.0), startpos=(0.0, 0.0), endcrop=(0.0, 0.0, 1.0, 1.0), endpos=(0.0, 0.0), topnew=True)
장면을 자르고 화면에 배치하여 작동하는 화면 전환을 반환합니다. 장면의 사각형 영역을 변화시키는 다양한 효과를 구현할 수 있습니다.
- time
화면 전환에 걸리는 시간입니다.
- mode
화면 전환 모드의 이름입니다. 모드는 wipe, slide, 기타의 세 계열로 나뉩니다. "custom"으로 설정하여 사용자 정의 모드를 만들 수도 있습니다.
wipe에서는 이미지가 고정된 상태로 화면 전환이 진행될수록 더 많은 부분이 드러납니다. 예를 들어 왼쪽에서 오른쪽으로 진행하는 "wiperight"는 화면 왼쪽 가장자리에 이미지의 왼쪽 끝이 먼저 드러나고, 이어 가운데, 마지막으로 화면 오른쪽에 이미지의 오른쪽 끝이 드러납니다. "wipeleft", "wipedown", "wipeup"도 지원합니다.
slide에서는 이미지가 이동합니다. 예를 들어 "slideright"는 이미지의 오른쪽 끝이 화면 왼쪽 가장자리에서 시작하여 화면 전환이 진행될수록 오른쪽으로 이동합니다. "slideleft", "slidedown", "slideup"도 지원합니다.
이전 이미지가 새 이미지 위에서 이동하는 slideaway도 있습니다. "slideawayright", "slideawayleft", "slideawayup", "slideawaydown"을 지원합니다.
사각형 조리개가 열리는 "irisin"과 닫히는 "irisout"도 지원합니다.
다음 매개변수는 mode가 "custom"일 때만 적용됩니다. 위치는 화면 크기에 대한 비율이고 잘라낼 영역은 이미지 크기에 대한 비율입니다. 따라서 (0.25, 0.0, 0.5, 1.0)을 잘라내면 이미지의 가운데 절반을 가져옵니다.
- startcrop
처음에 위쪽 이미지에서 잘라낼 사각형입니다. x, y, width, height를 담은 4요소 튜플입니다.
- startpos
위쪽 이미지를 처음 화면에 그릴 위치입니다. x와 y를 담은 2요소 튜플입니다.
- endcrop
마지막에 위쪽 이미지에서 잘라낼 사각형입니다. x, y, width, height를 담은 4요소 튜플입니다.
- endpos
위쪽 이미지를 마지막으로 화면에 그릴 위치입니다. x와 y를 담은 2요소 튜플입니다.
- topnew
참이면 다른 장면 위에서 잘리고 이동하는 장면이 새 장면입니다. 거짓이면 이전 장면입니다.
define wiperight = CropMove(1.0, "wiperight") define wipeleft = CropMove(1.0, "wipeleft") define wipeup = CropMove(1.0, "wipeup") define wipedown = CropMove(1.0, "wipedown") define slideright = CropMove(1.0, "slideright") define slideleft = CropMove(1.0, "slideleft") define slideup = CropMove(1.0, "slideup") define slidedown = CropMove(1.0, "slidedown") define slideawayright = CropMove(1.0, "slideawayright") define slideawayleft = CropMove(1.0, "slideawayleft") define slideawayup = CropMove(1.0, "slideawayup") define slideawaydown = CropMove(1.0, "slideawaydown") define irisout = CropMove(1.0, "irisout") define irisin = CropMove(1.0, "irisin")
- Dissolve(time, *, time_warp=None, mipmap=None)
이전 장면에서 새 장면으로 디졸브하는 화면 전환을 반환합니다.
- time
디졸브에 걸리는 시간입니다.
- time_warp
시간 진행을 조정하는 함수입니다. None이 아니면 0.0에서 1.0 사이의 시간 비율을 받아 같은 범위의 숫자를 반환하는 함수여야 합니다.
- mipmap
디졸브를 원래 크기의 절반 미만으로 축소할 경우 True로 설정할 수 있습니다. 밉맵을 생성하므로 GPU 리소스가 더 필요하지만 렌더링 오류를 줄입니다. 자세한 내용은
mipmap을 참조하세요.
- Fade(out_time, hold_time, in_time, *, color='#000')
out_time초 동안 color로 채운 화면으로 페이드한 뒤 hold_time초 동안 유지하고, 이어서 in_time 동안 새 화면으로 페이드하는 화면 전환을 반환합니다.
# Fade to black and back. define fade = Fade(0.5, 0.0, 0.5) # Hold at black for a bit. define fadehold = Fade(0.5, 1.0, 0.5) # Camera flash - quickly fades to white, then back to the scene. define flash = Fade(0.1, 0.0, 0.5, color="#fff")
- ImageDissolve(image, time, ramplen=8, *, reverse=False, time_warp=None, mipmap=None)
이미지로 디졸브 과정을 제어하여 이전 장면을 새 장면으로 바꾸는 화면 전환을 반환합니다. 흰색 픽셀이 먼저, 검은색 픽셀이 마지막에 디졸브됩니다.
- image
제어 이미지입니다. 어떤 디스플레이어블이든 사용할 수 있습니다. 디졸브할 장면과 크기가 같아야 하며, reverse=True이면 완전히 불투명해야 합니다.
- time
디졸브에 걸리는 시간입니다.
- ramplen
사용할 램프의 길이입니다. 2의 정수 거듭제곱이어야 합니다. 기본값 8이면 흰색 픽셀이 완전히 디졸브되었을 때 회색 단계가 8만큼 어두운 픽셀은 디졸브의 한 단계를 마친 상태가 됩니다.
- reverse
True이면 검은색 픽셀이 흰색 픽셀보다 먼저 디졸브됩니다.
- time_warp
시간 진행을 조정하는 함수입니다. None이 아니면 0.0에서 1.0 사이의 시간 비율을 받아 같은 범위의 숫자를 반환하는 함수여야 합니다.
- mipmap
디졸브를 원래 크기의 절반 미만으로 축소할 경우 True로 설정할 수 있습니다. 밉맵을 생성하므로 GPU 리소스가 더 필요하지만 렌더링 오류를 줄입니다. 자세한 내용은
mipmap을 참조하세요.
define circirisout = ImageDissolve("circiris.png", 1.0, time_warp=_warper.easeout) define circirisin = ImageDissolve("circiris.png", 1.0, reverse=True, time_warp=_warper.easein) define circiristbigramp = ImageDissolve("circiris.png", 1.0, ramplen=256)
- MoveTransition(delay, *, enter=None, leave=None, old=False, layers=['master'], time_warp=_warper.linear, enter_time_warp=_warper.linear, leave_time_warp=_warper.linear)
이 화면 전환들은 이전 장면과 새 장면 사이에서 위치가 바뀌는 이미지들을 보간하므로 즉시 이동하는 대신 부드럽게 움직입니다.
태그는 레이어에만 있으므로 MoveTransition은 with 문으로 단일 레이어나 모든 레이어에 한꺼번에 적용하는 경우에만 사용할 수 있습니다. ATL,
ComposeTransition()등 다른 적용 방식에서는 동작하지 않습니다.- delay
보간이 끝날 때까지 걸리는 시간입니다.
- old
참이면 화면 전환 도중 태그의 이미지가 바뀔 때 새 이미지보다 이전 이미지를 우선 사용합니다. 그 밖의 경우 새 이미지를 사용합니다.
- layers
이동을 적용할 레이어의 리스트입니다.
다음 두 매개변수는 시간에 따른 애니메이션이 없는 트랜스폼을 받습니다.
- enter
None이 아니면 장면에 등장하는 이미지도 이동합니다. 트랜스폼을 이미지에 적용하여 시작 위치를 얻습니다.
- leave
None이 아니면 장면에서 퇴장하는 이미지도 이동합니다. 트랜스폼을 이미지에 적용하여 끝 위치를 얻습니다.
다음 세 매개변수는 시간 워핑 함수를 받습니다. 함수는 0.0에서 1.0 사이의 숫자를 받아 같은 범위의 숫자를 반환해야 합니다.
- time_warp
이전 장면과 새 장면 사이에서 위치가 바뀌는 이미지에 적용하는 시간 워핑 함수입니다.
- enter_time_warp
장면에 등장하는 이미지에 적용하는 시간 워핑 함수입니다.
- leave_time_warp
장면에서 퇴장하는 이미지에 적용하는 시간 워핑 함수입니다.
define longer_easein = MoveTransition(3.0, enter=offscreenright, enter_time_warp=_warper.easein)
다음 코드에서 "a"는 퇴장하고(leave 및 leave_time_warp 사용), "b"는 위치가 바뀌며(time_warp 사용), "c"는 등장합니다(enter 및 enter_time_warp 사용). "d"는 전후에 같은 태그를 사용하므로 등장이나 퇴장이 아니라 위치 변경으로 간주합니다.
define some_move_trans = MoveTransition(...) label start: show a show b at left show ugly_eileen as d at right e "이것은 대사입니다!" hide a show b at right show c show pretty_eileen as d at left with some_move_trans
"d"가 이동하는 동안 ugly와 pretty 중 어느 Eileen을 표시할지는 old 값에 따라 다릅니다. old가 기본값인 False이면 ugly_eileen이 즉시 pretty_eileen으로 바뀐 뒤 이동합니다. old가 True이면 ugly_eileen이 이동한 뒤 즉시 pretty_eileen으로 바뀝니다.
- MultipleTransition(args)
여러 화면 전환을 순서대로 표시할 수 있는 화면 전환을 반환합니다.
- args
홀수 개의 항목을 담은 리스트입니다. 첫째, 셋째 등 홀수 번째 항목은 장면이어야 하고 짝수 번째 항목은 화면 전환이어야 합니다. 장면은 다음 중 하나입니다.
디스플레이어블.
이전 장면을 사용하는 False.
새 장면을 사용하는 True.
거의 항상 첫 항목은 False, 마지막 항목은 True입니다.
*args가 아니라 리스트를 받는 매개변수 하나라는 점에 유의하세요.
args의 화면 전환들을 순서대로 적용합니다. 각 화면 전환에서 바로 앞의 화면이 이전 장면이며 바로 뒤의 장면이 새 장면입니다. 예를 들면 다음과 같습니다.
define logodissolve = MultipleTransition([ False, Dissolve(0.5), "logo.jpg", Pause(1.0), "logo.jpg", dissolve, True])
이 예제는 logo.jpg로 디졸브하고 1초 기다린 뒤 새 장면으로 디졸브합니다.
- Pause(delay)
delay초 동안 새 화면만 표시하는 화면 전환을 반환합니다. MultipleTransition의 일부로 유용할 수 있습니다.
- Pixellate(time, steps)
이전 화면을 픽셀화하며 사라지게 한 뒤 새 화면을 픽셀화하며 나타나게 하는 화면 전환을 반환합니다.
- time
화면 전환의 전체 시간으로, 초 단위입니다.
- steps
각 방향으로 진행할 단계 수입니다. 각 단계는 이전 단계보다 약 두 배 큰 픽셀을 만듭니다. 따라서 5단계 픽셀화는 32x32 픽셀을 만듭니다.
- PushMove(time, mode='pushright')
새 장면으로 이전 장면을 화면 밖으로 밀어내는 화면 전환을 반환합니다.
- time
화면 전환에 걸리는 시간입니다.
- mode
"pushright", "pushleft", "pushup", "pushdown"의 네 모드가 있으며, 각각 지정한 방향으로 이전 장면을 화면 밖으로 밀어냅니다.
define pushright = PushMove(1.0, "pushright") define pushleft = PushMove(1.0, "pushleft") define pushup = PushMove(1.0, "pushup") define pushdown = PushMove(1.0, "pushdown")
- Swing(delay=1.0, vertical=False, reverse=False, background='#000', flatten=True)
이전 장면을 축 주위로 90도 회전하여 사용자에게 옆면이 보이게 한 뒤 새 장면으로 바꾸고, 다시 90도 회전하여 새 장면을 보여 주는 화면 전환입니다.
- delay
화면 전환에 걸릴 시간입니다.
- vertical
참이면 x축 주위로 회전하여 픽셀이 세로로 이동합니다. 거짓이면 y축 주위로 회전하여 픽셀이 가로로 이동합니다.
- reverse
참이면 반대 방향으로 회전합니다.
- background
회전하는 동안 장면 뒤에 배치할 디스플레이어블입니다.
- flatten
참이면 회전하기 전에 장면들을 화면 크기의 이미지로 합칩니다. 이미지가 화면 안에 완전히 들어오지 않아 원치 않는 효과가 나타날 때 사용합니다.
화면 전환 계열
화면 전환 계열은 관련된 여러 화면 전환을 한꺼번에 정의하는 함수입니다.
- define.move_transitions(prefix, delay, time_warp=None, in_time_warp=None, out_time_warp=None, old=False, layers=['master'], **kwargs)
move및ease와 비슷한move transitions계열을 정의합니다. 지정한 prefix에 대해 다음 화면 전환들을 정의합니다.prefix - 위치가 바뀐 이미지들을 delay초 동안 새 위치로 이동하는 화면 전환입니다.
prefixinleft, prefixinright, prefixintop, prefixinbottom - 위치가 바뀐 이미지들을 delay초 동안 새 위치로 이동하고, 새로 표시하는 이미지는 해당 방향에서 등장하게 하는 화면 전환입니다.
prefixoutleft, prefixoutright, prefixouttop, prefixoutbottom - 위치가 바뀐 이미지들을 delay초 동안 새 위치로 이동하고, 새로 숨기는 이미지는 해당 방향으로 퇴장하게 하는 화면 전환입니다.
나머지 매개변수는
MoveTransition과 같습니다.- time_warp, in_time_warp, out_time_warp
이동 진행률을 나타내는 0.0에서 1.0 사이의 시간을 받아, 선형 이동의 진행률을 나타내는 같은 범위의 값을 반환하는 시간 워핑 함수입니다.
일정한 속도 대신 속도를 부드럽게 바꾸며 이미지를 이동하는 함수를 정의할 수 있습니다.
세 인수는 각각 화면에 남는 이미지, 새로 표시하는 이미지, 새로 숨기는 이미지에 사용합니다.
- old
참이면 화면 전환 도중 태그의 이미지가 바뀔 때 새 이미지보다 이전 이미지를 우선 사용합니다. 그 밖의 경우 새 이미지를 사용합니다.
- layers
화면 전환을 적용할 레이어입니다.
# This defines all of the pre-defined transitions beginning # with "move". init python: define.move_transitions("move", 0.5)
딕셔너리 화면 전환
Ren'Py에서 화면 전환을 받는 여러 곳에는 레이어 이름을 화면 전환에 매핑하는 딕셔너리를 대신 지정할 수 있습니다. 이 경우 각 화면 전환을 해당 레이어에 적용합니다.
딕셔너리를 사용하면 화면 전환 시 일반적으로 발생하는 대기가 발생하지 않습니다. 딕셔너리를 받는 문이 즉시 반환되고 다음 상호작용이 시작될 때 화면 전환이 실행되도록 예약합니다.
master 레이어에 적용하면 대사가 화면에 표시되는 동안 화면 전환을 진행할 수 있습니다. 예를 들면 다음과 같습니다.
define dis = { "master" : Dissolve(1.0) }
label start:
show eileen happy
with dis
e "안녕, 세상아."
텍스트가 화면에 표시되는 동안 디졸브가 진행됩니다.
딕셔너리 레이어 화면 전환은 화면 전환을 받는 모든 곳이 아니라 레이어에 화면 전환을 적용할 수 있는 곳에서만 사용할 수 있습니다. with 문, scene·show·hide 문의 with 절에서 사용할 수 있습니다. renpy.with_statement(), renpy.transition(), Show()·Hide() 액션 및 화면 전환을 받는 여러 config 변수에서도 사용할 수 있습니다. ATL - 애니메이션 및 변형 언어, ComposeTransition(), MultipleTransition()처럼 레이어를 다루지 않는 기능 안에서는 동작하지 않습니다.
window auto처럼 자체적으로 화면 전환을 발생시키는 문과 함께 사용하면 문제가 생길 수 있습니다. 다른 레이어에 적용하는 두 번째 딕셔너리 화면 전환으로 해결되는 경우가 많습니다. 예를 들어 대사창을 표시하거나 숨길 때 이상하게 깜빡이면 options.rpy를 다음과 같이 변경해 보세요.
define config.window_show_transition = { "screens" : Dissolve(.25) }
define config.window_hide_transition = { "screens" : Dissolve(.25) }
대사창이 전부 screens 레이어에 있으므로 이 방법이 동작합니다.
ATL 화면 전환
관련 항목: ATL - 애니메이션 및 변형 언어
ATL 트랜스폼으로 화면 전환을 정의할 수 있습니다. 이 트랜스폼은 old_widget 및 new_widget 인수를 받아야 하며, 각각 전환 전후의 화면을 나타내는 디스플레이어블이 전달됩니다.
ATL 화면 전환은 자체 delay 속성을 화면 전환의 지속 시간(초)으로 설정해야 합니다. events 속성으로 이전 디스플레이어블이 이벤트를 받지 못하게 할 수 있습니다.
transform spin(duration=1.0, *, new_widget=None, old_widget=None):
# Set how long this transform will take to complete.
delay duration
# Center it.
xcenter .5
ycenter .5
# Spin the old displayable.
old_widget
events False
rotate 0.
easeout (duration / 2) rotate 360.0
# Spin the new displayable.
new_widget
events True
easein (duration / 2) rotate 720.0
Python 화면 전환
Python 호출 가능 객체를 화면 전환으로 사용할 수 있습니다. 아래의 두 키워드 인수를 받아 화면 전환 효과를 수행하는 디스플레이어블을 반환해야 합니다. 일반적으로 다른 화면 전환에 처리를 위임합니다. 두 키워드 인수는 이전 화면을 나타내는 old_widget과 새 화면을 나타내는 new_widget입니다.
반환하는 디스플레이어블에는 화면 전환이 실행될 초 수로 설정한 delay 속성이 있어야 합니다.
예를 들면 다음과 같습니다.
init python:
def dissolve_or_pixellate(old_widget=None, new_widget=None):
if persistent.want_pixellate:
return pixellate(old_widget=old_widget, new_widget=new_widget)
else:
return dissolve(old_widget=old_widget, new_widget=new_widget)
따라서 모든 종류의 화면 전환을 이 두 키워드 인수로 호출하면, 전달한 두 디스플레이어블 사이의 화면 전환을 애니메이션으로 표시하는 디스플레이어블을 얻습니다.
scene, show, hide 뒤의 자동 화면 전환
Ren'Py는 연속된 scene, show, hide 문 뒤에 화면 전환을 자동으로 표시할 수 있습니다. _scene_show_hide_transition 변수에 사용할 화면 전환을 설정하면 켜집니다.
하나 이상의 scene, show, hide 문 뒤에 화면 전환이 발생합니다. 단, 바로 뒤에 with 문이 있거나 여러 window 문처럼 대사창 관리로 인한 화면 전환이 있으면 발생하지 않습니다. 메뉴 컨텍스트에서도 비활성화됩니다.
예를 들면 다음과 같습니다.
define _scene_show_hide_transition = Dissolve(0.25)
label start:
scene bg washington
show eileen happy
"대사창이 화면 전환으로 나타났기 때문에 여기서는 전환 효과가 보이지 않아요."
show lucy mad at right
"여기서는 화면 전환이 일어나요."
hide lucy mad
show eileen vhappy
"그리고 여기서도 화면 전환이 일어나죠."