웹 프론트엔드 JS 튜토리얼 After Effects: 모듈로 연산자(%)

After Effects: 모듈로 연산자(%)

Jan 20, 2025 pm 08:40 PM

After Effects 표현식의 모듈로 연산자(%)에 대한 심층 설명

나머지 연산자라고도 알려진 모듈로 연산자(%)는 표현식 구성에 매우 유용한 도구이지만 초보자에게는 이해하기 쉽지 않을 수 있습니다. 이 문서에서는 해당 기능과 용도에 대해 설명합니다.

%는 방정식의 나머지를 계산하는 데 사용됩니다. 예:

<code>10 % 3</code>
로그인 후 복사
로그인 후 복사

이 표현식은 10을 3으로 나눈 몫이 3이고 나머지가 1이므로 1을 반환합니다.

이는 시간 변수 작업 시 루프를 만드는 데 유용합니다.

루프 표현

After Effects 표현식을 처음 접하는 대부분의 디자이너는 loopOut() 표현식에 익숙합니다. 이를 통해 "cycle"(처음부터 끝까지 순환), "pingpong"(처음부터 끝까지 그리고 다시 시작으로 순환), "offset"(키프레임을 반복하지만 매번 오프셋을 사용하여 값을 사용하여 애니메이션을 생성) 또는 "계속"(마지막 키프레임의 속도를 사용하여 모션을 계속)하여 키프레임 속성을 순환합니다. 이는 매우 포괄적이며 키프레임 애니메이션에 필요한 모든 것을 다룹니다.

그러나

표현식을 반복하려는 경우 loopOut은 실행 가능한 솔루션이 아닙니다. 키프레임을 사용하지 않으려는 데에는 여러 가지 이유가 있을 수 있지만 가장 큰 이유는 값을 동적으로 지속적으로 업데이트해야 하는 경우입니다. 키프레임 세트를 업데이트하는 것보다 슬라이더에 연결된 표현식을 업데이트하는 것이 훨씬 쉽습니다.

모션이 연속적인 경우 선형 또는 용이성으로 충분합니다. 그러나 반복이 필요한 복잡한 애니메이션의 경우 시간 모듈로 연산자를 사용하여 루프를 구현할 수 있습니다.

작동 방식을 보려면 다음 표현식을 복사하여 텍스트 레이어의 소스 텍스트 속성에 붙여넣으세요.

<code>Math.floor(time % 5)</code>
로그인 후 복사
매초마다 0에서 4까지의 레이어 수가 표시되며 5초마다 0으로 되돌아갑니다. 시간이 지남에 따라 나머지 표현식이 1초마다 바뀌기 때문입니다.

Math.floor 함수는 인수를 정수로 반올림합니다.

After Effects: The Modulo Operator (%)

이를 통해 특정 매개변수 사이의 숫자에 애니메이션을 적용해야 할 때 어떻게 사용하는지 쉽게 알 수 있습니다.

예: 디지털 시계

%를 이용해 디지털 시계를 만들어 볼까요?

초는 0에서 60 사이로 계산되어야 하며, 분은 60 간격마다 증가해야 합니다. 이것을 텍스트 레이어의 소스 텍스트 속성에 다시 붙여넣겠습니다.

<code>10 % 3</code>
로그인 후 복사
로그인 후 복사

표현식을 분석하면 sec 변수는 0부터 60까지 계산되고 Minute 변수는 60의 배수마다 증가합니다(다시 Math.floor를 사용하여 숫자를 반올림합니다). 다음 if 문은 sec 변수가 10보다 작으면 앞에 0을 추가하여 초 변수가 항상 두 자리 숫자인지 확인합니다(원하는 경우 분 동안에도 이 작업을 반복할 수 있습니다). 그런 다음 시간 구분 기호를 사용하여 함께 결합하세요.

After Effects: The Modulo Operator (%)

카운터가 시간과 독립적으로 작동해야 하는 경우 시간을 슬라이더로 바꾸고 해당 값을 설정하면 동일한 효과를 얻을 수 있습니다.

모듈로 연산자와 After Effects 텍스트 표현 선택기를 사용하여 시간 구분 기호를 깜박이게 할 수도 있습니다.

텍스트 레이어로 이동하여 텍스트 레이어에 불투명도 애니메이션 옵션을 추가합니다(이 작업을 수행하는 방법을 잘 모르는 경우 이 기사에서 이에 대한 모든 내용을 확인할 수 있습니다). 그런 다음 표현식 선택기를 추가하고 범위 선택기를 제거하십시오.

After Effects: The Modulo Operator (%)

애니메이터의 불투명도를 0으로 설정하고 양 속성에 다음 표현식을 추가합니다.

