Communitygithub.com

assafkip/claude-video-editor

HyperFrames用のGSAPアニメーションリファレンスです。gsap.to()、from()、fromTo()、イージング、スタガー、デフォルト値、タイムライン(gsap.timeline()、位置パラメータ、ラベル、ネスト、再生制御)、パフォーマンス(transform、will-change、quickTo)をカバーします。HyperFramesコンポジションでGSAPアニメーションを作成する際に使用します。

claude-video-editor とは?

このスキルは、HyperFramesコンポジション内でGSAPアニメーションを記述するための包括的なリファレンスを提供します。GSAPのコアメソッド(gsap.to()、gsap.from()、gsap.fromTo())の使い方から、イージング、スタガー、デフォルト設定、コールバック、CSS変数、ファンクションベースの値までをカバーしています。また、gsap.timeline()によるアニメーションの連鎖、位置パラメータ、ラベル、ネスト、再生制御といった高度なシーケンス制御についても詳細に説明しています。パフォーマンス面では、transformプロパティの優先、will-changeの適切な使用、gsap.quickTo()による頻繁な更新の最適化、スタガー効果による効率的なアニメーション、不要なアニメーションのクリーンアップといったベストプラクティスを提供します。レスポンシブ対応やアクセシビリティ(prefers-reduced-motion)のためのgsap.matchMedia()の使用例も含まれており、開発者がHyperFramesで高品質かつ効率的なアニメーションを実装できるよう支援します。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/assafkip/claude-video-editor/tree/HEAD/skills/gsap

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

GSAP

コアトゥイーンメソッド

  • gsap.to(targets, vars) — 現在の状態から vars へアニメーション。最も一般的。
  • gsap.from(targets, vars) — vars から現在の状態へアニメーション(登場)。
  • gsap.fromTo(targets, fromVars, toVars) — 開始と終了を明示的に指定。
  • gsap.set(targets, vars) — 即座に適用(duration 0)。

プロパティ名には常にキャメルケースを使用(例:backgroundColor、rotationX)。

共通のvars

  • duration — 秒(デフォルト0.5)。
  • delay — 開始までの秒数。
  • ease — "power1.out"(デフォルト)、"power3.inOut"、"back.out(1.7)"、"elastic.out(1, 0.3)"、"none"。
  • stagger — 数値 0.1 またはオブジェクト:{ amount: 0.3, from: "center" }、{ each: 0.1, from: "random" }。
  • overwrite — false(デフォルト)、true、または "auto"。
  • repeat — 数値、または無限ループには -1。yoyo — repeatと組み合わせて方向を交互に。
  • onComplete、onStart、onUpdate — コールバック。
  • immediateRender — from()/fromTo()ではデフォルト true。同じプロパティと要素を対象とする後続のトゥイーンでは上書きを避けるため false に設定。

トランスフォームとCSS

生の transform 文字列よりもGSAPのトランスフォームエイリアスを推奨:

GSAPプロパティ同等のCSS
x, y, ztranslateX/Y/Z (px)
xPercent, yPercenttranslateX/Y (%)
scale, scaleX, scaleYscale
rotationrotate (deg)
rotationX, rotationY3D rotate
skewX, skewYskew
transformOrigintransform-origin
  • autoAlpha — opacity よりも推奨。0では visibility: hidden も設定。
  • CSS変数 — "--hue": 180。
  • svgOrigin (SVGのみ) — グローバルSVG座標空間の原点。transformOrigin と併用しない。
  • 方向付き回転 — "360_cw"、"-170_short"、"90_ccw"。
  • clearProps — "all" またはカンマ区切り。完了時に関連インラインスタイルを削除。
  • 相対値 — "+=20"、"-=10"、"*=2"。

ファンクションベースの値

gsap.to(".item", {
  x: (i, target, targets) => i * 50,
  stagger: 0.1,
});

イージング

組み込みイージング:power1–power4、back、bounce、circ、elastic、expo、sine。それぞれ .in、.out、.inOut が用意されています。

デフォルト設定

gsap.defaults({ duration: 0.6, ease: "power2.out" });

トゥイーンの制御

