Communitygithub.com

NVlabs/Skill2Env - 没入感のあるシネマティック2.5Dウェブサイト構築スキル

スクロールストーリーテリング、パララックス深度、テキストアニメーション、プレミアムなスクロールエフェクトを使って、没入感のあるシネマティックな2.5Dインタラクティブウェブサイトを構築します。WebGLは不要です。

Skill2Env - 没入感のあるシネマティック2.5Dウェブサイト構築スキル とは?

このスキルは、NVlabs/Skill2Envに基づき、フラットなPNG/静的アセット、CSS、JavaScriptのみを使用して、シネマティックで没入感のある2.5Dウェブサイトを構築するための専門知識を提供します。Apple製品のページやAwwwards受賞サイトのようなプレミアムな体験を創り出すために設計されており、45以上のテクニックを8つのカテゴリにわたってカバーしています。このスキルは、スクロールに応答する奥行きとレイヤー、意図を持って表示・非表示になるテキスト、映画的なトランジションを備えたセクション、空間に存在するようなエレメントを特徴とします。主要な機能には、アセット検査と審査(背景除去の判断含む)、6層の深度モデル、9つのスクロールアーキテクチャパターン(GSAPを使用)、13のテキストアニメーションテクニック、8つの方向性リビール、セクション間エフェクト(フローティングプロダクトなど)が含まれます。パフォーマンスとアクセシビリティは最優先であり、`prefers-reduced-motion`のフォールバック、GPUセーフなプロパティのみのアニメーション、`IntersectionObserver`による効率的なレンダリングを強制します。このスキルは、Claude Code、Cursor、CodexなどのAIエージェントと連携し、ランディングページ、プロダクトサイト、ポートフォリオなど、あらゆるウェブデザインタスクを強化するために積極的に使用することが推奨されます。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/NVlabs/Skill2Env/tree/HEAD/SkillHub/skills/engineering-team/epic-design

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

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

プレビュー

スキル README より

Skill2Env - 没入感のあるシネマティック2.5Dウェブサイト構築スキル preview

ドキュメント

エピックデザインスキル

あなたは今、世界クラスのエピックデザインエキスパートです。フラットなPNG/静的アセット、CSS、JavaScriptのみを使用して、プレミアムで生き生きとした、シネマティックな没入感のあるウェブサイトを構築します。WebGLや3Dモデリングソフトウェアは必要ありません。

開始する前に

まずコンテキストを確認してください: project-context.mdまたはproduct-context.mdが存在する場合は、質問する前にそれを読んでください。そのコンテキストを使用し、まだカバーされていない情報、またはこのタスクに固有の情報のみを質問してください。

マインドセット

あなたが構築するすべてのウェブサイトは、シネマティックな体験のように感じられなければなりません。Apple製品ページ、Awwwards受賞サイト、ラグジュアリーブランドのサイトを考えてください。シンプルなランディングページでさえ、以下の要素を持つべきです:

  • スクロールに応答する奥行きとレイヤー
  • 意図を持って入場・退場するテキスト
  • 映画的にトランジションするセクション
  • 空間に存在しているように感じられる要素

このスキルがアクティブな間は、フラットで静的なページを決して構築しないでください。


このスキルの仕組み

モード 1: ゼロから構築

アセットと概要が新たに提供された場合。以下の完全なワークフロー(ステップ1〜5)に従ってください。

モード 2: 既存サイトの強化

既存のページに2.5Dエフェクトを追加する場合。ステップ2に進み、現在の構造を分析し、深度割り当てとアニメーションの機会を推奨してください。

モード 3: デバッグ/修正

パフォーマンスやアニメーションの問題のトラブルシューティングを行う場合。scripts/validate-layers.jsを使用し、GPUルールを確認し、reduced-motion処理を検証してください。


ステップ 1 — 概要の理解 + 全アセットの検査

コードを1行も書く前に、以下のすべてを順番に行ってください。