//디지털 시계 구분 기호가 깜박입니다. //표현식 선택기에 추가

분 = Math.floor(시간 / 60);

분 = 10 && textIndex == 3 ? Math.floor(time2 % 1.5) 100 : 0;

분 변수의 자릿수가 고정되어 있지 않다는 점을 토대로 조건문을 작성했습니다. 먼저 소스 텍스트 속성에서 분 변수를 복사합니다. 그런 다음 이를 사용하여 시간 구분 기호의 textIndex 값을 계산합니다. 분 표시에 숫자가 하나만 있으면 2가 됩니다. 분 표시가 10을 초과하면 3이 됩니다. 조건문은 아래와 같이 if 문으로 작성하여 수행되는 작업을 더 자세히 설명할 수도 있습니다.

if (분 = 10 && textIndex == 3) Math.floor(time2 % 1.5) 100 그 외 0

분이 10보다 작고 textIndex가 2이면 Math.floor(time2 % 1.5) 100은 텍스트 레이어의 두 번째 문자에 영향을 미칩니다. 모듈로 연산자 덕분에 문자가 깜박입니다(켜기/끄기 비율 2:1). Math.floor 함수는 숫자를 반올림하고 전체 표현식에 최종적으로 100을 곱하여 표현식 선택기의 범위인 0과 100 사이를 전환합니다.

그러나 분이 10 이상이고 textIndex가 3인 경우 효과는 텍스트 레이어의 세 번째 문자에 적용됩니다. 분 표시의 추가 숫자에 대한 설명입니다. 분 표시가 99보다 길어야 하는 경우 시간 구분 기호가 네 번째 위치에 있을 때 표시에 영향을 미치도록 다른 매개변수를 추가해야 합니다.

그러나 분 표시가 일정한 자릿수로 설정되어 있으면 이 설명이 훨씬 간단해집니다.

dividerIndex = 3; textIndex == DividerIndex ? Math.floor(time2 % 1.5) 100 : 0

After Effects: The Modulo Operator (%)

그렇게 하면 디지털 시계를 얻을 수 있습니다!

모듈로 연산자가 루프 생성에 어떻게 도움이 되는지 보여준 후, 이제 이를 다른 속성에 어떻게 적용할 수 있는지 고려할 수 있습니다.

예: 아날로그 시계

이제 아날로그 시계를 만들어 보겠습니다. 포인터가 틱할 때 일반적으로 지속적인 움직임이 아니라 갑자기 멈추고 시작되는 움직임입니다. 이는 모듈로 연산자가 해결하는 데 도움이 될 수 있는 루프 유형입니다.

시계바늘 레이어의 회전 속성에 붙여넣을 수 있는 다음 표현식을 살펴보겠습니다.

//초침이 회전합니다 프레임 = thisComp.frameDuration;

loopTime = 1; dur = 프레임 * 6; 힘 = 6;

카운터 = Math.floor(time/loopTime); t = 시간 % loopTime;

ease(t, 0, dur, 강도 카운터, 강도 (카운터 1))

먼저 몇 가지 변수를 설정합니다. 프레임은 컴포지션의 프레임 지속 시간으로, 여러 프레임 속도에서 작동할 수 있습니다.

loopTime을 반복하려는 시간으로 설정하세요. 루프가 1초 동안 지속되기를 원하므로 1로 설정했습니다. dur은 루프 내의 애니메이션 지속 시간이므로 프레임 * 6으로 설정하여 6프레임 동안 지속되도록 했습니다. 강도는 애니메이션 값의 변화입니다. 시계 바늘에 애니메이션을 적용하고 있으므로 시계 바늘이 60틱에 한 회전을 완료하도록 6으로 설정했습니다.

다음으로 내 가치를 상쇄하는 데 도움이 되는 카운터 변수를 만듭니다. Math.floor(time/loopTime) 을 사용하여 Math.floor를 사용하여 숫자를 반올림하고 루프와 일치하도록 카운터 속도를 설정하여 만들었습니다. 마지막으로 t는 표현 중심 애니메이션의 시간을 측정하는 데 사용할 수 있는 변수입니다. 이것이 시간 % loopTime이므로 시간이 loopTime에 저장된 숫자에 도달하면 시간이 반복됩니다.

이후에는 애니메이션을 만들 수 있습니다. 이 예에서는 용이성 표현을 사용합니다. 첫 번째 매개변수를 t로 설정하여 회전 값을 루프 시간 변수에 다시 매핑합니다. 다음 두 매개변수는 애니메이션의 시작점과 끝점인 0과 dur입니다. 마지막 두 매개변수는 강도 카운터와 강도 (카운터 1)이며 회전 속성 값입니다. 강도에 카운터를 곱하여 강도 *(카운터 1)로 끝나는 각 루프의 값을 오프셋하여 다음 루프를 준비할 수 있습니다.

