指定した時間範囲でエクスプレッションを適用する

指定した時間範囲でエクスプレッションを適用する方法を紹介します。

概要

こちらの記事では位置にエクスプレッションを適用する方法を紹介しました。
エクスプレッションを適用するとすべての時間でエクスプレッションが適用された状態になります。 この記事では、指定した時間の範囲でのみエクスプレッションを適用する方法を紹介します。

実装方法

エクスプレッションに if 文を利用します。アニメーションの現在時間はtimeグローバルオブジェクトで取得できます。
timeの値はエクスプレッションが評価されているコンポジション時間を秒単位で表します。

事前準備

こちらの記事を参照して位置にエクスプレッションを適用したコンポジションを作成します。
指定した時間範囲でエクスプレッションを適用する:画像1

手順

エクスプレッションのコードの変更

[位置]のエクスプレッションのコードを下記のコードに変更します。
if (4<time && time<8){
  wiggle(80,10);
}else{
  wiggle(0,0);
}
指定した時間範囲でエクスプレッションを適用する:画像2

または、下記のコードでも動作します。
if (4<time && time<8){
  wiggle(80,10);
}else{
  transform.position
}
指定した時間範囲でエクスプレッションを適用する:画像3

解説

if文を利用して条件に合致した場合のみに wiggle(80,10); を実行します。
現在の時刻はtimeで取得できます。下記のコードでは、コンポジションの現在の時刻が 4秒から8秒までの間でifのブロック内のコードを実行します。 条件に合致しない場合はelseのブロック内のコードを実行します。
if (4<time && time<8){
}else{
}

動作確認

タイムラインパネルの[現在の時間インジケーター]を移動します。if文を設定したキャラクターは4秒までは位置が変わらず静止した状態のままです。
指定した時間範囲でエクスプレッションを適用する:画像4

4秒以降はwiggleのエクスプレッションが適用され、キャラクターが振動します。
指定した時間範囲でエクスプレッションを適用する:画像5

動画

作成した動画は以下です。左のキャラクターは途中から動き始め、動き始めから4秒で停止します。

補足:エクスプレッションエラーについて

以下のif文のコードではエクスプレッションエラーが発生します。詳しくはこちらの記事を参照して下さい。
エクスプレッションエラーになるコード:1
if (4<time && time<8){
  wiggle(80,10)
}
エクスプレッションエラーになるコード:2
if (4<time && time<8){
  wiggle(80,10)
}else{
}
エクスプレッションエラーになるコード:3
if (6 >= time){
  wiggle(80,10);
}
指定した時間範囲でエクスプレッションを適用する:画像6
指定した時間範囲でエクスプレッションを適用する:画像7
AuthorPortraitAlt
著者
iPentecのメインデザイナー
Webページ、Webクリエイティブのデザインを担当。PhotoshopやIllustratorの作業もする。 最近は生成AIの画像生成の沼に沈んでいる。
作成日: 2022-01-29
Copyright © 1995–2025 iPentec all rights reserverd.