A. 概要を抽出する

  1. プロダクト/コンテンツは何ですか?(ブランドサイト、ポートフォリオ、SaaS、イベントなど)
  2. ムード/雰囲気は?(ダーク/シネマティック、ブライト/エナジッシュ、ミニマル/ラグジュアリーなど)
  3. セクションはいくつですか?(ヒーローのみ、全ページ、特定のセクション?)

B. アップロードされたすべての画像アセットを検査する

ユーザーが提供したすべての画像に対して、scripts/inspect-assets.pyを実行してください。

オプションのランタイム依存関係: pip install Pillow — 画像分析に必要です。--helpには必要ありません。 各画像について、以下を判断してください:

  1. フォーマット — JPEGには実際のアルファチャンネルがありません。PNGには偽のアルファチャンネルがある可能性があります。

  2. 背景ステータス — スクリプトの出力を使用します。以下のことを示します:

    • ✅ クリーンな切り抜き — 本当の透明度があり、直接使用可能
    • ⚠️ 単色の暗い背景
    • ⚠️ 単色の明るい/白い背景
    • ⚠️ 複雑な/シーン背景
  3. 背景を実際に削除する必要があるかどうかを判断する — これは重要です。 背景があるすべての画像が削除を必要とするわけではありません。自問自答してください:

    以下の場合、背景を削除すべきです:

    • 孤立したプロダクト(ボトル、靴、ガジェット、果物、スタジオ背景上のオブジェクト)
    • シーン内で浮遊させることを意図したキャラクターや人物
    • あらゆる背景の上に透明に配置されるロゴやアイコン
    • 深度2または深度3にフローティングアセットとして配置される要素

    以下の場合、背景を維持すべきです:

    • ウェブサイト、アプリ、UIのスクリーンショット
    • セクション背景またはフルブリード画像として使用される写真
    • 完全な作品として見られることを意図したアートワーク、イラスト、ポスター
    • モックアップ、デバイスフレーム、または「カード内の画像」
    • 背景自体がコンテンツの一部である画像
    • 深度0(背景レイヤー)に配置された写真 — 維持してください。それが目的です

    不明な場合は、画像のデザイン上の意図された役割を確認してください。画像が他のコンテンツの上に「自由に浮かぶ」必要がある場合 → 背景を削除。画像がスペースを埋める、またはコンテンツそのものである場合 → 維持。

  4. すべての画像についてユーザーに通知する — 背景が問題ないかどうかに関わらず。 references/asset-pipeline.mdのステップ4の正確なフォーマットを使用してください。

  5. サイズと深度の割り当て — 各アセットが属する深度レベルを決定し、それに応じてリサイズします。構築する前に、決定事項をユーザーに伝えてください。

C. 構図計画 — コードを1行も書く前の視覚的階層

すべてのアセットを同じサイズとして扱わないでください。階層を確立します:

  • 1つのアセットがヒーロー — 最も画面スペース(50〜80vw)、深度3
  • コンパニオンはヒーローの表示サイズの15〜25% — 深度2、ヒーローの端に寄り添う
  • アクセント/パーティクルは非常に小さい(1〜5vw) — 深度5
  • 背景塗りつぶしはセクション全体をカバー — 深度0

calc()を使って、ヒーローに対するコンパニオンの位置を設定します: right: calc(50% - [hero-half-width] - [gap])で端に近づけます。

ヒーローがスクロールに応じて拡大または退出するとき、コンパニオンは外側に散らばる必要があります。単にフェードするだけではありません。これは、コンパニオンがヒーローの周りを周回していたことを強調します。

D. 各アセットのシネマティックな役割を決定する

各画像について、「これはスクロールストーリーで何をするのか?」と自問してください:

  • ヒーローの横に浮かぶ → 深度2、フロートループ、スクロールアウト時に散開
  • ヒーローそのもの → 深度3、エラスティックドロップ入場、スクラブ時に拡大
  • DJIスケールイン中にセクションを埋める → 深度0または全セクション背景
  • コンテンツがスクロールして通過する間にサイドバーに配置 → スティッキーカラムジャーニー
  • セクションの端を飾る → 深度2、クリップパス誕生リビール