const tween = gsap.to(".box", { x: 100 });
tween.pause();
tween.play();
tween.reverse();
tween.kill();
tween.progress(0.5);
tween.time(0.2);

gsap.matchMedia()(レスポンシブ + アクセシビリティ)

メディアクエリに一致する場合のみセットアップを実行。一致しなくなると自動で元に戻します。

let mm = gsap.matchMedia();
mm.add(
  {
    isDesktop: "(min-width: 800px)",
    reduceMotion: "(prefers-reduced-motion: reduce)",
  },
  (context) => {
    const { isDesktop, reduceMotion } = context.conditions;
    gsap.to(".box", {
      rotation: isDesktop ? 360 : 180,
      duration: reduceMotion ? 0 : 2,
    });
  },
);

タイムライン

タイムラインの作成

const tl = gsap.timeline({ defaults: { duration: 0.5, ease: "power2.out" } });
tl.to(".a", { x: 100 }).to(".b", { y: 50 }).to(".c", { opacity: 0 });

位置パラメータ

3番目の引数で配置を制御:

  • 絶対指定: 1 — 1秒の位置
  • 相対指定: "+=0.5" — 終了後; "-=0.2" — 終了前
  • ラベル: "intro"、"intro+=0.3"
  • アライメント: "<" — 前と同じ開始; ">" — 前の終了後; "<0.2" — 前の開始0.2秒後
tl.to(".a", { x: 100 }, 0);
tl.to(".b", { y: 50 }, "<"); // .aと同じ開始
tl.to(".c", { opacity: 0 }, "<0.2"); // .bの開始0.2秒後

ラベル

tl.addLabel("intro", 0);
tl.to(".a", { x: 100 }, "intro");
tl.addLabel("outro", "+=0.5");
tl.play("outro");
tl.tweenFromTo("intro", "outro");

タイムラインオプション

  • paused: true — 一時停止状態で作成。.play() で開始。
  • repeat、yoyo — タイムライン全体に適用。
  • defaults — すべての子トゥイーンにマージされるvars。

タイムラインのネスト

const master = gsap.timeline();
const child = gsap.timeline();
child.to(".a", { x: 100 }).to(".b", { y: 50 });
master.add(child, 0);

再生制御

tl.play()、tl.pause()、tl.reverse()、tl.restart()、tl.time(2)、tl.progress(0.5)、tl.kill()。


パフォーマンス

TransformとOpacityを優先

x、y、scale、rotation、opacity のアニメーションはコンポジター上で動作します。同じ効果をtransformで実現できる場合は width、height、top、left を避けてください。

will-change

will-change: transform;

実際にアニメーションする要素にのみ使用。

gsap.quickTo() による頻繁な更新

let xTo = gsap.quickTo("#id", "x", { duration: 0.4, ease: "power3" }),
  yTo = gsap.quickTo("#id", "y", { duration: 0.4, ease: "power3" });
container.addEventListener("mousemove", (e) => {
  xTo(e.pageX);
  yTo(e.pageY);
});

スタガー > 多数のトゥイーン

手動で遅延を設定した個別のトゥイーンではなく stagger を使用。

クリーンアップ

画面外のアニメーションは一時停止または削除。


リファレンス(オンデマンドで読み込み)

  • references/effects.md — ドロップインエフェクト:タイプライターテキスト、オーディオビジュアライザー。HyperFrames用の既製エフェクトパターンが必要な場合に参照。

ベストプラクティス

  • プロパティ名はキャメルケースを使用。transformエイリアスとautoAlphaを推奨。
  • delayによる連鎖よりもタイムラインを推奨。位置パラメータを使用。
  • 読みやすいシーケンスのために addLabel() でラベルを追加。
  • タイムラインコンストラクタにdefaultsを渡す。
  • 再生制御が必要な場合はトゥイーン/タイムラインの戻り値を変数に保存。

禁止事項

  • トランスフォームで十分な場合にレイアウトプロパティ(width/height/top/left)をアニメーションしない。
  • 同じSVG要素にsvgOriginとtransformOriginを両方使用しない。
  • タイムラインでシーケンスを組める場合にdelayでアニメーションを連鎖しない。
  • DOMが存在する前にトゥイーンを作成しない。
  • クリーンアップを怠らない — 不要になったトゥイーンは必ず削除。

