본문 바로가기
빠르크 서브3 아이콘
NEW · 1.3 업데이트

빠르크 서브3파이널컷 프로 자동 자막 플러그인

파이널컷 프로 안에서 한국어 자막 만들기와 무음 구간 자르기를 한 번에 처리해요. 1.3에서는 다시 말한 곳(NG) 찾기와 맞춤법 다듬기로 자막 다듬는 시간을 줄였어요. 무료로 배포합니다.

  • 한국어 자동 자막 · 무음 삭제
  • NG 찾기
  • 맞춤법·띄어쓰기 다듬기
  • 작업 이어하기
  • 유튜브 챕터 → FCP 마커
  • 강조 단어 색

최신 글

    애프터이펙트 표현식(Expression) 8편 - loopOut으로 키프레임 움직임 끝없이 반복하기

    빠르크의3분강좌 2026. 11. 12.
    반응형

     

     

    7편에서는 linear로 키프레임 없이 움직임을 만들었습니다. 8편은 반대로 키프레임을 찍어 두고 그 움직임을 반복시키는 loopOut입니다. 로딩 아이콘이 계속 돌거나, 화살표가 위아래로 깜빡이거나, 배경 요소가 끝없이 떠다니는 장면에 씁니다. 키프레임 두세 개만 있으면 컴포지션 끝까지 알아서 이어집니다.

    이걸 알면 달라지는 것

    "이 움직임을 계속 반복하게 해 줘"라고 AI에게 부탁하면 loopOut()이 들어간 코드가 옵니다. 그런데 키프레임이 하나도 없는 속성에 넣으면 아무 일도 일어나지 않습니다. 따옴표를 빼먹으면 오류가 나고, 반복 방식이 cycle이라 끝에서 처음으로 툭 튀는 경우도 있습니다. loopOut이 무엇을 반복하는지, 반복 방식이 네 가지라는 것을 알면 이런 코드를 바로 고칠 수 있습니다.

    화면은 영문 인터페이스로 캡처했습니다. 한글 UI에서는 Rotation은 회전, Position은 위치, Opacity는 불투명도로 보입니다. 영문판으로 바꾸는 방법은 한글판 애프터이펙트 영문판으로 바꾸는 방법에 정리해 두었습니다.

    1. 키프레임을 먼저 찍습니다

    loopOut은 이미 있는 키프레임의 움직임을 반복합니다. 키프레임이 없으면 반복할 것이 없습니다. 셰이프 레이어로 별을 하나 만들고(도형 도구의 별 모양) Rotation(회전)에 키프레임 두 개를 찍습니다.

    • 0초: 0도
    • 1초: 360도

     

     

    한 번 도는 움직임입니다. 위 화면은 1초 지점으로, 회전값이 1x+0.0°(360도)입니다. 1초 이후에는 360도에서 멈춥니다.

    2. loopOut() 넣기

    Rotation의 스톱워치를 Option(Alt) + 클릭하고 입력합니다.

    loopOut()

    키프레임 두 개를 찍은 상태에서 표현식을 넣으면 1초 뒤에도 계속 돕니다. 괄호 안이 비어 있으면 "cycle"을 쓴 것과 같습니다.

     

     

    위 화면은 5초 10프레임입니다. 회전값이 5바퀴를 넘은 값이 아니라 0x+120°로 나옵니다. "cycle"은 0도에서 360도까지의 움직임을 처음부터 다시 되풀이할 뿐 값을 쌓아 가지 않기 때문입니다. 1초에 한 바퀴씩, 5.33초면 5바퀴째에서 3분의 1(120도) 지점입니다.

    3. 반복 방식 네 가지

    괄호 안에 따옴표로 방식을 적습니다.

    loopOut("cycle")
    loopOut("pingpong")
    loopOut("offset")
    loopOut("continue")
    방식 하는 일 잘 맞는 곳
    "cycle" 처음부터 다시 반복 (기본값) 한 바퀴 도는 회전, 깜빡임
    "pingpong" 갔다가 되돌아오기를 반복 위아래로 흔들리는 화살표, 숨쉬기
    "offset" 끝난 값에서 이어서 반복 계속 앞으로 나아가는 움직임
    "continue" 마지막 속도를 유지하며 계속 속도가 붙은 채 나가는 움직임(Easy Ease면 그 자리에서 멈춤)

    같은 키프레임에 방식만 바꿔 가며 비교해 보았습니다. 별 4개의 Position X에 0초 300, 1초 900 키프레임을 똑같이 찍고, 방식만 다르게 넣었습니다.

     

     

    위 화면은 1초 29프레임(약 2초)입니다.

    레이어 방식 X 값 이유
    1 "cycle" 880 2초째에 처음부터 다시 시작해서 거의 끝(900)에 와 있음
    2 "pingpong" 320 1초에 900에 닿은 뒤 되돌아와서 거의 시작(300)에 와 있음
    3 "offset" 1480 900에서 이어서 한 번 더 600을 이동
    4 "continue" 1479.6 마지막 속도로 계속 직진

    별이 3개만 보이는 이유는 3번과 4번이 같은 자리에 겹쳐 있기 때문입니다. 키프레임을 선형(Linear)으로 찍으면 "offset"과 "continue"는 거의 같게 보입니다. 키프레임에 Easy Ease를 주면 달라집니다. 마지막 키프레임에서 속도가 0이라 "continue"는 그 자리에서 멈추고, "offset"은 같은 움직임을 이어서 반복합니다. 이렇게 이어서 가는 움직임이 필요할 때는 "offset", 속도를 이어받아 계속 가야 할 때는 "continue"입니다.

    4. 키프레임 몇 개를 반복할지 정하기

    두 번째 숫자로 "마지막 키프레임 몇 개를 반복할지"를 정합니다. 0이면 전부입니다.

    loopOut("cycle", 2)

    키프레임이 5개 있다면 마지막 2개 구간만 반복합니다. 앞쪽 키프레임은 한 번만 재생되는 도입부가 되고, 그 뒤에 반복 구간이 이어지는 식입니다. 등장 애니메이션 뒤에 흔들림을 붙일 때 씁니다. "continue"는 이 숫자를 받지 않습니다.

    5. 활용: 로딩 스피너

    원호 하나를 만듭니다. Ellipse를 그리고 Add > Trim Paths를 넣어 End를 25%로 줄이면 꼬리가 있는 모양이 됩니다. 선 두께는 크게(43), Line Cap은 Round Cap으로 하면 끝이 둥글어집니다. 이 레이어의 Rotation에 아래처럼 합니다.

    1. 0초 0도, 1초 360도 키프레임
    2. 두 키프레임을 선택하고 F9(Easy Ease)가 아니라 선형으로 유지: 키프레임 우클릭 > Keyframe Interpolation > Interpolation을 Linear로
    3. loopOut() 입력

    선형으로 해 두어야 한 바퀴가 끝나는 순간과 다음 바퀴가 시작하는 순간 속도가 같아서 이음새가 안 보입니다. Easy Ease를 쓰면 매 바퀴마다 멈칫하며 돕니다.

     

     

    위 화면은 2초 29프레임에서 348도입니다. 1초에 한 바퀴를 돌아서 3초가 되기 직전이면 한 바퀴를 거의 다 돈 값이 나옵니다. 실제로 돌아가는 모습은 아래와 같습니다.

     

     

    6. 활용: 위아래로 흔들리는 화살표

    Position의 Y에 키프레임 두 개를 찍습니다.

    • 0초: 위쪽 값
    • 1초: 아래쪽 값(위쪽보다 60픽셀 정도 아래)

    그리고 loopOut("pingpong")을 넣으면 1초 간격으로 부드럽게 오르내립니다. 내려가는 데 1초, 올라오는 데 1초라서 한 번 오가는 데 2초가 걸립니다. 키프레임에 Easy Ease(F9)를 주면 양 끝에서 천천히 멈춰 더 자연스럽습니다. pingpong은 되돌아올 때 같은 길을 가므로 이음새 걱정이 없습니다.

     

     

    위 화면은 3초 15프레임에서 위쪽과 아래쪽의 중간쯤인 Y 519.4에 와 있는 모습입니다. 꼭짓점이 3개인 다각형을 아래로 향하게 했습니다. 키프레임 모양이 모래시계처럼 보이는 것이 Easy Ease를 준 표시입니다.

     

     

    7. loopIn: 시작 앞쪽도 반복

    loopOut은 마지막 키프레임 뒤를 반복합니다. 첫 키프레임 앞쪽을 반복하려면 loopIn을 씁니다. 방식과 숫자 쓰는 법은 똑같습니다.

    loopIn("cycle")

    레이어가 컴포지션 시작보다 앞서 나와 있는 경우처럼 앞쪽에도 움직임이 필요할 때만 씁니다. 대부분은 loopOut만으로 충분합니다.

    8. 자주 하는 실수

    증상 확인할 것
    아무 일도 일어나지 않는다 그 속성에 키프레임이 2개 이상 있는지
    오류가 난다 loopOut(cycle)처럼 따옴표를 빼먹지 않았는지 → loopOut("cycle")
    매 바퀴 끝에서 튄다 끝 키프레임 값과 처음 값이 같은지, 아니면 "pingpong"으로 바꿨는지
    매 바퀴 멈칫한다 키프레임이 Easy Ease인지(선형으로 바꾸기)
    레이어 끝에서 반복이 끊긴다 레이어 길이를 컴포지션 끝까지 늘렸는지
    처음 구간까지 같이 반복된다 loopOut("cycle", 2)처럼 반복할 키프레임 수를 정했는지

    AI에게 loopOut을 시킬 때 확인할 것

    AI가 짜 준 코드를 그대로 붙여 넣기 전에 이것만 보면 됩니다.

    • loopOut()만 있고 키프레임을 찍으라는 설명이 없으면, 키프레임이 먼저 있어야 합니다.
    • 따옴표 없이 loopOut(pingpong)처럼 쓴 코드는 오류가 납니다. "pingpong"으로 고칩니다.
    • 회전이나 위치가 "끝에서 튄다"면 "cycle" 때문일 수 있습니다. 왔다 갔다 하는 움직임이면 "pingpong"이 맞습니다.
    • time에 Math.sin을 곱하는 긴 코드를 줄 때가 있습니다. 같은 움직임을 키프레임 두 개와 loopOut("pingpong")으로 만들 수 있다면 그쪽이 고치기 쉽습니다.

    정리

    항목 핵심
    전제 키프레임이 먼저 있어야 함
    loopOut() 마지막 키프레임 뒤를 반복(기본 "cycle")
    "cycle" 처음부터 다시
    "pingpong" 갔다가 되돌아오기
    "offset" 끝난 값에서 이어서
    "continue" 마지막 속도로 계속
    loopOut("cycle", 2) 마지막 키프레임 2개만 반복
    loopIn 첫 키프레임 앞쪽 반복

    다음 편

    9편에서는 valueAtTime을 다룹니다. 다른 레이어나 같은 속성의 "몇 초 전 값"을 읽어 와서, 레이어마다 시간차를 두고 따라오는 움직임을 만들 때 씁니다.

     

    참고: Adobe After Effects 표현식 공식 문서, François Lefebvre 『After Effects: The Power of Expression』(개념 참고), Manuel Steinhauser 『Expressions Cheat Sheet』(예제 참고)

    반응형

    댓글