Agent Skills by ALSEL
Anthropic Claude音声・動画・メディア⭐ リポ 0品質スコア 50/100

walkthrough-video

アプリのスクリーンショットやライブサイトから、Remotionを使ってプロフェッショナルなウォークスルー動画を生成します。スムーズなトランジション・ズームエフェクト・テキストオーバーレイ・任意のボイスオーバーナレーションに対応し、デモ・製品紹介・ドキュメント用のMP4動画を作成します。「walkthrough video」「demo video」「app demo」「generate video from screenshots」などのキーワードで起動します。

description の原文を見る

Generate professional walkthrough videos from app screenshots or live sites using Remotion. Smooth transitions, zoom effects, text overlays, and optional voiceover narration. Produces MP4 videos for demos, product showcases, or documentation. Triggers: 'walkthrough video', 'demo video', 'product video', 'create a video walkthrough', 'remotion video', 'screen recording', 'app demo', 'showcase video', 'generate video from screenshots'.

SKILL.md 本文

ウォークスルービデオジェネレーター

Remotion を使用してアプリスクリーンショットまたはライブサイトから専門的なウォークスルービデオを作成します。トランジション、ズーム効果、テキストオーバーレイを備えた滑らかで洗練された MP4 ビデオを生成します。

概要

このスキルはスクリーンショットのセット(または実行中のアプリからキャプチャ)を取得し、以下の機能を備えた Remotion ビデオコンポジションに統合します:

  • 画面間のスムーズなトランジション(フェード、スライド、ワイプ)
  • ズーム効果で特定の UI エリアをハイライト
  • テキストオーバーレイタイトル、説明、コールアウト付き
  • プログレスインジケーターでウォークスルーの位置を表示
  • オプションのボイスオーバーナレーショントラック

前提条件

  • Node.js 18+ がインストールされていること
  • スクリーンショット(またはスクリーンショット可能なアプリ)
  • Remotion の経験は不要 — スキルがすべてのコードを生成します

ワークフロー

ステップ 1: スクリーンショットを収集

いずれかのアプローチを選択します:

オプション A: 既存のスクリーンショットから

ユーザーがすでにスクリーンショットを持っている場合(例:design-loop または product-showcase から):

スクリーンショットを以下から読み込む:
- .design/screenshots/
- .jez/screenshots/
- ユーザー指定のディレクトリ

ウォークスルーの順序でソート(ファイル名でアルファベット順、またはユーザーが指定した順序)。

オプション B: 実行中のアプリからキャプチャ

アプリがローカルで実行されている場合:

  1. Playwright CLI セッションを開始
  2. 各画面を順番に移動
  3. 一貫した寸法でスクリーンショット(ビデオ用に 1280×720 推奨)
  4. video/public/screens/ に保存
playwright-cli -s=walkthrough open http://localhost:3000
playwright-cli -s=walkthrough resize 1280 720
playwright-cli -s=walkthrough screenshot --filename=video/public/screens/01-home.png
# 次のページに移動...
playwright-cli -s=walkthrough screenshot --filename=video/public/screens/02-dashboard.png

オプション C: ライブ URL から

オプション B と同じですが、パブリック URL を使用します。各主要ページをスクリーンショット。

ステップ 2: スクリーンマニフェストを作成

ウォークスルーを説明する screens.json を構築:

{
  "projectName": "My App Walkthrough",
  "fps": 30,
  "width": 1280,
  "height": 720,
  "screens": [
    {
      "id": "home",
      "title": "Welcome to MyApp",
      "description": "The landing page introduces the core value proposition",
      "imagePath": "screens/01-home.png",
      "durationSeconds": 4,
      "transition": "fade",
      "zoomTarget": null
    },
    {
      "id": "dashboard",
      "title": "Your Dashboard",
      "description": "See all your projects at a glance",
      "imagePath": "screens/02-dashboard.png",
      "durationSeconds": 5,
      "transition": "slide-left",
      "zoomTarget": { "x": 100, "y": 200, "width": 400, "height": 300, "delay": 2 }
    }
  ]
}
フィールド説明
idstring一意のスクリーン識別子
titlestringテキストオーバーレイのタイトル
descriptionstringサブタイトルまたはナレーションテキスト
imagePathstringvideo/public/ に対する相対パス
durationSecondsnumberこの画面を表示する期間
transitionstringfade, slide-left, slide-right, slide-up, wipe, none
zoomTargetobject/null設定した場合、delay 秒後にこのリージョンにズーム

