Blenderで作った3DモデルをWebページで動かせるようにしよう

monkey

今回は3DCGアニメーション制作ソフトのBlenderで作成した3DモデルをWebページで動かす方法を紹介します!

Blenderで3Dモデルを作成する

Blender公式から、お使いのPCのOSやバージョンに合うBlenderをダウンロードしてインストールします。

Blender公式
https://www.blender.org/

インストールできたら、アプリを開きます。

デフォルトでは立方体の3Dモデルがあるので、まずはこれを削除します。

blender

立方体をクリックして、オレンジ色の線が出たら右クリックし、削除をクリックします。

Blender

左上のメニューから

追加 > メッシュ > モンキー

をクリックします。

Blender Image

すると、このなんとも言えない形状の猿が現れます。

デフォルトだと色が出ないので、右上の右から二番目の3Dビューをクリックします。

blender image

デフォルトでは真っ白になっているので、色をつけていきます。

画面右下の方のマテリアルをクリックし、+新規をクリックします。

Blender image

ベースカラーの色の部分をクリックして、好みの色を選びます。

ここではとりあえず不気味さが増す水色にしときますね。

Blender image

色をつけたら.glbのファイル形式にしてエクスポートします。

画面左上のファイルから、エクスポートglTF2.0(.glb/.gltf)をクリックして、ファイル名をmonkey.glbにしてエクスポートします。

Blender image

これで3Dモデルの準備は完了です。

Visual Studio Codeをインストール

今回はローカル上のhtmlファイル内で3Dモデルを動かせるようにするので、Visual Studio Codeをインストールしておきます。

VScode公式
https://code.visualstudio.com

Visual Studio Codeをインストールできたら、拡張機能のLive Serverをインストールします。

画面左上の一番下のメニュー項目をクリックします。

vscode

クリックして出た検索欄にLive Serverと入力します。

表示されたLive Serverをクリックして、有効にするボタンをクリックします。

これでVisual Studio Codeの準備は完成です。

コードを作成する

Visual Studio Codeで

command + N(Mac)もしくはCtrl + N (Windows)でファイルを新規作成します。

新規作成したファイルに、以下のコードを貼り付けてください。

HTML

<!DOCTYPE html>
<html lang="ja">
<head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Three.js 3Dモデル表示 - 操作可能</title> <style> body { margin: 0; } canvas { display: block; } </style>
</head>
<body> <script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/three@0.128.0/examples/js/controls/OrbitControls.js"></script> <script src="https://cdn.jsdelivr.net/npm/three@0.128.0/examples/js/loaders/GLTFLoader.js"></script> <script> // シーン、カメラ、レンダラーを作成 const scene = new THREE.Scene(); const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000); const renderer = new THREE.WebGLRenderer({ antialias: true }); renderer.setSize(window.innerWidth, window.innerHeight); document.body.appendChild(renderer.domElement); // 照明を追加 const light = new THREE.DirectionalLight(0xffffff, 1); light.position.set(10, 10, 10).normalize(); scene.add(light); const ambientLight = new THREE.AmbientLight(0x404040, 1.5); // 全体を照らすアンビエントライト scene.add(ambientLight); // GLTFLoaderを使ってモデルをロード const loader = new THREE.GLTFLoader(); loader.load('./monkey.glb', function (gltf) { const model = gltf.scene; model.scale.set(1, 1, 1); // 必要に応じてモデルのスケールを調整 scene.add(model); }, undefined, function (error) { console.error(error); }); // カメラの位置を調整 camera.position.z = 5; // OrbitControls を作成してカメラとレンダラーをリンク const controls = new THREE.OrbitControls(camera, renderer.domElement); controls.enableDamping = true; // 遅延効果を有効化 controls.dampingFactor = 0.05; // 遅延の速度 controls.screenSpacePanning = false; // 画面上でパン操作を無効化 controls.maxPolarAngle = Math.PI / 2; // 縦方向の回転制限(下方向の回転を制限) // アニメーションループ function animate() { requestAnimationFrame(animate); // 必要に応じてコントロールを更新 controls.update(); renderer.render(scene, camera); } animate(); // ウィンドウサイズ変更時にレンダラーとカメラを調整 window.addEventListener('resize', () => { const width = window.innerWidth; const height = window.innerHeight; renderer.setSize(width, height); camera.aspect = width / height; camera.updateProjectionMatrix(); }); </script>
</body>
</html>

貼り付けたら、

command + s (Mac)またはCtrl + s (Windows)

を押して、index.htmlと名前をつけて保存します。

デスクトップにtestという名前のフォルダを作成し、このフォルダに先ほど作成したmonkey.glbindex.htmlを入れます。

Visual Studio Codeの左上のファイルフォルダーを開くをクリックします。

vs code

先ほどデスクトップに保存したフォルダtestを開きます。

先ほど作成したindex.htmlの編集画面の右下のGo Liveをクリックします。

vs code

すると、先ほど作成した不気味なサルがwebページで動かせるようになります。

マウスをドラッグして回転させたり、ズームアップ、ズームアウトができるようになっています。

3Dモデル動かしてみた動画です↓

デモページはこちら↓

いかがでしょう?動かせましたか?

3Dモデルを表示できればWebサイト制作の幅が大きく広がりますね!

以上です、ここまで読んでくれてありがとうございました!