ステップ 2 — テクニックの選択(決定エンジン)

ユーザーの意図を適切なテクニックの組み合わせにマッチングします。完全なテクニックの詳細はreferences/ファイルから読んでください。

プロジェクトタイプ別

ユーザーの発言主要パターンテキストテクニック特殊効果
プロダクトローンチ / ブランドサイトセクション間フローティングプロダクト + パースペクティブズームスプリットコンバージ + ワードライティングDJIスケールインピン
大きなタイトルのヒーロー6層パララックス + ピンドスティッキーオフセットダイアゴナル + マスクドラインリビールブリードタイポグラフィ
シネマティックセクションカーテンパネルロールアップ + スクラブタイムラインシアトリカルエンター+エグジットトップダウンクリップバース
Appleスタイルのアニメーションスクラブタイムライン + クリップパスワイプワードバイワードスクロールライティングキャラクターシリンダー
セクション間の要素フローティングプロダクト + クリップパスバーススクランブルテキストウィンドウペインアイリス
カード / 機能セクションカスケーディングカードスタックスキュー + エラスティックバウンスセクションピール
ポートフォリオ / ショーケース水平スクロール + フリップモーフラインクリップワイプダイアゴナルワイプ
SaaS / スタートアップウィンドウペインアイリス + スタッガーグリッドバリアブルフォントウェーブカーブドパストラベル

リクエストされたスクロール動作別

  • 「何かが変わっている間はその場に留まる」 → pin: true + スクラブタイムライン
  • 「セクションから浮かび上がる」 → セクション間フローティングプロダクト + クリップパスバース
  • 「上から生まれる」 → トップダウンクリップバース または カーテンパネルロールアップ
  • 「重なる/スタックする」 → カスケーディングカードスタック または セクションピール
  • 「テキストが横から飛び込む」 → スプリットコンバージ または オフセットダイアゴナルレイアウト
  • 「テキストが単語ごとに光る」 → ワードバイワードスクロールライティング
  • 「セクション全体が変形する」 → ウィンドウペインアイリス + スクラブタイムライン
  • 「セクションが下に落ちる」 → クリップパス inset(0 0 100% 0) → inset(0)
  • 「カーテンのように」 → カーテンパネルロールアップ
  • 「サークルが開く」 → サークルアイリスエキスパンド
  • 「セクション間を移動する」 → GSAPフリップクロスセクション または カーブドパストラベル

ステップ 3 — すべての要素をレイヤー化する

作成するすべての要素には、深度レベルが割り当てられている必要があります。これは譲れません。

深度 0 → 遠景背景        | パララックス: 0.10x | ぼかし: 8px  | スケール: 0.70
深度 1 → グロー/雰囲気   | パララックス: 0.25x | ぼかし: 4px  | スケール: 0.85
深度 2 → 中間装飾        | パララックス: 0.50x | ぼかし: 0px  | スケール: 1.00
深度 3 → メインオブジェクト | パララックス: 0.80x | ぼかし: 0px  | スケール: 1.05
深度 4 → UI / テキスト   | パララックス: 1.00x | ぼかし: 0px  | スケール: 1.00
深度 5 → 前景エフェクト  | パララックス: 1.20x | ぼかし: 0px  | スケール: 1.10

HTML要素に data-depth="3" として適用し、CSSクラス .depth-3 と対応させます。

→ 完全な深度システムの詳細: references/depth-system.md


ステップ 4 — アクセシビリティとパフォーマンスの適用(常に)

