スキル自身の言葉で
gsap.timeline()を使ってアニメーションをシーケンス化するための、公式のGSAPスキルです。タイムラインの作成と、デフォルトで末尾に追加されていくトゥイーンの連結、そしてposition引数(絶対秒数、相対的な「+=0.5」/「-=0.2」オフセット、ラベル、「<」/「>」による配置)を使った位置の再指定について解説しています。
タイムラインコンストラクタのオプション(paused、repeat、yoyo、onComplete/onStart/onUpdate、defaults)、addLabel()によるラベル付けとplay()/tweenFromTo()によるシーク、子タイムラインをマスタータイムラインにネストする方法、restart、time、progress、killを含む再生用メソッドについて説明しています。最後にGSAPのベストプラクティスと避けるべき落とし穴、特にdelayを使ったチェーンや、タイムライン内のトゥイーンにScrollTriggerを設定することについて触れています。
生成されるもの
- 変数に格納されたタイムラインオブジェクトで、すべての例でtlと呼ばれています。連結されたトゥイーンはこれに追加され、再生用メソッドはこれに対して作用します。
- tweenFromToが返す新しいTweenで、タイムラインが一時停止している間、イーズなしで2つのラベルの間をプレイヘッドがアニメーションします。
- killされたタイムライン:kill()を呼び出すと、そのタイムラインが削除され、デフォルトではその子も一緒に削除されます。
仕組み
- 01タイムラインを作成し、トゥイーンを連結する
gsap.timeline()を呼び出し、.to()呼び出しを連結します。positionを指定しない場合、各トゥイーンは前のトゥイーンの終了後に追加されるため、順序は記述した順になります。
- 02各トゥイーンの時間位置を配置する
配置は、第3引数またはvars内のposition プロパティによって設定されます:絶対秒数、相対オフセット、ラベル名、または直前に追加されたアニメーションを基準とした<と>を使用できます。
- 03タイムラインに共通のデフォルト値を設定する
タイムラインコンストラクタに渡されたデフォルト値は、すべての子トゥイーンにマージされるため、durationやeaseをシーケンス全体で一度だけ宣言すれば済みます。
- 04重要なポイントにラベルを付ける
addLabel() はタイムライン内の名前付きの位置を示すもので、そのラベルは後続のトゥイーンの位置指定として、数値の代わりに使用できます。
- 05タイムラインをマスタータイムラインにネストする
マスタータイムラインは子タイムラインを1つの単位として受け取り、ある時点に配置できます。その後のトゥイーンはそれを基準に相対的に追加されます。
- 06シーケンス全体を一度に制御する
構築後は、タイムラインをトゥイーンごとではなく1つの単位として再生・一時停止します。