After Effects: The Modulo Operator (%)

이 경우 키프레임 대신 표현식을 통해 모션을 구동하는 것의 장점은 시간 변경을 위한 시계 템플릿을 구축해야 하는 경우입니다. 표현식의 정적 값을 슬라이더에 연결할 수 있으므로 지속적으로 업데이트하기가 더 쉽습니다.

더 고급 표현을 사용하거나 자신만의 기능을 구축하여 더욱 맞춤화된 애니메이션을 만들 수 있습니다.

//초침이 회전합니다 프레임 = thisComp.frameDuration;

loopTime = 1; dur = 프레임 * 6; 변경 = 6;

카운터 = Math.floor(time/loopTime); t = 시간 % loopTime;

easyInOutBack 함수(t, b, c, d, s) { if (s == 정의되지 않음) s = 1.70158; if ((t/=d/2) < 1) return c/2(tt(((s=(1.525))) 1)t - s)) b; return c/2((t-=2)t(((s=(1.525)) 1)t s) 2) b; }

easeInOutBack(t, 0,change, dur, 1.70158)

After Effects: The Modulo Operator (%)

마지막으로 변수를 생성하여 시작 값을 설정하고 if 문을 사용하여 분침(및 시침) 애니메이션의 첫 번째 반복을 건너뛸 수 있습니다.

//분침 회전 프레임 = thisComp.frameDuration;

loopTime = 60; dur = 프레임 * 6; 강도 = 6; startValue = 180;

카운터 = Math.floor(time/loopTime); t = 시간 % loopTime;

easyInOutBack 함수(t, b, c, d, s) { if (s == 정의되지 않음) s = 1.70158; if ((t/=d/2) < 1) return c/2(tt(((s=(1.525))) 1)t - s)) b; return c/2((t-=2)t(((s=(1.525)) 1)t s) 2) b; }

if (카운터 > 0) { easyInOutBack(t, startValue 강도 * 카운터, 강도, dur, 1.70158) } 또 다른 { 시작값 }

After Effects: The Modulo Operator (%)

여기서 슬라이더를 startValue 변수에 연결하기만 하면 됩니다. 이렇게 하면 슬라이더의 값을 간단히 변경하여 업데이트할 수 있는 아날로그 시계를 갖게 됩니다.

결론

모듈로 연산자는 다른 방법이 프로젝트 요구에 적합하지 않은 경우 동적 표현을 돕기 위해 루프를 만드는 데 유용합니다.

자신의 프로젝트에서 테스트해 보세요!

의견이 있으신가요? 불분명한 점이 있나요? 아래에 의견을 남겨주세요.

위 내용은 After Effects: 모듈로 연산자(%)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

<gum> : Bubble Gum Simulator Infinity- 로얄 키를 얻고 사용하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora : 마녀 트리의 속삭임 - Grappling Hook 잠금 해제 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
Nordhold : Fusion System, 설명
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Python vs. JavaScript : 학습 곡선 및 사용 편의성 Python vs. JavaScript : 학습 곡선 및 사용 편의성 Apr 16, 2025 am 12:12 AM

Python은 부드러운 학습 곡선과 간결한 구문으로 초보자에게 더 적합합니다. JavaScript는 가파른 학습 곡선과 유연한 구문으로 프론트 엔드 개발에 적합합니다. 1. Python Syntax는 직관적이며 데이터 과학 및 백엔드 개발에 적합합니다. 2. JavaScript는 유연하며 프론트 엔드 및 서버 측 프로그래밍에서 널리 사용됩니다.

C/C에서 JavaScript까지 : 모든 것이 어떻게 작동하는지 C/C에서 JavaScript까지 : 모든 것이 어떻게 작동하는지 Apr 14, 2025 am 12:05 AM

C/C에서 JavaScript로 전환하려면 동적 타이핑, 쓰레기 수집 및 비동기 프로그래밍으로 적응해야합니다. 1) C/C는 수동 메모리 관리가 필요한 정적으로 입력 한 언어이며 JavaScript는 동적으로 입력하고 쓰레기 수집이 자동으로 처리됩니다. 2) C/C를 기계 코드로 컴파일 해야하는 반면 JavaScript는 해석 된 언어입니다. 3) JavaScript는 폐쇄, 프로토 타입 체인 및 약속과 같은 개념을 소개하여 유연성과 비동기 프로그래밍 기능을 향상시킵니다.

