본문 바로가기

렌파이/연출하기

이미지를 움직이거나 모양이 변경되도록 만들기 - ATL


ATL은 Animation and Transform Language 의 약자입니다. 움직임이나 그림변환을 할 때 사용하는 언어라는 뜻으로, 렌파이에서만 이용할 수 있는 언어입니다. 이 ATL을 이용하면 그림을 마음에 드는 곳에 자유로이 놓거나, 자르거나, 돌리거나 할 수 있으며 그림이 움직이도록 만들 수도 있습니다.

ATL 언어는 image, show, scene, transform 명령문을 블록으로 만들면 해당 블록에서 사용할 수 있습니다. 이렇게 만들어진 블록은 ATL 블록이라고 합니다. 즉, ATL 언어는 ATL 블록에서만 이용할 수 있습니다.

image 문과 ATL


이전에는 image eileen happy = "eileen_happy.png" 라고 적어서 이용해야 했는데 ATL 을 이용하면 블록 안에 이미지 파일 이름을 적어 배정할 수 있습니다. pos, anchor, align 속성을 입력해서 위치를 사전에 지정할 수도 있습니다. 물론 이게 다는 아닙니다. linear 를 이용하면 움직이는 이미지를 배정할 수 있게 됩니다.

linear

linear 는 간단히 얘기하자면, 주어진 시간동안 일정하게 작동하도록 만든다는 의미..라고 생각하시면 됩니다.
얼마동안 무엇을 어떻게 작동하는지는 linear 오른쪽에 적은 숫자, linear 를 적용할 대상, linear 맨 오른쪽에 적은 ATL 속성에 따라 달라집니다.


위 스크립트를 해석하자면 다음과 같습니다.

"eileen_happy.png"는 1.0 초 동안 xalign 0.0 에서부터 xalign 1.0 까지 일정한 속도로 이동한다."

스크립트에서는 linear 오른쪽에 xalign 대신 다른 ATL 속성을 적어주면 작동방식을 바꿀 수 있습니다.


linear 대신에 ease, easein, easeout 을 사용할 수도 있습니다.

ease 를 쓰면 움직임을 시작하고 끝낼 때는 천천히 작동하도록,
easein 을 쓰면 시작할 때는 빠르다가 나중에는 천천히 작동하도록,
easeout 을 쓰면 천천히 시작했다가 빠르게 끝나도록,

동작 속도를 바꿀 수 있습니다. 사실 말로 읽는 것보다는 눈으로 보는 게 100배 이해하기 쉽습니다.; 위에 적은 스크립트에서 linear 자리에 ease, easein, easeout 을 적어 눈으로 확인해보세요.

show, scene 문과 ATL

show 와 scene 문에도 image에 적었던 ATL 언어를 똑같이 쓸 수 있습니다. image 에 ATL 블록을 이용했을 때는 해당 이미지를 나타낼 때마다 움직임등이 적용되어 나타나는데, show 나 scene 문에 적는 것은 일회용이라는 점만 다릅니다. 따라서 효과를 한 번만 줄 때는 show, scene 블록에 ATL을 적는 것이 좋습니다.

똑같은 이미지에 서로 다른 ATL을 사용하고 싶은 경우에는 transform 문을 이용하면 됩니다.

transform 문과 ATL

transform 은 ATL을 쓸 수 있는 또다른 ATL 블록입니다. 일단 아래 스크립트를 복사해서 붙여넣기 하고 eileen happy 그림이 어떻게 작동하나 확인해봅시다.


transform 에 ATL을 적으면 그 자체로는 아무 동작도 안 합니다. 하지만 show 나 scene 문에 at 절을 이용하여 transform 을 적용하면 그림에 transform 에 적힌 ATL 블록을 적용할 수 있습니다.

FAQ

움직이고 확대하고 회전하고 투명도 바꾸는 게 끝인가요.

ATL에서는 linear 문 외에도 choice 나 parrallel, block 등 여러 명령문을 이용할 수 있고, 위치속성, zoom, alpha, rotate 외에도 size, crop 등 다양한 속성을 사용할 수 있습니다. 자세한 내용은 매뉴얼에 있는 ATL 명령문 항목트랜스폼 속성 항목을 참고하세요.
(지금 보니까 해괴망측하게 번역해놨네요... 시간나는대로 천천히 고치겠습니다;)