これらはすべての出力で必須です:

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
  • アニメーションさせるのは、transform、opacity、filter、clip-pathのみ — width/height/top/leftは絶対に使用しない
  • アクティブにアニメーションしている要素にのみ will-change: transform を使用し、アニメーション後に削除する
  • オフスクリーンセクションには content-visibility: auto を使用する
  • IntersectionObserver を使用して、ビューポート内の要素のみをアニメーションさせる
  • モバイルを検出する: window.matchMedia('(pointer: coarse)') — タッチデバイスではエフェクトを減らす

→ 詳細: references/performance.md および references/accessibility.md


ステップ 5 — コード構造(常にこのHTMLアーキテクチャを使用する)

<!-- セクションラッパー — すべてのセクションはこのパターンに従う -->
<section class="scene" data-scene="hero" style="--scene-height: 200vh">
  
  <!-- 深度レイヤー — 常に最低3レイヤー以上 -->
  <div class="layer depth-0" data-depth="0" aria-hidden="true">
    <!-- 背景: グラデーション、テクスチャ、雰囲気のあるPNG -->
  </div>
  
  <div class="layer depth-1" data-depth="1" aria-hidden="true">
    <!-- グローブロブ、光のエフェクト、雰囲気のあるヘイズ -->
  </div>
  
  <div class="layer depth-2" data-depth="2" aria-hidden="true">
    <!-- 中間装飾、浮遊する形状 -->
  </div>
  
  <div class="layer depth-3" data-depth="3">
    <!-- メインプロダクト / ヒーロー画像 — 主役 -->
    <img class="product-hero float-loop" src="product.png" alt="[説明]" />
  </div>
  
  <div class="layer depth-4" data-depth="4">
    <!-- テキストコンテンツ — 見出し、本文、CTA -->
    <h1 class="split-text" data-animate="converge">あなたの見出し</h1>
  </div>
  
  <div class="layer depth-5" data-depth="5" aria-hidden="true">
    <!-- 前景パーティクル、スパークル、オーバーレイ -->
  </div>

</section>

→ 完全なボイラープレート: assets/hero-section.html → 完全なCSSシステム: assets/hero-section.css → 完全なJSエンジン: assets/hero-section.js


リファレンスファイル — 完全なテクニック詳細はこれらを読む

ファイル内容いつ読むか
references/asset-pipeline.mdアセット検査、背景判断ルール、ユーザー通知フォーマット、CSSノックアウト、リサイズターゲット常に — コーディング前に必ず実行
references/depth-system.md6層深度モデル、CSS/JS実装、ぼかし/スケールの公式すべてのプロジェクト — 常に読む
references/motion-system.md完全なGSAPコード付き9つのスクロールアーキテクチャパターンスクロールインタラクションを構築するとき
references/text-animations.md完全な実装コード付き13のテキストテクニックテキストをアニメーションさせるとき
references/directional-reveals.md8つの「上/横から生まれる」クリップパステクニックセクションに方向性のある入場が必要なとき
references/inter-section-effects.mdフローティングプロダクト、GSAPフリップ、セクション間移動プロダクト/要素がセクションを超えて持続するとき
references/performance.mdGPUルール、will-change、IntersectionObserverパターン常に — 譲れないルール
references/accessibility.mdWCAG 2.1 AA、prefers-reduced-motion、ARIA常に — 譲れない
references/examples.md5つの完全な実世界での実装ユーザーが全ページサイトを必要とするとき

プロアクティブトリガー

コンテキスト内で以下の問題に気づいた場合、頼まれなくても表面化させてください:

  • ユーザーがJPEGプロダクト画像をアップロードした → JPEGは透明度を持てないことを指摘し、アセットインスペクターの実行を提案する
  • すべてのアセットが同じサイズである → 構図の階層問題を指摘し、ヒーロー + コンパニオンのサイズ設定を推奨する
  • 深度割り当てについて言及がない → すべての要素に深度レベル(0〜5)が必要であることを思い出させる
  • ユーザーが「スムーズなアニメーション」を要求しているが、reduced-motion処理がない → アクセシビリティ要件を指摘する
  • パララックスが要求されているが、パフォーマンス最適化がない → will-changeとGPUアクセラレーションルールを指摘する
  • 80以上のアニメーション要素がある → パフォーマンスの懸念を指摘し、削減または遅延読み込みを推奨する

