
들어가며
After Effects를 처음 배울 때는 키프레임만 잘 찍어도 꽤 많은 모션을 만들 수 있어요. 그런데 실무를 하다 보면 어느 순간부터 “이걸 매번 손으로 찍는 게 맞나?” 싶은 구간이 생겨요. 예를 들면 텍스트가 미세하게 흔들려야 한다거나, 아이콘이 계속 회전해야 한다거나, 짧게 만든 애니메이션을 영상 끝까지 반복해야 하는 경우예요.
저도 교대역 근처에서 IT 쪽 일을 하면서 외주 모션그래픽 작업을 같이 하다 보니, 짧은 납기 안에서 수정 대응을 빠르게 해야 할 때가 많았어요. 특히 브랜드 영상이나 서비스 소개 영상은 “조금 더 자연스럽게 흔들어주세요”, “이 루프가 끊기지 않게 해주세요” 같은 피드백이 자주 오거든요. 이때 After Effects 표현식(Expression)을 알고 있으면 작업 속도가 확 달라져요.
오늘은 표현식 입문에서 가장 많이 쓰는 wiggle, time, loopOut을 중심으로 정리해볼게요. 처음 보면 코드 같아서 겁날 수 있지만, 사실 몇 가지 패턴만 익히면 실무에서 바로 써먹기 좋아요.
핵심 내용
After Effects 표현식은 레이어의 속성에 간단한 수식을 넣어서 자동으로 움직임을 제어하는 기능이에요. 위치, 회전, 스케일, 불투명도 같은 속성에 적용할 수 있고, JavaScript와 비슷한 문법을 사용해요.
표현식을 추가하는 방법은 간단해요.
1. 레이어를 선택해요.
2. P, R, S, T 등으로 원하는 속성을 열어요.
3. Mac 기준 Option을 누른 채 스톱워치 아이콘을 클릭해요.
4. 표현식 입력창에 코드를 작성해요.
가장 먼저 익히면 좋은 표현식은 wiggle이에요.
`javascript
wiggle(2, 30)
`
이 표현식은 초당 2번, 최대 30픽셀 범위 안에서 랜덤하게 흔들리게 만든다는 뜻이에요. 위치(Position)에 넣으면 카메라 핸드헬드 느낌이나 떠 있는 오브젝트의 미세한 움직임을 만들 수 있어요.
예를 들어 텍스트가 너무 정적으로 보일 때는 Position에 이렇게 넣어볼 수 있어요.
`javascript
wiggle(0.8, 10)
`
너무 과하지 않게 천천히 흔들리는 느낌이 나요. UI 모션이나 기업 영상에서는 과한 랜덤보다 이런 낮은 수치가 더 고급스럽게 보여요.
다음은 time이에요. time은 현재 시간을 초 단위로 반환하는 값이에요. 계속 움직이는 회전이나 스케일 변화에 자주 사용해요.
`javascript
time * 60
`
이 표현식을 Rotation에 넣으면 1초에 60도씩 계속 회전해요. 로딩 아이콘, 백그라운드 패턴, 장식 요소에 자주 쓰는 방식이에요.
스케일에 적용할 때는 약간 다르게 써야 해요. Scale은 [x, y] 배열 값을 받기 때문이에요.
`javascript
s = 100 + Math.sin(time 3) 5;
[s, s]
`
이렇게 하면 100%를 기준으로 부드럽게 5% 정도 커졌다 작아지는 모션을 만들 수 있어요. 버튼 강조, 심장 박동 느낌, 캐릭터의 숨 쉬는 움직임에 좋아요.
마지막은 loopOut이에요. 키프레임으로 만든 애니메이션을 반복할 때 가장 많이 쓰는 표현식이에요.
`javascript
loopOut("cycle")
`
예를 들어 0초에서 1초까지 아이콘이 위아래로 움직이는 키프레임을 만들고 Position에 이 표현식을 넣으면, 그 움직임이 계속 반복돼요.
loopOut에는 몇 가지 타입이 있어요.
`javascript
loopOut("cycle")
loopOut("pingpong")
loopOut("continue")
loopOut("offset")
`
cycle은 처음부터 끝까지 반복하는 기본 루프예요. pingpong은 갔다가 되돌아오는 방식이라 왕복 움직임에 좋아요. continue는 마지막 속도를 유지해서 계속 진행하고, offset은 이전 애니메이션 값을 누적하면서 반복해요.
실무에서 제일 많이 쓰는 건 cycle과 pingpong이에요.
`javascript
loopOut("pingpong")
`
이건 카드가 살짝 올라갔다 내려오는 애니메이션, 화살표가 위아래로 움직이는 인터랙션 힌트 같은 곳에 잘 맞아요.
실무 팁을 몇 가지 정리해볼게요.
첫 번째, wiggle은 수치를 작게 시작하는 게 좋아요. 처음부터 wiggle(10, 100)처럼 크게 넣으면 화면이 불안정해 보여요. 모션그래픽에서는 “움직인다”보다 “살아 있다” 정도의 느낌이 더 중요할 때가 많아요.
`javascript
wiggle(0.5, 8)
`
이 정도부터 시작해서 필요한 만큼 올리는 걸 추천해요.
두 번째, 표현식은 Null Object와 함께 쓰면 관리가 쉬워요. 여러 레이어에 같은 흔들림을 주고 싶다면 각각의 레이어에 무작정 표현식을 넣기보다, Null에 컨트롤러를 만들고 연결하는 방식이 좋아요. 수정 요청이 왔을 때 한 군데만 바꾸면 되니까요.
세 번째, 반복 애니메이션은 시작과 끝 프레임을 신경 써야 해요. loopOut("cycle")을 썼는데 튀는 느낌이 난다면 대부분 첫 키프레임과 마지막 키프레임 값이 자연스럽게 연결되지 않아서 그래요. 완전한 루프를 만들려면 마지막 키프레임을 첫 키프레임과 같은 값으로 맞추거나, pingpong을 쓰는 게 더 자연스러울 수 있어요.
자주 하는 실수도 있어요.
가장 흔한 실수는 표현식을 잘못된 속성에 넣는 거예요. 예를 들어 Rotation에는 숫자 하나가 들어가지만, Position이나 Scale은 보통 [x, y] 형태의 배열이 들어가요. 그래서 Scale에 아래처럼 쓰면 오류가 날 수 있어요.
`javascript
100 + Math.sin(time) * 10
`
Scale에는 이렇게 써야 안정적이에요.
`javascript
v = 100 + Math.sin(time) * 10;
[v, v]
`
또 다른 실수는 대소문자예요. loopout이 아니라 loopOut이에요. After Effects 표현식은 이런 부분에 민감해서 오타가 나면 바로 에러가 떠요.
실무 활용 예시
실제 프로젝트에서 자주 쓰는 예시를 하나 들어볼게요. SaaS 서비스 소개 영상에서 대시보드 UI가 등장하고, 그 위에 알림 카드와 그래프 요소들이 떠 있는 장면이 있다고 해볼게요.
이때 화면 전체가 너무 정적이면 영상이 PPT처럼 보일 수 있어요. 그래서 배경의 작은 도형에는 약한 wiggle을 넣어요.
`javascript
wiggle(0.3, 6)
`
알림 아이콘은 Rotation에 time을 넣어 살짝 계속 움직이게 만들 수 있어요.
`javascript
Math.sin(time 4) 8
`
이 표현식은 좌우로 8도 정도 흔들리는 느낌을 줘요. 알림이 살아 있는 것처럼 보이지만 과하지 않아요.
그리고 아래로 내려가는 화살표나 스크롤 힌트는 Position 키프레임을 2개 찍고 loopOut("pingpong")을 넣어요.
`javascript
loopOut("pingpong")
`
이렇게 하면 짧은 키프레임만으로도 영상 끝까지 자연스럽게 반복되는 모션을 만들 수 있어요. 클라이언트가 “이 장면을 2초 더 늘려주세요”라고 해도 키프레임을 다시 늘릴 필요가 거의 없어서 수정 대응이 빨라져요.
저는 특히 외주 작업에서 표현식을 “시간을 줄이는 장치”로 많이 봐요. 멋있는 테크닉이라기보다, 반복 작업을 줄이고 수정 가능한 구조를 만드는 도구에 가까워요.
마무리
오늘 정리한 wiggle, time, loopOut만 잘 써도 After Effects 작업 방식이 꽤 달라져요.
wiggle은 랜덤하고 자연스러운 흔들림을 만들 때 좋고, time은 계속 진행되는 움직임을 만들 때 유용해요. loopOut은 짧게 만든 키프레임 애니메이션을 반복해서 실무 효율을 높여줘요.
처음부터 복잡한 표현식을 외우려고 하기보다, 자주 쓰는 패턴을 몇 개 저장해두고 상황에 맞게 숫자만 바꿔보는 걸 추천해요. 다음에 이어서 배우면 좋은 주제는 Slider Control, Checkbox Control 같은 Expression Control이에요. 이걸 익히면 표현식을 직접 열지 않고도 패널에서 움직임을 조절할 수 있어서, 실무 템플릿 제작에 훨씬 강해져요.
---
참고 영상
'Daily > 일상' 카테고리의 다른 글
| [AE/모그] After Effects 인터페이스 완전 정복 — 패널 배치부터 단축키까지 (0) | 2026.06.06 |
|---|---|
| [AE/모그] 브랜드 아이덴티티에 맞는 모션 디자인 시스템 구축하기 (0) | 2026.06.04 |
| [AE/모그] 유튜브 채널 오프닝/인트로 제작 — 5분 완성 실전 가이드 (0) | 2026.06.02 |
| [AE/모그] 모션그래픽 포트폴리오 만들기 — 채용과 프리랜서 모두 통하는 구성 (0) | 2026.05.30 |
| [AE/모그] 클라이언트 브리핑에서 납품까지 — 모션그래픽 외주 전체 프로세스 (0) | 2026.05.28 |