Individual skills in this repo

This repo contains 9 individual skills — each has its own dedicated page.

assafkip/claude-video-editor

Build videos from stills when there is nothing to cut — narration first (ElevenLabs v3 with audio tags), then still keyframes from ANY source (AI image tools, screenshots, photos, HyperFrames-rendered HTML), animated deterministically with the animate-stills recipe (HyperFrames camera moves + GSAP atmosphere). Use when the user wants an explainer, documentary-style video, or any video built from generated or collected visuals instead of recorded footage.

assafkip/claude-video-editor

HyperFrames CLI tool — hyperframes init, lint, preview, render, transcribe, tts, doctor, browser, info, upgrade, compositions, docs, benchmark. Use when scaffolding a project, linting or validating compositions, previewing in the studio, rendering to video, transcribing audio, generating TTS, or troubleshooting the HyperFrames environment.

assafkip/claude-video-editor

Install and wire registry blocks and components into HyperFrames compositions. Use when running hyperframes add, installing a block or component, wiring an installed item into index.html, or working with hyperframes.json. Covers the add command, install locations, block sub-composition wiring, component snippet merging, and registry discovery.

assafkip/claude-video-editor

Create video compositions, animations, title cards, overlays, captions, voiceovers, audio-reactive visuals, and scene transitions in HyperFrames HTML. Use when asked to build any HTML-based video content, add captions or subtitles synced to audio, generate text-to-speech narration, create audio-reactive animation (beat sync, glow, pulse driven by music), add animated text highlighting (marker sweeps, hand-drawn circles, burst lines, scribble, sketchout), or add transitions between scenes (crossfades, wipes, reveals, shader transitions). Covers composition authoring, timing, media, and the full video production workflow. For CLI commands (init, lint, preview, render, transcribe, tts) see the hyperframes-cli skill.

assafkip/claude-video-editor

Beginner-friendly end-to-end video creator for HyperFrames. Use when the user says "make a video", "create a video", "new video", "build a video", "video from scratch", "I want to make a video", "help me create a video", or when someone who's never used HyperFrames before arrives with a concept, script, or rough idea and wants a finished MP4. Interviews the user in one pass, then builds the full video with mandatory preview and visual-verification gates.

assafkip/claude-video-editor

Build and iterate short-form vertical (9:16) videos in Hyperframes — TikTok/Reels/Shorts style. Use when Nate says "short-form video", "vertical video", "TikTok/Reels/Shorts", "make a short", "talking-head + motion graphics", or when the target is a 1080x1920 composition with face video + synced scene overlays + karaoke captions. Encodes the full May Shorts 19 playbook: face-mode choreography, audio-synced scene timing, karaoke captions, and the 10-rule quality checklist.

assafkip/claude-video-editor

Edit any video by conversation — the orchestrator for the bundled video pipeline. Use when the user wants to edit, cut, caption, grade, or add motion graphics to footage; drops a folder of clips and says "edit this"; or asks to make a promo/teaser/tutorial/short. Routes to video-use (the cut engine) and HyperFrames (motion-graphics overlays), with a motion-craft library for taste.

assafkip/claude-video-editor

Production pipeline for mathematical and technical animations using Manim Community Edition. Creates 3Blue1Brown-style explainer videos, algorithm visualizations, equation derivations, architecture diagrams, and data stories. Use when users request: animated explanations, math animations, concept visualizations, algorithm walkthroughs, technical explainers, 3Blue1Brown style videos, or any programmatic animation with geometric/mathematical content.

assafkip/claude-video-editor

Capture a website and create a HyperFrames video from it. Use when: (1) a user provides a URL and wants a video, (2) someone says "capture this site", "turn this into a video", "make a promo from my site", (3) the user wants a social ad, product tour, or any video based on an existing website, (4) the user shares a link and asks for any kind of video content. Even if the user just pastes a URL — this is the skill to use.

関連スキル