AIで創る「没入型」LP
Appleスタイルのスクロールアニメーション開発手法。
🎥 今回の参考動画はこちら ▼
1. はじめに:AI時代のWeb開発は「素材」が9割
Web制作者なら誰もが一度は憧れる、Apple製品ページのような「スクロールに合わせて製品が回転・分解する」滑らかなアニメーション。これを従来の方法で実装しようとすると、複雑なWebGLの知識や、膨大なCSSの調整、そして動画ファイルの最適化といった壁にぶつかります。
しかし、2026年の今、私たちはコードをほとんど書くことなく、このレベルの体験を作り出せるようになりました。鍵となるのは、Googleが提供する次世代AI開発環境「Antigravity」と、クリエイティブAIツール群です。
2. 必要なツールと環境準備(2026年最新スタック)
今回は「コードを書く」前に「素材を作る」工程が重要になります。以下のツールを使用します。
- Google Whisk (Labs): 商品のキービジュアル(開始フレーム・終了フレーム)を生成するImage-to-Imageツール。
- Google Flow (Labs): 静止画の間を埋める「遷移動画」を生成する動画生成AI。
- Ezgif (Webツール): 生成した動画を「連番画像」に変換するツール。
- Google Antigravity: AIエージェント機能を中核に据えた、Googleの新しい統合開発環境(IDE)。
3. 実装ステップ:素材生成からコーディングまで
Step 1: キービジュアルの生成 (Google Whisk)
まずはアニメーションの「始点」と「終点」となる画像を用意します。Google Whiskを使用し、以下の手順で生成します。
- 製品画像の生成: 「シネマティックな黒背景のヘッドホン」といったプロンプトで生成。これを
Start Frameとします。 - 分解図の生成: プロンプトに「exploded view(分解図)」を追加。これを
End Frameとします。
Step 2: アニメーションの生成 (Google Flow)
次に、2枚の静止画の間をつなぐ動画を生成します。Google Flowに2枚の画像をアップし、「Smoothly transition」と指示を出すだけで、驚くほど自然な回転・展開アニメーションを含むMP4動画が生成されます。
Step 3: 連番画像への変換 (Ezgif)
Webサイトで動画を直接制御するとラグが発生するため、動画を「連番画像(Image Sequence)」に変換します。Ezgif等で120枚程度の連番ファイル(frame_001.jpg〜)に書き出し、プロジェクトの/public/sequenceに配置します。
Step 4: Antigravityによる自動コーディング
AntigravityのAIエージェントに対し、「public/sequence内の画像を使ってスクロール連動アニメーションを作って」と指示を出します。AIが生成する、パフォーマンスを最適化したReactコンポーネントのコードがこちらです。
import React, { useEffect, useRef, useState } from 'react';
const AppleScrollSequence = () => {
const canvasRef = useRef(null);
const containerRef = useRef(null);
const [images, setImages] = useState([]);
const frameCount = 120; // 画像の枚数
// 1. 画像のプリロード(チラつき防止)
useEffect(() => {
const loadImages = () => {
const imgArray = [];
for (let i = 1; i <= frameCount; i++) {
const img = new Image();
img.src = `/sequence/frame_${i.toString().padStart(3, '0')}.jpg`;
imgArray.push(img);
}
setImages(imgArray);
};
loadImages();
}, []);
// 2. スクロールに応じた描画ロジック
useEffect(() => {
const handleScroll = () => {
if (!canvasRef.current || images.length === 0) return;
const canvas = canvasRef.current;
const context = canvas.getContext('2d');
const rect = containerRef.current.getBoundingClientRect();
const scrollFraction = Math.max(0, Math.min(1, -rect.top / (rect.height - window.innerHeight)));
const frameIndex = Math.min(frameCount - 1, Math.floor(scrollFraction * frameCount));
if (images[frameIndex]) {
context.clearRect(0, 0, canvas.width, canvas.height);
context.drawImage(images[frameIndex], 0, 0, canvas.width, canvas.height);
}
};
window.addEventListener('scroll', handleScroll);
return () => window.removeEventListener('scroll', handleScroll);
}, [images]);
return (
<div ref={containerRef} style={{ height: '400vh', background: '#000' }}>
<div style={{ position: 'sticky', top: 0, height: '100vh', display: 'flex', alignItems: 'center', justifyContent: 'center' }}>
<canvas ref={canvasRef} width={1920} height={1080} style={{ maxWidth: '100%', maxHeight: '100%' }} />
</div>
</div>
);
};
export default AppleScrollSequence;
4. 技術解説:AIは何を書いたのか?
AIが生成したコードの肝は「Canvas描画」と「Stickyスクロール」の組み合わせです。CSSだけで実装するとDOMの負荷が上がりますが、Canvasを使うことで毎秒60フレームの滑らかな体験を維持しています。
5. まとめ:AIファースト開発のメリット
Google Antigravityを活用すれば、これまで数週間かかっていたリッチなLP制作が、数時間で完了します。「コードを書く」作業から解放され、「どんな体験を創るか」というクリエイティビティに集中できる時代の到来です。
この記事の自動化に使われた技術と思考法は、
すべて以下のアカデミーでインストールできます。