指定した時間範囲でエクスプレッションを適用する方法を紹介します。
こちらの記事では位置にエクスプレッションを適用する方法を紹介しました。
エクスプレッションを適用するとすべての時間でエクスプレッションが適用された状態になります。
この記事では、指定した時間の範囲でのみエクスプレッションを適用する方法を紹介します。
if
文を利用します。アニメーションの現在時間はtime
グローバルオブジェクトで取得できます。timeの値はエクスプレッションが評価されているコンポジション時間を秒単位で表します。
こちらの記事を参照して位置にエクスプレッションを適用したコンポジションを作成します。
[位置]のエクスプレッションのコードを下記のコードに変更します。
if (4<time && time<8){
wiggle(80,10);
}else{
wiggle(0,0);
}
または、下記のコードでも動作します。
if (4<time && time<8){
wiggle(80,10);
}else{
transform.position
}
wiggle(80,10);
を実行します。現在の時刻はtimeで取得できます。下記のコードでは、コンポジションの現在の時刻が 4秒から8秒までの間でifのブロック内のコードを実行します。
条件に合致しない場合はelseのブロック内のコードを実行します。
if (4<time && time<8){
}else{
}
タイムラインパネルの[現在の時間インジケーター]を移動します。if文を設定したキャラクターは4秒までは位置が変わらず静止した状態のままです。
4秒以降はwiggleのエクスプレッションが適用され、キャラクターが振動します。
作成した動画は以下です。左のキャラクターは途中から動き始め、動き始めから4秒で停止します。
以下のif文のコードではエクスプレッションエラーが発生します。詳しくはこちらの記事を参照して下さい。
if (4<time && time<8){
wiggle(80,10)
}
if (4<time && time<8){
wiggle(80,10)
}else{
}
if (6 >= time){
wiggle(80,10);
}