【2026年】Three.jsでアニメーション|Web制作のアクセントに

Webサイトに新たな次元を。Three.jsがもたらすインタラクティブな体験
情報が溢れる現代、訪問者の記憶に残るWebサイトには、ユーザーを惹きつけるインタラクティブな体験が欠かせません。そこで注目されているのが、Webブラウザ上でリッチな3Dグラフィックスやアニメーションを比較的容易に実装できるJavaScriptライブラリ「Three.js」です。
かつて専門知識が必要だった3D表現をWebの世界にもたらし、静的なデザインに命を吹き込みます。
参考アニメーション
Three.js ジェネラティブアート スタジオ
事例から見るThree.jsの可能性
Three.jsはすでに多くのWebサイトで活用されています。
- ECサイト: 製品を360度自由に回転させ、細部まで確認できる。
- ブランドサイト: スクロールに合わせて物語が展開するストーリーページ。
- ポートフォリオサイト: ユーザーのマウスの動きに追従する幻想的な背景ビジュアル。
世界的な企業の製品紹介ページや、デザインアワードを受賞するクリエイティブなサイトで、その高い表現力が発揮されています。
なぜ今、Three.jsアニメーションがビジネスを加速させるのか
魅力的な3Dビジュアルは、単なる装飾ではなく、ビジネスに直結するメリットをもたらします。
- ユーザーエンゲージメントの向上: 驚きと楽しさを提供し、サイトの滞在時間を伸ばします。インタラクティブな要素は、ユーザーに「もっと触ってみたい」と思わせ、コンテンツへの理解を深めます。
- ブランドイメージの強化: 先進的な技術は、「革新的な企業」「細部までこだわるブランド」というポジティブな印象を与えます。
- 圧倒的な差別化: テキストと画像が中心の競合サイトの中で、動的な3D体験は訪問者に強烈なインパクトを残します。
この記事では、「Three.jsに興味はあるけれど、何から始めればいいか分からない」という方へ、Three.jsでアニメーションを実装し、Web制作のアクセントに加えるための第一歩を解説します。
Three.jsアニメーションの仕組みとは?押さえておきたい5つの基本要素
Three.jsのアニメーションは、一見複雑そうですが基本構造はシンプルです。仮想空間にオブジェクトを配置し、カメラで撮影して画面に映す、という映画撮影のような流れで構成されています。ここでは、その根幹をなす5つの基本要素を解説します。
3D空間を構築する3本柱
まず、3Dの世界を創り出すために不可欠な、3つの中心的な要素(舞台装置)を見ていきましょう。
- シーン (Scene): 全ての3Dオブジェクト、光源、カメラを配置する「仮想空間」そのものです。3D世界の舞台ステージにあたります。
- カメラ (Camera): 仮想空間であるシーンを、どの視点から切り取るかを決める「撮影カメラ」です。位置や角度によって、ユーザーに見える映像が変化します。
- レンダラー (Renderer): カメラが捉えたシーンの映像を、ブラウザの画面上に描画(レンダリング)する「映写機」です。3D空間の情報を、私たちが見られる2Dのピクセル情報に変換します。
この3つは、**「シーンという舞台にオブジェクトを置き、カメラで撮影し、レンダラーでブラウザに映し出す」**という関係性で連携しています。
オブジェクトに命を吹き込む2つの要素
舞台装置が整ったら、主役となる3Dオブジェクトを作成します。オブジェクトは主に2つの要素から構成されます。
- ジオメトリ (Geometry): オブジェクトの「形状」を定義するデータです。立方体、球、円錐といった基本形状から、複雑なモデルの骨格まで、あらゆる形のもとになります。
- マテリアル (Material): オブジェクトの「質感」や「見た目」を定義します。色、金属光沢、ガラスの透明感など、表面の材質を設定する役割を担います。
この「ジオメトリ(形状)」と「マテリアル(質感)」を組み合わせることで、1つの3Dオブジェクト(メッシュ)が完成し、シーンに配置できます。
これらの5つの要素が、Three.jsアニメーションの基本です。Three.jsは、ブラウザで3Dを扱う技術「WebGL」をより直感的に扱えるようにしたライブラリであり、この仕組みを理解することで、WebGLの複雑さを意識せずに豊かな3D表現を実装できます。
【初心者でも簡単】コピペで動く!Three.jsアニメーション実装チュートリアル
基本要素を理解したところで、実際に手を動かしてみましょう。ここでは、Three.jsでアニメーションを実装するチュートリアルとして、回転する立方体を作成する手順を解説します。Web制作にも応用しやすいよう、CDNを利用するため開発環境の構築は不要です。
Step 1: HTMLファイルの準備とThree.jsの読み込み
まず、アニメーションを表示するための土台となるHTMLファイルを用意します。以下のコードをindex.htmlなどの名前で保存してください。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>Three.js Animation</title>
<style>
body { margin: 0; }
canvas { display: block; }
</style>
</head>
<body>
<!-- Three.jsライブラリをCDNから読み込む -->
<script src="https://unpkg.com/three@0.139.2/build/three.min.js"></script>
<!-- 独自のアニメーション用コード -->
<script>
// ここにJavaScriptコードを記述します
</script>
</body>
</html>
ポイントは<script src="...">の部分です。これにより、Three.jsライブラリがインターネット経由で読み込まれ、自分のコード内で使用可能になります。
参考アニメーション
Three.js ジェネラティブアート スタジオ
Step 2: 3Dシーンの構築とオブジェクトの配置
次に、JavaScriptで3D空間を組み立てます。前のセクションで学んだ「シーン」「カメラ」「レンダラー」「オブジェクト」を作成するコードです。オブジェクトを照らすための「ライト」も忘れずに設置します。ライトがないとオブジェクトは真っ黒に表示されてしまいます。
// シーン(舞台)の作成
const scene = new THREE.Scene();
// カメラの作成
const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
camera.position.z = 5;
// レンダラー(映写機)の作成
const renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
// ジオメトリ(形状)とマテリアル(質感)の作成
const geometry = new THREE.BoxGeometry(1, 1, 1);
const material = new THREE.MeshStandardMaterial({ color: 0x00ff00 });
const cube = new THREE.Mesh(geometry, material);
scene.add(cube); // シーンに立方体を追加
// ライトの作成
const light = new THREE.DirectionalLight(0xffffff, 1);
light.position.set(1, 1, 1).normalize();
scene.add(light); // シーンにライトを追加
Step 3: アニメーションループで動きを加える
最後に、作成した立方体にアニメーションを加えます。requestAnimationFrameという関数を使い、ブラウザの描画タイミングに合わせて繰り返し処理を実行する「アニメーションループ」を作成します。このループの中で立方体の角度を少しずつ変えることで、滑らかな回転が実現できます。
function animate() {
requestAnimationFrame(animate); // 次のフレームで再度この関数を呼び出す
// 立方体を回転させる
cube.rotation.x += 0.01;
cube.rotation.y += 0.01;
// レンダリング(描画)
renderer.render(scene, camera);
}
animate(); // アニメーションループを開始
このコードをHTMLファイルの<script>タグ内に記述し、ブラウザで開くと、画面中央で緑色の立方体が回転します。まずはこのコードを動かし、colorやrotationの数値を変更してみてください。Three.jsの面白さをすぐに実感できるはずです。
アニメーションの先へ。Three.jsで広がるWeb表現の可能性
回転する立方体の作成を通して、基本的な3Dアニメーションの実装方法を解説しました。しかし、Three.jsのポテンシャルはこれだけではありません。ここからは、さらに表現の幅を広げるためのステップと活用アイデアを紹介します。
さらなるスキルアップへの道筋
基本をマスターしたら、より高度でオリジナリティあふれる表現に挑戦してみましょう。
公式ドキュメントとサンプル集を探索する Three.js公式サイトには、膨大なサンプルコード(Examples)がソースコード付きで公開されています。パーティクルエフェクト、物理演算、VR/ARコンテンツなど多種多様な作例が揃っています。これらのサンプルを動かし、コードを書き換えて「何を変えればどう変化するのか」を体感することが、効率的な学習につながります。
-
オリジナルの3Dモデルを読み込む 立方体や球体だけでなく、自作の3Dモデルを表示させてみましょう。Blenderのような無料の3Dモデリングソフトで作成したモデルを「glTF」形式などで書き出し、Three.jsで読み込むことで、Web制作の表現力は飛躍的に向上します。
-
シェーダーで独自のビジュアルを創造する より複雑でアーティスティックな表現を求めるなら、「シェーダー」の学習が欠かせません。シェーダーはGPU上で直接実行されるプログラムで、頂点の位置操作やピクセル単位での色制御が可能です。水面の揺らぎや炎のエフェクトなど、標準機能だけでは難しい高度なビジュアルが実現できます。
Three.jsアニメーションの活用アイデア
学んだ技術は、実際のWeb制作で活かすことで真価を発揮します。
- ポートフォリオサイト: スキルや世界観を表現するインタラクティブなオブジェクトをメインビジュアルに配置。
- 製品紹介ページ: 商品を3Dモデルで表示し、ユーザーが自由に回転・拡大して細部を確認できるようにする。
- ブランドサイト: ブランドイメージを象徴する抽象的な3Dアニメーションを背景に用い、ユーザーを世界観に引き込む。
Three.jsでアニメーションを加えれば、Webサイトは単なる情報伝達ツールから、ユーザーを魅了する体験の場へと進化します。この記事で作成した立方体をベースに、色や形を変えたり、マウス操作に反応させたりと、自由にカスタマイズしてみましょう。あなたのアイデア次第で、Web制作のアクセントになる表現の可能性は無限に広がります。
参考アニメーション
Three.js ジェネラティブアート スタジオ