ステップ 3: Remotion プロジェクトをスカフォールド

Remotion プロジェクトが存在しない場合:

mkdir -p video
cd video
npm init -y
npm install remotion @remotion/cli @remotion/transitions react react-dom
npm install -D typescript @types/react

プロジェクト構造を作成:

video/
├── src/
│   ├── Root.tsx                    # Remotion エントリーポイント
│   ├── WalkthroughComposition.tsx  # メインコンポジション
│   ├── components/
│   │   ├── ScreenSlide.tsx         # 個別スクリーン表示
│   │   ├── TextOverlay.tsx         # タイトル/説明オーバーレイ
│   │   ├── ProgressBar.tsx         # ウォークスループログレスインジケーター
│   │   └── ZoomEffect.tsx          # リージョンへのズーム
│   └── config.ts                   # screens.json の読み込み、期間計算
├── public/
│   └── screens/                    # スクリーンショットアセット
│       ├── 01-home.png
│       └── 02-dashboard.png
├── screens.json                    # スクリーンマニフェスト
├── remotion.config.ts
├── tsconfig.json
└── package.json

ステップ 4: Remotion コンポーネントを生成

各コンポーネントファイルを生成。主要パターン:

Root.tsx

import { Composition } from "remotion";
import { WalkthroughComposition } from "./WalkthroughComposition";
import { screens, totalDurationInFrames, FPS, WIDTH, HEIGHT } from "./config";

export const RemotionRoot = () => (
  <Composition
    id="Walkthrough"
    component={WalkthroughComposition}
    durationInFrames={totalDurationInFrames}
    fps={FPS}
    width={WIDTH}
    height={HEIGHT}
    defaultProps={{ screens }}
  />
);

ScreenSlide.tsx パターン

import { AbsoluteFill, Img, spring, useCurrentFrame, useVideoConfig } from "remotion";

interface ScreenSlideProps {
  imageSrc: string;
  title: string;
  description: string;
}

export const ScreenSlide: React.FC<ScreenSlideProps> = ({ imageSrc, title, description }) => {
  const frame = useCurrentFrame();
  const { fps } = useVideoConfig();

  // フェードイン
  const opacity = spring({ frame, fps, config: { damping: 20 } });

  // 微妙なズーム(Ken Burns エフェクト)
  const scale = 1 + frame * 0.0002;

  return (
    <AbsoluteFill style={{ backgroundColor: "#000" }}>
      <Img
        src={imageSrc}
        style={{
          width: "100%",
          height: "100%",
          objectFit: "contain",
          opacity,
          transform: `scale(${scale})`,
        }}
      />
      {/* 下部のテキストオーバーレイ */}
      <div style={{
        position: "absolute",
        bottom: 40,
        left: 40,
        right: 40,
        opacity: spring({ frame: frame - 15, fps, config: { damping: 20 } }),
      }}>
        <h2 style={{ color: "#fff", fontSize: 32, fontWeight: 700, textShadow: "0 2px 8px rgba(0,0,0,0.8)" }}>
          {title}
        </h2>
        <p style={{ color: "#ccc", fontSize: 18, textShadow: "0 1px 4px rgba(0,0,0,0.8)" }}>
          {description}
        </p>
      </div>
    </AbsoluteFill>
  );
};

画面間のトランジション

@remotion/transitions でトランジションを使用:

import { TransitionSeries } from "@remotion/transitions";
import { fade } from "@remotion/transitions/fade";
import { slide } from "@remotion/transitions/slide";

// WalkthroughComposition 内:
<TransitionSeries>
  {screens.map((screen, i) => (
    <TransitionSeries.Sequence
      key={screen.id}
      durationInFrames={screen.durationSeconds * FPS}
    >
      <ScreenSlide {...screen} />
    </TransitionSeries.Sequence>
    // 画面間にトランジションを追加(最後の後ではない)
    {i < screens.length - 1 && (
      <TransitionSeries.Transition
        presentation={getTransition(screens[i + 1].transition)}
        timing={springTiming({ config: { damping: 20 }, durationInFrames: 15 })}
      />
    )}
  ))}
