Show 이 섹션의 많은 예제는 Dan Ebberts가 제공한 표현식에 기반합니다. 샘플 프로젝트 다운로드다운로드 파일 받기 이 .aep 파일을 다운로드하여 다음 표현식 예제 작업을 시작하십시오. 레이어는 원을 그리며 회전합니다.다른 레이어의 속성을 사용하지 않고 표현식을 만들 수 있습니다. 예를 들어 구성 요소의 중심을 중심으로 레이어가 회전하도록 할 수 있습니다. 레이어를 선택합니다. P 키를 눌러 타임라인 패널에서 Position 속성을 표시합니다. 속성 이름 왼쪽에 있는 초시계를 Alt 키(Windows) 또는 Option 키(macOS)를 누른 상태에서 클릭합니다. var centerOfComp = [ ( thisComp.width / 2 ), ( thisComp.height / 2) ]; var circleOverTime = [ Math.sin( time ) * 50, -Math.cos( time ) * 50 ]; centerOfComp + circleOverTime; 임의로 흔들기흔들기 표현식은 가장 일반적인 After Effects 표현식 중 하나입니다. 임의의 값에 걸쳐 개체가 흔들립니다. 이 표현식을 사용하여 장면을 보다 자연스럽게 보이도록 만들 수 있습니다. 이 표현식을 레이어의 위치 속성에 추가합니다. 예를 들어, 흔들기(빈도, 양)에서 첫 번째 숫자는 초당 흔들기 수이고 두 번째 숫자는 흔들기 값입니다. 그래서, 흔들기(2,30)는 레이어를 2초당 모든 방향으로 최대 30픽셀로 흔들게 만들 것입니다. 슬라이더 컨트롤로 흔들기 제어슬라이더 컨트롤과 같은 표현식 컨트롤에 대한 연결로 값을 대체하여 표현식에 키프레임을 지정할 수 있습니다. wiggle() 표현식의 두 번째 인수를 슬라이더 컨트롤에 대한 연결로 대체하여 특정 시간에 시작하고 중지하도록 동작을 키프레임할 수 있습니다.
// 뚝딱 도구를 사용하여 슬라이더에 대한 “효과(...)” 연결을 만듭니다 var wiggleAmount = effect(“Wiggle Amount”)(“Slider”); // 슬라이더에서 설정한 양만큼 초당 4번 흔듭니다 wiggle( 4, wiggleAmount ); Overshoot일반적으로 관성 바운스로 알려진 이 표현식은 레이어 자체 키프레임의 애니메이션을 사용하여 자연스러운 오버슛을 만듭니다. 속도를 기반으로 한 키프레임에서 다음 키프레임으로 매개변수의 바운싱 동작을 만듭니다. 바운스는 물체가 이동하는 방향에 관계없이 발생합니다.이 애니메이션을 만들려면, After Effects에서 그래픽을 만들거나 가져옵니다. 애니메이션을 적용할 레이어의 위치 속성에 키프레임을 추가합니다. 레이어의 위치 속성에 다음 표현식을 추가합니다. // 오버슈트를 제어하기 위한 값을 설정합니다. // 이를 슬라이더 표현식 컨트롤에 연결하여 다른 설정을 빠르게 미리 봅니다. var amp = 40; var freq = 30; var decay = 50; // 가장 최근의 키프레임을 찾습니다. var nK = nearestKey(time); var n = (nK.time <= time) ? nK.index : --nK.index; var t = (n === 0) ? 0 : time - key(n).time; // 현재 시간이 키프레임보다 늦은 경우 오버슈트를 계산합니다. // 그렇지 않은 경우 원래 값을 사용합니다. if ( n > 0 && t < 1 ) { var v = velocityAtTime( key( n ).time - thisComp.frameDuration /10 ); value + v * amp * .001 * Math.sin(freq * .1 * t * 2 * Math.PI) / Math.exp(decay * .1 * t); } else { value; } 시간에 따라 회전뚝딱 도구를 사용하여 레이어 간에 회전 값을 연결하여 개체에 애니메이션을 적용할 수 있습니다. 시계가 작동하는 방식은 이 세 개의 원을 시계의 세 바늘로 간주합니다. 시침은 시침으로 움직이고 분침은 시계판의 전체 둘레를 회전합니다.
루프표현식을 사용하면 키프레임을 계속 추가하지 않고도 애니메이션을 반복할 수 있습니다. 예를 들어, 컴포지션이 끝날 때까지 여러 모양이 회전합니다. 여기에서 시작 회전에 대한 초기 키프레임과 끝 회전에 대한 다른 키프레임을 설정할 수 있습니다. 그런 다음 loopOut 표현식을 회전 매개변수에 추가하면 회전이 계속됩니다. 아래 표현식의 변수는 루프 유형 및 루프에 포함할 키프레임 수입니다. 먼저 루프의 유형에 대해 논의합시다. 아래 표현식에서 유형을 "cycle"로 설정했습니다. // 모든 키프레임을 순환하도록 loopOut 설정 loopOut("cycle", 0), 이 유형은 loopOut 표현식과 함께 사용할 수 있습니다. 순환, 계속, 오프셋 및 핑퐁 이 유형의 루프는 마지막 키프레임에서 끝난 다음 선택한 범위의 첫 번째 키프레임에서 다시 시작합니다. 두 번째 변수는 포함할 키프레임의 수입니다. loopOut은 뒤로 이동하는 마지막 키프레임을 기반으로 합니다. 기본적으로 0은 처음부터 끝까지 세트의 모든 키프레임을 설명합니다. 루프에 모든 키프레임을 사용하지 않으려면 끝에서 거꾸로 세는 숫자를 설정합니다. 변수를 1로 설정하면 마지막 키프레임 이전에 1개의 키프레임이 포함되고 2는 2개의 키프레임 뒤로 이동하는 식입니다. 상위 레이어의 실제 위치 가져오기레이어가 상위가 되는 경우 해당 위치 속성에 표시되는 값은 컴포지션에서 "true" 위치가 아니라 상위 레이어의 위치에 상대적입니다. 상위 레이어의 실제 위치를 찾으려면 표현식을 사용하여 상위 레이어의 좌표 공간을 컴포지션의 좌표 공간으로 변환해야 합니다. 상위가 없는 레이어의 위치에 다음 표현식을 적용하여 상위가 있는 레이어의 위치에 연결합니다. // 상위 레이어를 정의합니다 var targetLayer = thisComp.layer(“Parented Layer”); // 컴포지션에서 상위 레이어의 기준점을 찾습니다 targetLayer.toComp( targetLayer.anchorPoint ); 상위에서 레이어의 위치 딜레이딜레이 및 오프셋은 애니메이션을 보다 역동적이고 자연스럽게 만드는 좋은 방법입니다. 여러 레이어를 하나의 상위 레이어로 만든 다음 각 하위의 위치에 표현식을 적용하여 상위에서 상속된 모션을 지연시켜 이러한 유형의 오프셋을 만들고 제어할 수 있습니다. 참고: 이것은 상위 레이어에서만 작동합니다. // 프레임의 지연량을 설정합니다 var delay = 5; // 지연 시간에 따라 레이어의 위치를 오프셋합니다 parent.fromComp( toComp( anchorPoint, time - framesToTime( delay ) ) ); 상위 레이어에 대한 하위 레이어의 인덱스를 기반으로 지연 정도를 조정할 수도 있습니다. 이렇게 하면 [타임라인]에서 하위 레이어의 애니메이션을 다시 정렬하기 쉬워집니다. 상위 레이어 아래(또는 애니메이션이 상위보다 먼저 발생하도록 하려는 경우 위)에
다시 정렬하면 됩니다. // 프레임의 지연 정도를 설정합니다. var delay = 5; // 이 레이어의 상위 레이어에 대한 인덱스를 기준으로 지연을 곱합니다. var multipleDelay = delay * ( index - parent.index ) // 지연을 기반으로 레이어의 위치를 오프셋합니다. parent.fromComp( toComp( anchorPoint, time - framesToTime( multiplyDelay ) ) ); 이미지의 흔적 만들기이 예제 표현식에서는 특정 레이어가 [타임라인]
패널의 바로 위 레이어와 같은 위치에, 지정된 시간만큼(여기에서는 0.5초) 늦게 나타나도록 지정합니다. 다른 기하 속성에도 이와 유사한 표현식을 사용할 수 있습니다.
if ( toCompVec([0, 0, 1])[2] > 0 ) { value; } else { 0; } 표현식 리소스 더 보기더 많은 표현식 예Rick Gerard는 자신의 웹 사이트에서 개체의 면이 바닥 평면과 접하도록 바닥을 따라 사각형 개체를 굴리는 것을 표현하는 예제를 제공합니다. Colin Braley는 자신의 웹 사이트에서 표현식을 사용하여 한 레이어가 다른 레이어에 대해 자연스러워 보이는 방식으로 반발하도록 만드는 방법을 보여 주는 자습서 및 예제 프로젝트를 제공합니다. AE Enhancers 포럼에서는 표현식을 비롯하여 스크립트 및 애니메이션 사전 설정에 대한 많은 예제와 유용한 정보를 제공합니다. AE Enhancers 포럼의 이 게시물에서 Paul Tuersley는 표현식을 사용하여 여러 레이어에 하나의 무리로 애니메이션을 적용하는 방법을 보여 주는 토토리얼과 예제 프로젝트를 제공합니다. |