
こんにちは!
今日は、Three.jsという素晴らしいJavaScriptライブラリについてお話しします。
Webブラウザ上で3Dコンテンツを簡単に作成できるこのライブラリは、開発者にとって非常に便利です。
今回はThree.jsについて紹介していきます!
Three.jsとは?
Three.jsは、WebGLを利用して3Dグラフィックスを描画するためのJavaScriptライブラリです。
これを使うことで、複雑な3D表現を簡単に実現できます。
特に、専門的な知識がなくても、直感的に3Dコンテンツを作成できるのが大きな魅力です。
-
-
公式サイト
threejs.org
Three.jsの基本構成
Three.jsを使うためには、基本的に以下の3つの要素が必要です。
- シーン: 3D空間を定義します。
- カメラ: どのようにシーンを表示するかを決定します。
- レンダラー: シーンを描画する役割を担います。
これらを組み合わせることで、3Dオブジェクトを表示することができます。
Three.jsのインストール方法
Three.jsを使うためのインストールはとても簡単です。以下の手順で始めてみましょう。
- CDNを利用する: HTMLファイルに以下のスクリプトタグを追加します。
- ローカルにダウンロード: Three.jsの公式サイトから最新のライブラリをダウンロードし、プロジェクトに追加します。
<script src="https://cdn.jsdelivr.net/npm/three/build/three.min.js"></script>3Dオブジェクトの作成
Three.jsでは、さまざまな3Dオブジェクトを簡単に作成できます。
例えば、立方体を作成するコードは以下の通りです。
const geometry = new THREE.BoxGeometry();
const material = new THREE.MeshBasicMaterial({ color: 0x00ff00 });
const cube = new THREE.Mesh(geometry, material);
scene.add(cube);このコードを実行すると、緑色の立方体がシーンに追加されます。
アニメーションの追加
3Dオブジェクトに動きを加えることで、より魅力的な表現が可能になります。
以下のようにアニメーションを設定できます。
function animate() {
requestAnimationFrame(animate);
cube.rotation.x += 0.01;
cube.rotation.y += 0.01;
renderer.render(scene, camera);
}
animate();このコードを使うと、立方体が回転し続けます。
動きが加わることで、視覚的なインパクトが増しますね。
ライティングの重要性
3Dシーンでは、ライティングが非常に重要です。適切なライティングを設定することで、オブジェクトの質感や立体感が大きく変わります。
以下は、ポイントライトを追加する例です。
const light = new THREE.PointLight(0xffffff, 1);
light.position.set(5, 5, 5);
scene.add(light);このようにして、シーンに光を加えることで、よりリアルな表現が可能になります。
カメラの操作
カメラの位置や向きを変更することで、シーンの見え方が変わります。
例えば、カメラをオブジェクトから離すことで、全体を見渡すことができます。
camera.position.z = 5;この設定を行うことで、立方体全体を視認できるようになります。
サンプルコードをHTMLに保存
試しに、サンプルコードをHTMLに保存して表示させてみます。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>Three.js Sample</title>
<style>
body { margin: 0; }
canvas { display: block; }
</style>
<script src="https://cdn.jsdelivr.net/npm/three/build/three.min.js"></script>
</head>
<body>
<script>
// シーン、カメラ、レンダラーの作成
const scene = new THREE.Scene();
const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
const renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
// 立方体の作成
const geometry = new THREE.BoxGeometry();
const material = new THREE.MeshBasicMaterial({ color: 0x00ff00 });
const cube = new THREE.Mesh(geometry, material);
scene.add(cube);
// カメラの位置を設定
camera.position.z = 5;
// アニメーションループ
function animate() {
requestAnimationFrame(animate);
cube.rotation.x += 0.01;
cube.rotation.y += 0.01;
renderer.render(scene, camera);
}
animate();
</script>
</body>
</html>HTMLファイルをブラウザ等で開くと以下のようになりました!
立方体が動いているのが分かります。

Three.jsの応用例
Three.jsは、さまざまな分野で活用されています。
以下はその一部です。
| 分野 | 使用例 |
|---|---|
| ゲーム | インタラクティブな3Dゲーム |
| アーキテクチャ | 建物の3Dモデル表示 |
| バーチャルリアリティ | VR体験の構築 |
| 教育 | 3Dシミュレーションの作成 |
これらの応用例からもわかるように、Three.jsは多岐にわたる用途で利用されています。
Three.jsの学習リソース
Three.jsを学ぶためのリソースは豊富にあります。
以下のサイトを参考にしてみてください。
- 公式ドキュメント: Three.jsの基本から応用まで詳しく解説されています。
- YouTubeチュートリアル: 動画で学ぶことで、視覚的に理解しやすくなります。
- オンラインフォーラム: 他の開発者と情報交換ができる場です。
まとめ
Three.jsは、Webブラウザ上で3Dコンテンツを簡単に作成できる強力なツールです。
シンプルな構成から始めて、アニメーションやライティングを追加することで、魅力的な3Dシーンを作り上げることができます。
これからもThree.jsを使って、さまざまな3D表現に挑戦してみてください!