demo_gsap チュートリアル
このチュートリアルでは、GSAP SVG デモの動かし方と、プログラムがページのコントロールを GsapPlayer にどうつなぐかを説明します。
クイックスタート
リポジトリのルートで:
just gsap-serve
http://localhost:8081 を開きます。SVG の描画の中でトーラスが回ります。ボタンで一時停止、逆再生、最初からの再生を行い、プログレスバーをドラッグしてシークし、速度を選び、“LOOP” のチェックを外すと最後で止まり、“Dolly zoom” を選ぶとシーンが切り替わります。jsDelivr から GSAP を読み込むため、ページにはネットワーク接続が必要です。
よくある作業
プログラムを読む
src/demo_gsap/main.mbt は Canvas デモと同じようにシーンを作りますが、秒単位の時刻の関数として作ります。main は 8 秒の @gsap.GsapPlayer を 1 つ作り、そのコールバックが選択中のシーンを描画して進捗表示を更新します。次に各コントロールをプレーヤーのメソッド 1 つ(play/pause、reverse、restart、set_progress、set_time_scale、set_repeat)に結び付けます。rabbita が扱わないページの細部、つまりコントロールの値の読み取りと表示やボタンのラベルの書き込みは、3 つの小さな extern "js" 関数が担当します。
長さを変える
DURATION_SECONDS はタイムラインの長さと表示を決めます。トーラスの角度は時刻に比例するので、新しい長さでトーラスが整数回転するときだけループに継ぎ目がなくなります。ドリーのシーンは 4 秒ごとに繰り返します。
GSAP のローカルコピーを使う
index.html の jsDelivr の URL をローカルの gsap ES モジュールのパスに置き換えます。プログラムが必要とするのは、demo.js をインポートする前に globalThis.gsap が設定されていることだけです。
さらに進んで
プレーヤーとレンダラ単体は GSAP チュートリアルで、ペインターズアルゴリズムによる並べ替えがいつ正確かは GSAP の設計で説明しています。ここでのトーラスを Canvas デモと比べてください。トーラスが自分自身と重なるところでは、SVG 版は一瞬、遠い三角形を近い三角形の上に描くことがあります。
よくある落とし穴
- オフラインでの使用。 ネットワークがないと GSAP は読み込まれず、プログラムは “geometry3d GSAP backend requires globalThis.gsap” で止まります。
- ファイルを直接開く。 ディレクトリは HTTP で配信してください。モジュールスクリプトは
file://からは読み込まれません。
次のステップ
- ページの取り決めは demo_gsap API にあります。
- 時刻がシーンをどう駆動するかは demo_gsap の設計で説明しています。