</TransitionSeries>

ステップ 5: プレビューと調整

cd video
npx remotion studio

ブラウザベースのプレビューが開きます。確認事項:

  • 各画面のタイミングが適切に感じられるか
  • トランジションがスムーズか
  • テキストオーバーレイが読みやすいか
  • ズームターゲットが正しいエリアをヒットしているか
  • プログレスバー(含める場合)が正確か

ステップ 6: ビデオをレンダリング

cd video
npx remotion render Walkthrough output.mp4 --codec h264

高品質の場合:

npx remotion render Walkthrough output.mp4 --codec h264 --quality 90

Web 最適化(ファイル容量小):

npx remotion render Walkthrough output.webm --codec vp8

高度な機能

リージョンへのズーム

画面の特定のエリアにズームしてフィーチャーをハイライト:

// ZoomEffect.tsx 内 — スケールと変換を補間
const zoomScale = interpolate(frame, [delayFrames, delayFrames + 30], [1, 2.5], {
  extrapolateRight: "clamp",
});
const translateX = interpolate(frame, [delayFrames, delayFrames + 30], [0, -targetX], {
  extrapolateRight: "clamp",
});

アニメーションコールアウトサークル

UI 要素に注意を向ける:

// 特定の点に表示されるパルスサークル
const scale = spring({ frame: frame - delay, fps, config: { damping: 8, stiffness: 80 } });
<div style={{
  position: "absolute",
  left: x - 20, top: y - 20,
  width: 40, height: 40,
  borderRadius: "50%",
  border: "3px solid #3B82F6",
  transform: `scale(${scale})`,
  opacity: Math.min(1, scale),
}} />

背景音楽

微妙な背景トラックを追加:

import { Audio } from "remotion";

<Audio src={staticFile("music/background.mp3")} volume={0.15} />

イントロとアウトロスライド

スタート時にタイトルカード、エンド時に CTA を追加:

// 最初のシーケンス:タイトルカード(3秒)
<TransitionSeries.Sequence durationInFrames={90}>
  <TitleCard projectName="MyApp" tagline="The future of project management" />
</TransitionSeries.Sequence>

// ... スクリーンシーケンス ...

// 最後のシーケンス:CTA カード(4秒)
<TransitionSeries.Sequence durationInFrames={120}>
  <CtaCard url="myapp.com" text="Try it free" />
</TransitionSeries.Sequence>

トランジション リファレンス

名前エフェクト最適用途
fadeクロスフェードディゾルブデフォルト、どこでも機能
slide-left新しい画面が右から スライドインシーケンシャルフロー(次ページ)
slide-right新しい画面が左からスライドイン戻る操作
slide-up新しい画面が下からスライドイン詳細への深掘り
wipeワイプトランジションドラマチックな表示
noneハードカット素早い比較

出力オプション

フォーマットコマンド用途
MP4 (H.264)--codec h264汎用互換性
WebM (VP8)--codec vp8Web 埋め込み、ファイル容量小
GIF--image-format png その後 ffmpeg短いループ、ソーシャルメディア
PNG シーケンス--image-format png --sequenceポストプロダクション編集

ヒントと落とし穴

  • 1280×720、画面あたり 3~5 秒、合計 90 秒未満 — これを超えると注意力が低下します
  • フェードが最も安全なトランジション — 1~2 つのトランジションタイプを選んで一貫性を保つ
  • テキストオーバーレイはコントラストが必須 — テキストシャドウまたは半透明背景を使用。小さすぎたり低コントラストだと「AI が作った」ように見えます
  • Ken Burns(微妙なズーム)は静的なスクリーンショットが退屈に見えるのを防ぎます。イントロ/アウトロカードを追加してビデオが唐突に感じないようにします
  • レンダリング前にプレビューnpx remotion studio は完全レンダリング時間を節約できます
  • スクリーンショットの寸法を一致させる(不一致はスケーリング問題の原因)。public/ アセットに staticFile() を使用

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
jezweb
リポジトリ
jezweb/claude-skills
ライセンス
MIT
最終更新
不明

