Three.js(r74)で3Dオブジェクトを動かしてみる。動かすのは、以下のコードで作成した立方体。
render()をループさせることによってアニメーションさせているので、立方体を動かすコードはrender()内に記述する。ちなみにこのループは1秒間に60回実行される。
3Dオブジェクト自体を動かすのではなく、カメラを動かすことによって3Dオブジェクトが動いているように見せることもできる
Three.jsのサイトからダウンロードした圧縮ファイル内にあるTrackballControls.jsを使用して3Dオブジェクトをマウスで動かすこともできる。
1.ダウンロードしたファイルを解凍し、three.js-master\examples\js\controls\TrackballControls.jsを
適当なフォルダにコピーする。ここではjsというフォルダにコピー。
2.htmlからTrackballControls.jsを読み込む。
3. TrackballControlsインスタンスを作成する。
4.render()内でアップデートする
左クリックでオブジェクトの回転。右クリックで上下左右に移動。ホイールで奥行き方向に移動できる。
// シーンの作成 var scene = new THREE.Scene(); // カメラの作成 var camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 ); // レンダラーの作成 var renderer = new THREE.WebGLRenderer(); // レンダラーが描画するキャンバスサイズの設定 renderer.setSize( window.innerWidth, window.innerHeight ); // キャンバスをDOMツリーに追加 document.body.appendChild( renderer.domElement ); // ジオメトリの作成 var geometry = new THREE.BoxGeometry( 1, 1, 1 ); // マテリアルの作成 var material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } ); // オブジェクトの作成 var cube = new THREE.Mesh( geometry, material ); // オブジェクトをシーンに追加 scene.add( cube ); // カメラ位置調整 camera.position.z = 5; camera.position.x = 0.5; camera.position.y = 0.5; // レンダリング function render() { renderer.render( scene, camera ); } render();
render()をループさせることによってアニメーションさせているので、立方体を動かすコードはrender()内に記述する。ちなみにこのループは1秒間に60回実行される。
function render() { // requestAnimationFrameで自分自身を呼び出し続けることでレンダリングを繰り返す requestAnimationFrame( render ); // 立方体をx軸を軸に回転 cube.rotation.x += 0.1; // 立方体をy軸を軸に回転 cube.rotation.y += 0.1; renderer.render( scene, camera ); }
3Dオブジェクト自体を動かすのではなく、カメラを動かすことによって3Dオブジェクトが動いているように見せることもできる
function render() { // requestAnimationFrameで自分自身を呼び出し続けることでレンダリングを繰り返す requestAnimationFrame( render ); // 立方体を奥に移動 camera.position.x += 0.01; renderer.render( scene, camera ); }
Three.jsのサイトからダウンロードした圧縮ファイル内にあるTrackballControls.jsを使用して3Dオブジェクトをマウスで動かすこともできる。
1.ダウンロードしたファイルを解凍し、three.js-master\examples\js\controls\TrackballControls.jsを
適当なフォルダにコピーする。ここではjsというフォルダにコピー。
2.htmlからTrackballControls.jsを読み込む。
3. TrackballControlsインスタンスを作成する。
// TrackballControlsインスタンス作成 var controls = new THREE.TrackballControls( camera );
4.render()内でアップデートする
controls.update();
左クリックでオブジェクトの回転。右クリックで上下左右に移動。ホイールで奥行き方向に移動できる。
0 件のコメント:
コメントを投稿