パーティクルアニメーションの作り方(Three.js 初心者向け)

2025.12.19

パーティクルアニメーションとは、点・小さな図形・画像などを大量に表示し、それぞれに動きを与えることで表現するアニメーションで、背景アニメーションや演出、3D表現として使用されます。

当サイトでは、GUI操作だけでThree.js用のパーティクルアニメーションコードを自動生成できるツールを提供していますので、ぜひ試してみてください。

Three.jsでパーティクルを作る基本構造

Three.jsでのパーティクルは、以下の3要素で構成されます。

  1. BufferGeometry(パーティクルの位置情報)
  2. PointsMaterial(点の見た目)
  3. Points(描画オブジェクト)

これに、カメラ、レンダラー、アニメーションループを組み合わせて実装します。

Three.js パーティクルアニメーションの基本コード

1. HTML(Canvasを自動生成)

<body>
  <script type="importmap">
    {
      "imports":{
        "three": "https://cdn.jsdelivr.net/npm/three@0.167.0/build/three.module.js"
      }
    }
  </script>
  <script type="module" src="main.js"></script>
</body>

2. Three.jsの初期設定

import * as THREE from 'three';
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({ alpha: true });
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);

3. パーティクルの生成(BufferGeometry)

const count = 2000;
const geometry = new THREE.BufferGeometry();
const positions = new Float32Array(count * 3);
for (let i = 0; i < count * 3; i++) {
  positions[i] = (Math.random() - 0.5) * 10;
}
geometry.setAttribute(
  'position',
  new THREE.BufferAttribute(positions, 3)
);

🔹 ポイント

  • 3つの値で1点(x, y, z)
  • Float32Arrayを使うことでGPU処理が高速化

4. マテリアル設定(PointsMaterial)

const material = new THREE.PointsMaterial({
  color: 0x00aaff,
  size: 0.05,
  transparent: true,
  opacity: 0.8
});

設定できる主な項目:

  • size:点の大きさ
  • color:色
  • transparent / opacity:透過

5. パーティクルをシーンに追加

const particles = new THREE.Points(geometry, material);
scene.add(particles);

6. アニメーションループ

function animate() {
  requestAnimationFrame(animate);
  particles.rotation.y += 0.001;
  particles.rotation.x += 0.0005;
  renderer.render(scene, camera);
}

animate();

これで 回転するパーティクルアニメーション が完成します。

まとめ

Three.jsを使用したパーティクルアニメーションは、WebGL(GPU)を活用することで数千〜数万の点を滑らかに描画できる表現手法です。
Canvasでは重くなりがちな表現も、Three.jsなら 3D空間・奥行き・回転・シェーダー演出 まで対応できます。

当サイトでは、GUI操作だけでThree.js用のパーティクルアニメーションコードを自動生成できるツールを提供しています。
数値を調整するだけで、すぐに実装可能なコードを出力できますので、ぜひ試してみてください。

Contact

ツールに関するご質問、
WEBサイト制作のお問い合わせ