今回は3DCGアニメーション制作ソフトのBlenderで作成した3DモデルをWebページで動かす方法を紹介します!
Table of Contents
Blenderで3Dモデルを作成する
Blender公式から、お使いのPCのOSやバージョンに合うBlenderをダウンロードしてインストールします。
Blender公式
https://www.blender.org/
インストールできたら、アプリを開きます。
デフォルトでは立方体の3Dモデルがあるので、まずはこれを削除します。
立方体をクリックして、オレンジ色の線が出たら右クリックし、削除をクリックします。
左上のメニューから
追加 > メッシュ > モンキー
をクリックします。
すると、このなんとも言えない形状の猿が現れます。
デフォルトだと色が出ないので、右上の右から二番目の3Dビューをクリックします。
デフォルトでは真っ白になっているので、色をつけていきます。
画面右下の方のマテリアルをクリックし、+新規をクリックします。
ベースカラーの色の部分をクリックして、好みの色を選びます。
ここではとりあえず不気味さが増す水色にしときますね。
色をつけたら.glbのファイル形式にしてエクスポートします。
画面左上のファイルから、エクスポート、glTF2.0(.glb/.gltf)をクリックして、ファイル名をmonkey.glbにしてエクスポートします。
これで3Dモデルの準備は完了です。
Visual Studio Codeをインストール
今回はローカル上のhtmlファイル内で3Dモデルを動かせるようにするので、Visual Studio Codeをインストールしておきます。
VScode公式
https://code.visualstudio.com
Visual Studio Codeをインストールできたら、拡張機能のLive Serverをインストールします。
画面左上の一番下のメニュー項目をクリックします。
クリックして出た検索欄にLive Serverと入力します。
表示されたLive Serverをクリックして、有効にするボタンをクリックします。
これでVisual Studio Codeの準備は完成です。
コードを作成する
Visual Studio Codeで
command + N(Mac)もしくはCtrl + N (Windows)でファイルを新規作成します。
新規作成したファイルに、以下のコードを貼り付けてください。
<!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.glbとindex.htmlを入れます。
Visual Studio Codeの左上のファイルのフォルダーを開くをクリックします。
先ほどデスクトップに保存したフォルダtestを開きます。
先ほど作成したindex.htmlの編集画面の右下のGo Liveをクリックします。
すると、先ほど作成した不気味なサルがwebページで動かせるようになります。
マウスをドラッグして回転させたり、ズームアップ、ズームアウトができるようになっています。
3Dモデル動かしてみた動画です↓
デモページはこちら↓
いかがでしょう?動かせましたか?
3Dモデルを表示できればWebサイト制作の幅が大きく広がりますね!
以上です、ここまで読んでくれてありがとうございました!