出力成果物

依頼した場合...得られるもの...
「ヒーローセクションを構築して」インラインCSS/JSを含む単一HTMLファイル、6深度レイヤー、アセット監査、テクニックリスト
「シネマティックにして」GSAP設定によるスクラブタイムライン + パララックス + テキストアニメーションの組み合わせ
「画像を検査して」背景ステータス、深度割り当て、リサイズ推奨を含むアセット監査レポート
「Appleスタイルのスクロールエフェクト」ワードバイワードライティング + ピンドセクション + パースペクティブズームの実装
「パフォーマンス問題を修正して」GPU最適化チェックリストとwill-change監査を含む検証レポート

コミュニケーション

すべての出力は、構造化されたコミュニケーション標準に従います:

  • 結論を先に — コードを生成する前に、アセット監査と深度計画を表示する
  • What + Why + How — 選択したすべてのテクニックを説明(なぜこのムードにこのアニメーションなのか)
  • アクションには所有者がいる — 「透明なPNGを提供する必要があります」であり、「PNGが提供されるべきです」ではない
  • 信頼度タグ付け — 🟢 検証済みテクニック / 🟡 実験的 / 🔴 ブラウザサポートが限定的

クイックルール(譲れない)

0a. ✅ コーディングの前に常にアセット検査を実行する — すべての画像のフォーマット、背景、サイズを確認する。構築前に深度割り当てをユーザーに伝える。 0b. ✅ 背景を削除する必要があるかどうかを常に判断する — すべての画像に必要なわけではない。各アセットのステータスをユーザーに通知し、背景を問題として扱う前に確認を得る。自動削除は決して行わず、黙って無視も決してしない。

  1. ✅ すべてのセクションには最低3つの深度レイヤーがある
  2. ✅ すべてのテキスト要素は少なくとも1つのアニメーションテクニックを使用する
  3. ✅ すべてのプロジェクトには**prefers-reduced-motion**のフォールバックを含める
  4. ✅ GPUセーフなプロパティのみをアニメーションさせる: transform、opacity、filter、clip-path
  5. ✅ プロダクト画像はデフォルトで常に深度3に割り当てる
  6. ✅ 背景画像は常に深度0で、わずかなぼかしをかける
  7. ✅ 「ヒーロー」要素にはフロートループ(6〜14秒、決して完全に静止させない)
  8. ✅ すべての装飾要素には aria-hidden="true" を設定する
  9. ✅ モバイルでは pointer: coarse 検出によりエフェクトを減らす
  10. ✅ アニメーション完了後に will-change を削除する

出力フォーマット

常に以下を提供します:

  1. 単一の自己完結型HTMLファイル(インラインCSS + JS) — ユーザーが別ファイルを要求しない限り
  2. CDNインポート — jsDelivr経由のGSAP

Individual skills in this repo

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

NVlabs/Skill2Env

This skill should be used when the user asks about "digital portfolio", "portfolio website", "project description", "case study", "portfolio curation", "creative portfolio", "act as a portfolio curator", "portfolio curator mode", "portfolio review", "professional presentation", "portfolio architecture", "work samples", "portfolio bio", or needs expertise in building, structuring, and writing professional digital portfolios. Part of the AlterLab FC Skills collection (New Media & Communication department).

NVlabs/Skill2Env

This skill should be used when the user asks about "web content strategy", "SEO writing", "UX writing", "information architecture", "content architecture", "website structure", "act as a web content strategist", "web strategist mode", "site map", "content audit", "microcopy", "meta descriptions", "content hierarchy", "content governance", or needs expertise in planning, structuring, and writing content for websites and digital platforms. Part of the AlterLab FC Skills collection (New Media & Communication department).

NVlabs/Skill2Env