JavaScript 및 웹 : 핵심 기능 및 사용 사례 JavaScript 및 웹 : 핵심 기능 및 사용 사례 Apr 18, 2025 am 12:19 AM

웹 개발에서 JavaScript의 주요 용도에는 클라이언트 상호 작용, 양식 검증 및 비동기 통신이 포함됩니다. 1) DOM 운영을 통한 동적 컨텐츠 업데이트 및 사용자 상호 작용; 2) 사용자가 사용자 경험을 향상시키기 위해 데이터를 제출하기 전에 클라이언트 확인이 수행됩니다. 3) 서버와의 진실한 통신은 Ajax 기술을 통해 달성됩니다.

자바 스크립트 행동 : 실제 예제 및 프로젝트 자바 스크립트 행동 : 실제 예제 및 프로젝트 Apr 19, 2025 am 12:13 AM

실제 세계에서 JavaScript의 응용 프로그램에는 프론트 엔드 및 백엔드 개발이 포함됩니다. 1) DOM 운영 및 이벤트 처리와 관련된 TODO 목록 응용 프로그램을 구축하여 프론트 엔드 애플리케이션을 표시합니다. 2) Node.js를 통해 RESTFULAPI를 구축하고 Express를 통해 백엔드 응용 프로그램을 시연하십시오.

JavaScript 엔진 이해 : 구현 세부 사항 JavaScript 엔진 이해 : 구현 세부 사항 Apr 17, 2025 am 12:05 AM

보다 효율적인 코드를 작성하고 성능 병목 현상 및 최적화 전략을 이해하는 데 도움이되기 때문에 JavaScript 엔진이 내부적으로 작동하는 방식을 이해하는 것은 개발자에게 중요합니다. 1) 엔진의 워크 플로에는 구문 분석, 컴파일 및 실행; 2) 실행 프로세스 중에 엔진은 인라인 캐시 및 숨겨진 클래스와 같은 동적 최적화를 수행합니다. 3) 모범 사례에는 글로벌 변수를 피하고 루프 최적화, Const 및 Lets 사용 및 과도한 폐쇄 사용을 피하는 것이 포함됩니다.

Python vs. JavaScript : 커뮤니티, 라이브러리 및 리소스 Python vs. JavaScript : 커뮤니티, 라이브러리 및 리소스 Apr 15, 2025 am 12:16 AM

Python과 JavaScript는 커뮤니티, 라이브러리 및 리소스 측면에서 고유 한 장점과 단점이 있습니다. 1) Python 커뮤니티는 친절하고 초보자에게 적합하지만 프론트 엔드 개발 리소스는 JavaScript만큼 풍부하지 않습니다. 2) Python은 데이터 과학 및 기계 학습 라이브러리에서 강력하며 JavaScript는 프론트 엔드 개발 라이브러리 및 프레임 워크에서 더 좋습니다. 3) 둘 다 풍부한 학습 리소스를 가지고 있지만 Python은 공식 문서로 시작하는 데 적합하지만 JavaScript는 MDNWebDocs에서 더 좋습니다. 선택은 프로젝트 요구와 개인적인 이익을 기반으로해야합니다.

Python vs. JavaScript : 개발 환경 및 도구 Python vs. JavaScript : 개발 환경 및 도구 Apr 26, 2025 am 12:09 AM

개발 환경에서 Python과 JavaScript의 선택이 모두 중요합니다. 1) Python의 개발 환경에는 Pycharm, Jupyternotebook 및 Anaconda가 포함되어 있으며 데이터 과학 및 빠른 프로토 타이핑에 적합합니다. 2) JavaScript의 개발 환경에는 Node.js, VScode 및 Webpack이 포함되어 있으며 프론트 엔드 및 백엔드 개발에 적합합니다. 프로젝트 요구에 따라 올바른 도구를 선택하면 개발 효율성과 프로젝트 성공률이 향상 될 수 있습니다.

JavaScript 통역사 및 컴파일러에서 C/C의 역할 JavaScript 통역사 및 컴파일러에서 C/C의 역할 Apr 20, 2025 am 12:01 AM

C와 C는 주로 통역사와 JIT 컴파일러를 구현하는 데 사용되는 JavaScript 엔진에서 중요한 역할을합니다. 1) C는 JavaScript 소스 코드를 구문 분석하고 추상 구문 트리를 생성하는 데 사용됩니다. 2) C는 바이트 코드 생성 및 실행을 담당합니다. 3) C는 JIT 컴파일러를 구현하고 런타임에 핫스팟 코드를 최적화하고 컴파일하며 JavaScript의 실행 효율을 크게 향상시킵니다.

See all articles