에프터이펙트에서 수십개 이상의 키프레임 생성시 수동으로 만들려면 상당한 시간이 소요됩니다. 하지만 이럴때 Expression(표현식)을 사용하면 손쉽게 여러가지 동작들을 만들어 낼수있습니다.
JavaScript(자바스크립트) 언어를 기반으로 사용하지만 자바스크립트를 잘 알지 못해도 사용 할 수 있습니다. 어도비 홈페이지에서 제공하는 예제 표현식을 통하여 만들고, 수정하고, 응용하는 다양한 Expression(표현식)을 알아보겠습니다. / (본문은 간단한 기본베이스만 작성했습니다.)
(이 글은 CC 2017버전을 기준으로 작성되었습니다)
익스프레션 생성하기
[Alt]를 누른상태에서 해당속성의 키프레임 생성을 클릭하면 익스프레션이 생성됩니다. 또는 해당 속성을 선택한 상태에서 상단의 [Animation] → [Add Expression]을 클릭하거나 단축키 [Alt + Shift + =]도 가능합니다.
01. Enable Expression: 익스프레션 On/Off
02. Expression Graph: 적용된 변화 값을 그래프형태로 보기
03. Expression pick whip: 속성과 속성을 동기화 시켜줌 / Parent 속성과 같음
04. Expression language menu: 익스프레션 언어를 선택하여 사용 할 수 있음
05. Expression control box: 익스프레션 언어를 입력 및 수정 할 수 있음 / 입력하는 동안 미리보기 불가능
익스프레션이 활성화 되어있는 동안은 붉은색으로 표시됩니다.
자주사용하는 익스프레션
개인적으로 자주사용하는 익스프레션입니다.
흔들기
wiggle(초당 변화횟수, +-범위) / 카메라를 자연스럽게 움직일때 wiggle을 많이 사용
ex)
scale 속성: wiggle(1,40) 기본값 0기준 -40 ~ 40사이 값으로 설정 / 그러나 scale은 %값이기 때문에 -값은 전부 0으로 변경됨 / 만약 기본값이 40이면 0 ~ 80사이 값으로 설정됨
position 속성: wiggle(1,40) 위치값이 -40 ~ 40 사이에서 불규칙적으로 움직임
rotation 속성: wiggle(1,40) 회전값이 -40 ~ 40도 사이에서 불규칙적으로 회전
무작위
random(최소값, 최대값)
ex)
좌표 무작위 설정: random([0,0],[720,480])
%값 무작위 설정: random(0,100)
최소값 생략 가능: random(100) = random(0,100)과 같은 의미
0이 나올 확률 증가: random(-100,100)
R,G,B,A 색상 순서: random([1,1,1,1])
반복
loopIn("속성값") / loopOut("속성값")
ex)
키프레임 반복: loopOut("cycle")
키프레임 왕복: loopOut("pingpong")
현재위치를 고수하며 계속 반복: loopOut("offset")
자주사용하는 익스프레션 영상
익스프레션 간단한 수학연산
심볼 | 기능 |
+ | 더하기 |
- | 빼기 |
/ | 나누기 |
* | 곱하기 (시계 방향) |
*-1 | 원래 연산의 반대 연산 수행(예: 시계 방향을 반시계 방향으로) |
익스프레션 Math(수학) 함수
Method | 기능 | 부연설명 | 함수 기본형 |
abs(x) | 절대값 | -값을 +값으로 바꿔줌 | Math.abs(a) |
sin(x) | 사인값 | 원운동 그래프 | Math.sin(time*Math.PI*1/주기(초))*파고 |
cps(x) | 코사인값 | 원운동 그래프 | Math.cos(time*Math.PI*1/주기(초))*파고 |
tan(x) | 탄젠트값 | 뒤집힌 그래프 | Math.tan(time*Math.PI*1/주기(초))*파고 |
ceil(x) | 올림 | 소수점 첫째자리 올림 | Math.ceil(a*N)*N / N=10(둘째자리), 100(셋째자리)... 올림 |
floor(x) | 내림 | 소수점 첫째자리 내림 | Math.floor(a*N)*N / N=10(둘째자리), 100(셋째자리)... 내림 |
round(x) | 반올림 | 소수점 첫째자리 반올림 | Math.round(a*N)*N / N=10(둘째자리), 100(셋째자리) 반올림 |
log(x) | 로그값 | 로그값 출력 | Math.log(a) / log0=무한대 infinity(∞)로 출력 |
max(x,y) | x,y중 최대값 | 둘중 더 높은값 출력 | a = 4 b = Math.floor(time) Math.max(a,b) //일경우 a>b면 a출력 a<b면 b출력 |
min(x,y) | x,y중 최소값 | 둘중 더 낮은값 출력 | Math.min(a,b) |
sqrt(x) | 루트값 | 루트값 출력 | Math.sqrt(a) |
pow(x,y) | x의 y제곱 | 제곱값 출력 | Math.pow(a,b) |
random() | 무작위값 | 무작위값 출력 | Math.random(a,b) |
PI | 파이 | 원주율 출력 | Math.PI |
익스프레션 리스트
익스프레션 사용시 주의사항
프로그래밍 할 때 당연시 되는 부분으로 아래 내용을 지켜야 작동합니다.
01. 대/소문자 구분: 소문자로 시작하지만 다음 단어는 대문자로 표기함 / 예) thisComp, lookAt, loopOut 등)
02. 쉼표/마침표등 기호 구분: 다수의 함수를 사용할경우 , .의 구분이 중요함
03. 줄변경시 세미콜론 사용: 익스프레션 문장에서 줄변경시 ;(세미콜론)을 사용
04. 괄호 사용: ()로 열고 닫혀있는지 확인
05. 대상의 존재여부: 대상 레이어가 존재하는지, 속성 대 속성인지, 속성이 제대로 이어졌는지 확인
'프로그램 > After Effects' 카테고리의 다른 글
에프터이펙트 #35 이펙트 적용하기 (0) | 2017.06.22 |
---|---|
에프터이펙트 #34 Ray-traced 3D (+CINEMA 4D) (6) | 2017.06.15 |
에프터이펙트 #32 트래커 (10) | 2017.06.13 |
에프터이펙트 #31 브러쉬 & 페인트 (0) | 2017.06.08 |
에프터이펙트 #30 퍼펫 핀 툴 (0) | 2017.06.04 |