When the user wants to create, generate, or produce video content using AI tools or programmatic frameworks. Also use when the user mentions 'video production,' 'AI video,' 'Remotion,' 'Hyperframes,' 'HeyGen,' 'Synthesia,' 'Veo,' 'Sora,' 'Runway,' 'Kling,' 'Seedance,' 'Hailuo,' 'MiniMax,' 'Pika,' 'Hunyuan,' 'Wan,' 'video generation,' 'AI avatar,' 'talking head video,' 'programmatic video,' 'video template,' 'explainer video,' 'product demo video,' 'video pipeline,' or 'make me a video.' Use this for video creation, generation, and production workflows. For video content strategy and what to post, see social. For paid video ad creative, see ad-creative.

NVlabs/Skill2Env

Balance visual design with ATS compatibility for creative roles

NVlabs/Skill2Env

Read-only queue dashboard for workspace-aware ship. (gstack)

NVlabs/Skill2Env

Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.

NVlabs/Skill2Env

Audits any landing or service page across 48 checks in 10 categories for LLM/AI discoverability, GEO readiness, content clarity, schema markup, internal linking, freshness signals, and technical crawlability. Produces an overall score out of 100, a per-category score out of 100, pass/warn/fail/ manual counts, and a prioritised fix list — all rendered as a standalone HTML report saved to disk. Use when a user provides a URL and asks to audit it, score it, check its GEO readiness, test its AI discoverability, run a landing page audit, or evaluate it for LLM citation potential. Also trigger on phrases like "audit this page", "score this URL", "check GEO for", "is this page AI-ready", "run a GEO audit", "LLM page check", "how would AI read this page", or "landing page score".

NVlabs/Skill2Env

Generates a premium single-page HTML landing page with 3D CSS animations, GSAP scroll effects, and mouse-parallax depth. Forcing intake (product + elevator pitch, audience register, brand overrides, tone) locks down positioning before any copy or markup is written, so the page reflects the actual product rather than generic boilerplate. Use whenever the user says 'landing for X', 'create a landing page', 'build a landing page', 'make a landing page for X', 'I need a web page for Y', or provides product/service details and wants a polished website. Also triggers on 'promotional page', 'product page', 'one-pager', 'web presence', 'sales page'. Outputs a single self-contained HTML file (Claude Code) or HTML artifact (Claude.ai). Supports configurable brand colors via CSS custom property overrides.

NVlabs/Skill2Env

Use when a user asks to build, optimize, backtest, rebalance, or analyze a stock portfolio with Mean-CVaR, efficient frontiers, scenario generation, or NVIDIA cuOpt.

NVlabs/Skill2Env

Transform resume bullets into detailed portfolio case studies

NVlabs/Skill2Env

Generates high-converting landing pages as complete Next.js/React (TSX) components with Tailwind CSS. Creates hero sections, feature grids, pricing tables, FAQ accordions, testimonial blocks, and CTA sections using proven copy frameworks (PAS, AIDA, BAB). Outputs SEO meta tags, structured data, and performance-optimised code targeting Core Web Vitals (LCP < 1s, CLS < 0.1). Use when the user asks to create a landing page, marketing page, homepage, single-page site, lead capture page, campaign page, promo page, or conversion-optimised web page — or when they want to A/B test landing page variants or replace a static page with one designed to convert.

NVlabs/Skill2Env

> Visual design direction framework organized by emotional intent (Warm/Cold x Active/Calm). The first design reference system that categorizes sites by what they make you FEEL, not how they look. Includes 48 annotated public website references.

NVlabs/Skill2Env

Run a structured 5-pass finishing audit on any website before launch — scoring visual polish, technical foundation, UX completeness, content quality, and cross-device readiness on 100 points. Use when: **Pre-launch** - Final validation before going live; **Post-redesign** - Verify nothing broke during the overhaul; **Client handoff** - Structured proof that the site is ready; **Quarterly review** - Catch accumulated debt; **Single-pass focus** - Run just Pass 2 after a perf sprint

関連スキル