Source: https://github.com/jezweb/claude-skills / ライセンス: MIT

関連スキル

汎用音声・動画・メディア⭐ リポ 1,982

listenhub

あらゆることを説明できます。アイデアをポッドキャスト、解説動画、または音声ナレーションに変換します。 ユーザーが「ポッドキャストを作りたい」「解説動画を作成したい」「これを読み上げてほしい」「画像を生成したい」、または知識を音声・映像形式で共有したいときに使用します。トピックの説明、YouTubeリンク、記事URL、プレーンテキスト、画像プロンプトに対応しています。

by LeoYeAI
汎用音声・動画・メディア⭐ リポ 1,982

best-youtube-video-editor

ClawHub上の「best-youtube-video-editor」スキルは、YouTube クリエイターのコンテンツ制作を革新します。タイムラインや複雑なソフトウェアを必要とせず、会話形式のAI駆動型ビデオ編集が可能です。無音部分のカット、チャプターマーカーの追加、字幕の挿入、ペーシングの調整、エクスポートの最適化——すべてが自然言語の指示で実現します。初回使用時には NemoVideo API を通じて認証情報を自動設定するため、有効化後数秒で編集を開始できます。YouTuber、教育関係者、ポッドキャスター、ブランドチャネル向けに開発され、品質を損なわず高速な納期対応が必要な方に最適です。mp4、mov、avi、webm、mkv 形式に対応しています。

by LeoYeAI
汎用音声・動画・メディア⭐ リポ 27,990

video

ユーザーがAIツールやプログラマティックフレームワークを使用してビデオコンテンツを作成、生成、または制作したい場合に使用します。また、ユーザーが「ビデオ制作」「AIビデオ」「Remotion」「Hyperframes」「HeyGen」「Synthesia」「Veo」「Runway」「Kling」「Pika」「ビデオ生成」「AIアバター」「トーキングヘッドビデオ」「プログラマティックビデオ」「ビデオテンプレート」「解説ビデオ」「プロダクトデモビデオ」「ビデオパイプライン」または「ビデオを作ってほしい」と言及している場合にも使用します。ビデオ作成、生成、制作のワークフロー全般に対応できます。ビデオコンテンツの戦略や投稿内容については「social-content」を、有料ビデオ広告クリエイティブについては「ad-creative」をご参照ください。

by coreyhaines31
汎用音声・動画・メディア⭐ リポ 317

clipify

ビデオから最も面白い瞬間を検出し、スタンドアロンクリップとしてカットできます。オプションで16:9から9:16へのリフォーマット(フェイスパンまたはスプリットスクリーン)に対応し、Opus風の単語ごとのキャプションを焼き込みます。ユーザーが「clipify」「このビデオからクリップをカットして」「これからショーツを作って」「面白い瞬間を見つけて」「9:16にリフレーミングして」「縦型クリップ」と言及したり、ビデオファイルパスを貼り付けてSNS対応のクリップを求める場合に使用します。

by louisedesadeleer
OpenAI音声・動画・メディア⭐ リポ 18,898

speech

ユーザーが音声生成、ナレーション、アクセシビリティ対応の読み上げ、音声プロンプト、またはOpenAI Audio APIによるバッチ音声生成をリクエストした場合に使用します。組み込みボイスを備えたバンドルCLI(`scripts/text_to_speech.py`)を実行でき、ライブ呼び出しには`OPENAI_API_KEY`が必要です。カスタムボイスの作成には対応していません。

by openai
汎用音声・動画・メディア⭐ リポ 2,743

depth-estimation

Depth Anything v2を使用したリアルタイム深度マップのプライバシー変換(CoreML + PyTorch対応) このスキルは、Depth Anything v2モデルを活用して、画像やビデオから取得した深度情報をリアルタイムで処理し、プライバシーを保護しながら変換します。CoreMLとPyTorchの両方に対応しており、エッジデバイスでの高速処理とクラウド環境での柔軟な運用が可能です。顔認識データのぼかしや背景の匿名化など、プライバシー関連の処理を効率的に実行できます。

by SharpAI
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: jezweb · jezweb/claude-skills · ライセンス: MIT