본문 바로가기

렌파이/연출하기

화면 전환 효과 - 트랜지션 (2) 활용

트랜지션 클래스를 활용하면 기존 트랜지션 효과 외에 복합적인 트랜지션도 만들 수 있습니다.

간단한 트랜지션 클래스

미리 마련된 트랜지션 효과를 이용하는 대신 자잘한 부분을 수정하고 싶다면 아래 목록에 있는 트랜지션을 활용하면 됩니다.
트랜지션 클래스 활용은 대략 이렇게 하면 됩니다.


되도록이면 여기 적힌 스크립트 복붙해서 한번 눈으로 확인해보시는 쪽을 추천합니다.

Dissolve

Dissolve(time, alpha = False , time_warp)
디졸브 효과를 만드는 클래스입니다. time 에 0.5를 입력하면 기존 dissolve 트랜지션과 같은 트랜지션을 만듭니다.

time - 트랜지션 효과가 적용되는 시간. 1.0이라 쓰면 디졸브 트랜지션이 1초 동안 나타납니다.

alpha - True면 이 트랜지션을 적용한 이미지의 알파값이 바뀌는 식으로 트랜지션이 작동합니다. 예를 들면 포토샵 등에서 윗 레이어의 투명도를 바꾸는 식으로 화면 전환 효과가 일어난다는 뜻입니다. False면 이 트랜지션이 적용되었을 때의 화면으로 트랜지션 효과를 만듭니다. 미리 예측된 결과물로 전환 효과를 만들기 때문에 False로 설정하는 쪽이 효과적으로 작동한다고 하는군요... 테스트해봤지만 차이를 잘 모르겠습니다;.. 어쨌든 되도록 False로 설정해주는 쪽이 좋겠네요.

time_warp - 0.0에서 1.0 사이의 값을 받아 같은 범위의 값을 반환하는 함수 이름을 적어야 합니다. 음. 예를 들면 ease 효과를 쓸 때처럼 나타나거나 사라질 때 처음 몇 초간은 확 사라지다가 나중에는 천천히 사라져가는 그런 효과를 낼 수 있겠죠.

여기 입력하는 함수에 따라서 천차만별의 디졸브효과를 만들 수 있겠습니다..만 일회성으로 쓸 트랜지션 효과라면 여기에 쓸 함수를 짜느니 그냥 ATL효과를 이용하는 게 나을 것 같습니다.. 게다가 저처럼 삼각함수는 다 잊어버려서(.. 코사인이고 뭐고 죄다 모른다면 식을 어떻게 만들어야 할지도 감 안 잡힐테고요...


Fade

Fade(out_time, hold_time, in_time, color='#000000')
페이드 효과를 만드는 클래스입니다. 이 클래스로 만들어진 트랜지션이 바로 fade입니다. fade = Fade(.5, 0, .5) 라고 입력하면 기본 페이드 트랜지션, 검은색으로 바뀌었다가 원래화면으로 돌아오는 트랜지션이 만들어집니다.

color - 이 트랜지션을 사용했을 때 바뀔 화면 색을 지정하는 부분입니다. 색상값을 문자열로 입력받습니다. 만약에 '#ffffff'라고 입력하면 페이드 아웃이 아니라 플래시 느낌의 트랜지션이 만들어집니다.
out_time - 화면이 color에 지정한 색으로 바뀌는 데 걸리는 시간을 지정합니다.
hold_time - color에서 지정한 색으로 화면을 몇 초 동안 유지할지 지정합니다.
in_time - color에서 지정한 색이 띄워졌던 화면에서 트랜지션 효과를 지정하고 나서 바뀔 화면으로 전환하는 데 걸리는 시간을 지정합니다.


Pause

Pause(delay)
화면을 delay동안 멈춥니다. 물론 멈춘 동안이라도 사용자가 클릭하면 다음 진행상황으로 넘어갑니다.

delay - 화면 멈출 시간. 단위는 초입니다.



Pixellate

Pixellate(time, step)
이전 화면을 픽셀화한 다음에 새 화면으로 전환합니다. 이 클래스로 만들어진 트랜지션이 pixellate 입니다.

time - 화면 전환하는 데 걸리는 시간입니다.
step - 픽셀화를 몇 단계에 걸쳐 진행할지 결정하는 값입니다. 픽셀 크기는 전단계의 2배로 커집니다. 예를 들면 이 값을 5로 입력했을 때 화면 전환할 때 이전 화면을 5번 걸쳐 픽셀화 하며, 화면에 5번째로 표시되는 픽셀의 크기는 32입니다. (2 x 2 x 2 x 2 x 2 = 32)

CropMove

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)
사각형을 움직이는 식으로 트랜지션 효과를 만드는 클래스입니다. slide 계열, irisin/out , wipe 계열의 트랜지션은 모두 이 클래스로 만든 트랜지션입니다.

time - 트랜지션하는 데 걸리는 시간입니다.
mode - 여기에 slide 계열/ irisin/out, wipe 계열 트랜지션의 이름을 적고, time값을 바꾸면 해당 트랜지션이 적용되는 시간을 정할 수 있습니다.
예를 들어 CropMove(2.0, "irisin") 이라고 적으면 2초 동안 irisin 트랜지션을 적용하는 새로운 트랜지션을 만들게 됩니다.

mode 뒤에 나와있는 startcrop등의 값은 mode 값을 "custom" 이라고 입력해야 바꿀 수 있습니다. 설명하려면 조금 길어서 자세한 건 다음 글에서 다루겠습니다.



합성 트랜지션 클래스

트랜지션을 다수 이용하여 또다른 트랜지션을 만드는 클래스 목록입니다.

MultipleTransition

MultipleTransition(args)
트랜지션을 여러 개 입력하면 입력한 트랜지션을 순서대로 보여주는 트랜지션을 만듭니다.

args - 값을 여러개 받습니다.

홀수번째, 그러니까 첫 번째, 세 번째, 다섯 번째.. 등에 적은 값은 True 나 False 나  디스플레이어블이어야 합니다. True는 이전 장면, False는 새로 표시할 장면을 뜻합니다.

짝수번째, 두 번째, 네 번째, 여섯 번째에 적는 값은 트랜지션 이름이어야 합니다. 물론 기존 트랜지션 이름을 적을 수도 있고 트랜지션 클래스로 만든 커스텀 트랜지션도 입력할 수 있습니다.

값의 갯수는 홀수이어야 합니다.

그림으로 예를 들자면 MultipleTransition에는 이런 느낌으로 값을 입력해야 합니다.



ComposeTransition

ComposeTransition(trans, before, after)
세 개의 트랜지션을 같은 타이밍에 적용하는 트랜지션입니다.

before - 사라지는 화면에 적용할 트랜지션 이름입니다.
after - 새로 나타날 화면에 적용할 트랜지션 이름입니다.
trans - before/after 를 적용할 때 동시에 적용할 트랜지션 이름입니다.... 이건 눈으로 확인하시는 쪽이 이해하기 빠르실 것 같습니다;