"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > After Effects: While 루프

After Effects: While 루프

2024-11-06에 게시됨
검색:119

After Effects: While Loops

내용물

  • 소개
  • while 루프와 if 문
  • while 루프와 for 루프
  • while 루프를 사용하는 경우
  • 결론

소개

전체 공개: 나는 while 루프를 싫어합니다. 그것들을 이해하는 데 오랜 시간이 걸렸지만 마침내 그 목적을 이해한 것 같습니다.

처음부터 나만의 while 루프를 작성하려고 할 때마다 After Effects가 즉시 중단되었습니다. 이제 무엇이 잘못되었는지에 대해 조금 더 알게 되었으므로 while 루프가 무엇인지, 언제 사용해야 하는지, 그리고 프로젝트를 중단하지 않고 After Effects 표현식에 이를 통합할 수 있는 방법을 작성하고 싶습니다(정기적으로 저장하는 것을 잊지 마세요). 여러분).

while 루프와 if 문

while 루프는 이름에서 알 수 있듯이 표현식이 참인 동안 실행되는 루프입니다.

"표현식이 참인 동안 실행됩니다." - 약간 if 문처럼 들리지 않나요?

if (time 



이 표현식을 텍스트 레이어의 소스 텍스트 속성에 추가하면 타임라인의 처음 2초 동안 텍스트가 "텍스트 켜짐"으로 표시되고 그 이후에는 텍스트가 표시되지 않습니다. if 문은 표현식이 true인지 확인하고, true이면 한 번, 단 한 번만

명령을 실행합니다.

그러나 표현식으로 변경하면 After Effects가 거의 즉시 충돌합니다.

while (time 



이는 while 루프 가 루프이기 때문에 명령문이 참이면 반복적으로 명령을 실행하기 때문입니다. 커서가 타임라인의 처음 2초 내에 있는 한 while 루프는 무한히 반복됩니다. 정확히 이상적이지도 않고, 확실히 우리가 달성하려고 했던 것도 아닙니다! 이러한 무한 루프를 방지하려면 while 루프가 결국 거짓이 되도록 하는 것이 중요합니다.

if 문에 대한 자세한 내용은 여기에서 이전 기사를 참조하세요.

while 루프와 for 루프

좋아, if 문과 같은 while 루프를 사용하지 않는 것이 중요합니다. 하지만 표현식을 만드는 데 사용할 수 있는 다른 유형의 루프가 있습니다. 예를 들어 while 루프는 for 루프와 어떻게 다릅니까?

for 루프는 3개의 인수와 함께 작동하며 명령을 반복해야 하는 횟수를 알 때 이상적입니다.

난수를 생성하는 다음 예를 들어보세요.

//variables
let counter = 0;
let num = 0;
let numArray = [];

//For loop
for (let i = 0; time >= i/2; i  ) {
    seedRandom(counter, timeless = true);
    num = Math.floor(random(1, 6));
    numArray.push(num);
    counter  
}

//return
numArray[counter - 1]

변수를 설정한 후 루프는 let i = 0으로 시작하여 한 번을 실행하는 첫 번째 인수를 설정합니다. 그런 다음 time >= i/2는 루프가 실행되어야 하는 빈도를 설정합니다. 이러한 방식으로 루프를 설정하면 시간이 i의 절반 이상이 되어야 하므로 루프가 매초마다 두 번씩 실행된다는 의미입니다. 마지막으로, 세 번째 인수 i는 루프가 실행된 후 매번를 실행합니다. 이 경우 i의 값은 1만큼 증가합니다.

텍스트 레이어의 소스 텍스트 속성에서 이 표현식을 다시 실행하면 1~5 사이의 임의의 숫자가 1초마다 두 번씩 표시됩니다.

for 루프에 대한 자세한 내용은 여기에서 이전 기사를 참조하세요.

while 루프는 루프를 실행해야 하는 횟수를 모를 때 가장 잘 사용됩니다. 이 때문에 시간이 포함된 표현식에서는 잘 작동하지 않는 것으로 나타났습니다. for 루프처럼 성가신 무한 루프에 빠지게 되므로 매우 효과적입니다.

그러면 언제 while 루프를 사용해야 할까요?

while 루프를 사용하는 경우

이 모든 것을 염두에 두고 다음 조건에서는 while 루프를 사용해야 합니다.

    표현식을 두 번 이상 실행해야 합니다.
  • 루프를 실행하는 데 몇 번이나 필요한지 알 수 없습니다.
  • 루프가 무한대로 실행되는 것을 방지하기 위해 루프를 끊을 수 있습니다.
최근 난수 생성기 프로젝트를 진행하면서 After Effects 내에서 이 기능의 용도를 발견했습니다.

다음 코드를 살펴보겠습니다.


//변수 카운터 = 0으로 둡니다. 숫자 = 0으로 두십시오. numArray = []; //For 루프 for (i = 0; 시간 >= i/2; i ) { seedRandom(counter, timeless = true); num = Math.floor(random(1, 6)); //For 루프 내부의 While 루프 while (num == numArray[counter - 1]) { num = Math.floor(random(1, 6)); } numArray.push(num); 계수기 } //반품 숫자 배열[카운터 - 1]
//variables
let counter = 0;
let num = 0;
let numArray = [];

//For loop
for (let i = 0; time >= i/2; i  ) {
    seedRandom(counter, timeless = true);
    num = Math.floor(random(1, 6));

//While loop inside of For loop
        while (num == numArray[counter - 1]) {
        num = Math.floor(random(1, 6));
        }

    numArray.push(num);
    counter  
}

//return
numArray[counter - 1]
이 경우 while 루프는 num의 현재 값이 numArray 배열에 저장된 이전 값과 같은지 확인합니다. 그렇다면 1과 5 사이의 새로운 난수를 생성합니다. num과 배열에 저장된 이전 숫자가 동일한 한 루프가 실행됩니다. 그러나 숫자가 일치하지 않으면 while 루프가 종료되고 표현식은 자유롭게 다음 코드 줄로 계속됩니다.

새 난수를 두 번 이상 생성해야 할 수 있으므로 여기에서는 if 문이 작동하지 않습니다.

그리고 난수를 새로 고쳐야 하는 횟수를

모르기 때문에 루프 수도 미스터리입니다. 따라서 여기서도 for 루프는 좋지 않습니다.

따라서 while 루프가 최선의 선택입니다. 이 함수는 내부 인수가 false가 될 때까지

필요한 만큼 여러 번 실행됩니다. 이는 random() 함수가 이전 함수와 일치하지 않는 숫자를 생성하는 한 확실히 발생합니다.

결론

결론적으로 while 루프는 After Effects 표현 벨트에서 흔하지 않은 도구일 가능성이 높습니다. 그러나 일반적인 용의자가 적합하지 않을 수 있는 경우를 위해 배우는 것이 유용합니다.

이 정보가 도움이 되었나요? 프로젝트에 while 루프를 사용하는 예가 있나요? 내가 뭔가 잘못했나요? 댓글을 남겨서 알려주세요.

릴리스 선언문 이 글은 https://dev.to/kocreative/after- Effects-while-loops-447e?1 에서 복제하였습니다. 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제해 주시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3