「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > After Effects: While ループ

After Effects: While ループ

2024 年 11 月 6 日に公開
ブラウズ:265

After Effects: While Loops

コンテンツ

  • 導入
  • while ループと if ステートメント
  • while ループと for ループ
  • while ループを使用する場合
  • 結論

導入

完全開示: 私は while ループが嫌いです。理解するのに長い時間がかかりましたが、ようやくその目的が理解できた気がします。

最初は、独自の while ループを作成しようとするたびに、After Effects がすぐにクラッシュしていました。何が問題だったのかについてもう少し理解できたので、while ループとは何か、いつ使用するか、プロジェクトをクラッシュさせることなく After Effects エクスプレッションに組み込む方法について書きたいと思います (定期的に保存することを忘れないでください)。皆さん)。

while ループと if ステートメント

while ループは、名前が示すように、式が true である限り実行されるループです。

「式が true である限り実行する」 - これは if ステートメントに少し似ていますね?

if (time 



この式をテキスト レイヤーのソース テキスト プロパティに追加すると、タイムラインの最初の 2 秒間はテキストが「テキスト オン」と表示され、その後はテキストが表示されないことがわかります。 if ステートメントは式が true かどうかをチェックし、true であればコマンド 1 回 を 1 回だけ実行します。

ただし、これを this 式に変更すると、After Effects がほぼ即座にクラッシュすることがわかります。

while (time 



これは、while ループ がループ であるため、ステートメントが true の場合、コマンド を繰り返し 実行します。カーソルがタイムラインの最初の 2 秒間にある限り、while ループは 無限に ループします。まったく理想的ではありませんし、私たちが達成しようとしていたものでもありません。このような無限ループを避けるために、while ループが最終的に false になることを確認することが重要です。

if ステートメントの詳細については、以前の記事を参照してください。

while ループと for ループ

わかりました。if ステートメントのような while ループを使用しないように注意することが重要です。ただし、式を作成するために使用できるループの種類は他にもあります。たとえば、while ループは for ループとどう違うのですか?

for ループは 3 つの引数で動作し、

コマンドをループする回数がわかっている場合に最適です。

この例では、乱数を生成します:


//変数 カウンタ = 0 とします。 数値 = 0 とします。 numArray = []; とします。 //forループ for (let i = 0; time >= i/2; i ) { シードランダム(カウンター、タイムレス = true); num = Math.floor(random(1, 6)); numArray.push(num); カウンタ } //戻る numArray[カウンター - 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));
    numArray.push(num);
    counter  
}

//return
numArray[counter - 1]
変数を設定した後、ループは let i = 0 で始まり、

once を実行する最初の引数を設定します。次に、time >= i/2 により、ループを実行する頻度が決まります。ループをこのように設定すると、時間は i の半分以上である必要があるため、ループが 1 秒ごとに 2 回実行されることになります。最後に、3 番目の引数 i は、ループの実行後に everytime を実行します。この場合、i の値は 1 増加します。

テキスト レイヤーのソース テキスト プロパティでこの式を再度実行すると、1 から 5 までの乱数が 1 秒ごとに 2 回表示されます。

for ループの詳細については、ここで以前の記事を参照してください。

while ループは、

ループを何回実行する必要があるかわからない場合に使用するのが最適です。このため、時間が関係する式ではうまく機能しないことがわかりました。 for ループなどは非常にうまく機能しますが、そうすると厄介な無限ループに陥ってしまいます。

それでは、while ループをいつ

使用すべきでしょうか? while ループを使用する場合

これらすべてを念頭に置いて、while ループは次の状況で使用する必要があります:

式を複数回実行する必要があります
  • ループを何回実行する必要があるかわかりません
  • ループが無限に実行されるのを避けるために、ループを中断することができます
  • 最近、乱数ジェネレーター プロジェクトに取り組んでいるときに、After Effects 内でこれを使用できることを発見しました。

次のコードを見てみましょう:


//変数 カウンタ = 0 とします。 数値 = 0 とします。 numArray = []; とします。 //forループ for (let i = 0; time >= i/2; i ) { シードランダム(カウンター、タイムレス = true); num = Math.floor(random(1, 6)); //For ループ内の While ループ while (num == numArray[counter - 1]) { num = Math.floor(random(1, 6)); } numArray.push(num); カウンタ } //戻る numArray[カウンター - 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]

新しい乱数を複数回生成する必要がある可能性があるため

、ここでは 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