• ブログTOP
  • AI・ディープラーニング
  • AR
  • VR
  • WEBサイト
  • WEBマーケティング
  • SEO
  • SNS
  • その他
  • お問い合わせ

ALAKI株式会社

COZIKEEいつまでも使えるTech情報発信ブログ

リクルートサイトはこちら >

WebVRはじめてみませんか?〜第2回 three.jsを使って3Dに触れる〜

2018年4月1日

  • このエントリーをはてなブックマークに追加

こんにちは!
デザイナーの伊東(@ALAKIWebVRAR1)です。

※TwitterでもWebARの事を中心に情報発信中!
よかったらフォローお願いしますm(_ _)m
Follow @ALAKIWebVRAR1

前回はWebVRとはどんなものなのか、触りの部分をご紹介しました。
今回は第二回ということで、WebVR開発には欠かせないthree.jsについてのお話です。

three.jsを使いこなせるようになれば、 WebVR開発のハードルはグッと低くなります。
最後までお付き合いよろしくお願いします。

この記事の目次

  • 1 three.jsとは
  • 2 three.jsを使う前準備
  • 3 立方体を作ってみる
  • 4 動かしてみる

three.jsとは

PCで3Dコンテンツを作成する技術にOpenGLというものがあります。このOpenGLをブラウザ上で動かすためのものが、前回の記事でも触れたWebGLと呼ばれるものです。WebGLをJavascriptで簡単に操作できるようにしたのが、今回スポットライトを当てるthree.jsです。

WebGLを扱うフレームワークは他にもあるのですが、three.jsを使うことがスタンダードになりつつあるようです。

three.jsを使う前準備

ライブラリの読み込み

まずはthree.jsをダウンロードしましょう。
下記の公式サイトからダウンロードできます。
https://threejs.org/

初期設定

先ほどダウンロードしてきたthree.jsのコアファイルを読み込みます。
もしくはCDNから読み込むのもいいかもしれません。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!doctype html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>Threejs入門</title>
    <style>canvas { width: 100%; height: 100% }</style>
</head>
<body>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/91/three.min.js"></script>
    <script>
    /* ここに色々記述していきます */
    </script>
</body>
</html>

シーンの作成

次にシーンを作成します。
下記のコードを、three.jsを読み込んだ箇所以降の<script></script>に記述しましょう。

1
2
3
4
5
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 );
document.body.appendChild( renderer.domElement );

コードを詳しくみていきます。

1行目:シーンを作っています。3D空間の作成です。
2行目:カメラの設定です。3D空間をどこから見るかを指定します。
3行目:レンダラーを作成しています。シーンやオブジェクトをレンダリングするものです。
4行目:レンダラーのサイズ指定です。表示領域の大きさをさします。
5行目:htmlのbodyに対してレンダラーを設定しています。

立方体を作ってみる

シーンの準備ができたら、いよいよオブジェクトを描画してみましょう。

1
2
3
4
5
var geometry = new THREE.CubeGeometry(1,1,1);
var material = new THREE.MeshBasicMaterial( { color: 0xff0000 } );
var cube = new THREE.Mesh( geometry, material );
scene.add( cube );
camera.position.z = 5;

このコードも1行ずつみていきましょう。

1行目:3Dオブジェクトの形と大きさを定義します。ここでは、CubeGeometry(立方体)を(1,1,1)(1cm四方)で作成しました。
2行目:3Dオブジェクトの素材と色を定義します。素材は指定せず、色を”赤”にしました。
3行目:形と大きさ、素材と色の設定をオブジェクトに反映します。
4行目:作成したオブジェクトを先ほど作ったシーンに反映します。
5行目:オブジェクトを表示する際のカメラの角度を調節しています。

ここまで記述してもまだ何も表示されません。
レンダリングする記述を追加しましょう。

1
2
3
4
5
function render() {
    requestAnimationFrame(render);
    renderer.render(scene, camera);
}
render();

ここまでのコードでとりあえずキューブをレンダリングできたと思います。

↓スマホで閲覧される際は、”Result”をタップしてください

See the Pen oqEJob by ito nao (@chokuro) on CodePen.

動かしてみる

先ほど作成したオブジェクトを動かしてみます。

1
2
3
4
5
6
7
8
tick();
 
function tick() {
  requestAnimationFrame(tick);
  cube.rotation.y += 0.01;
  cube.rotation.x += 0.01;
  renderer.render(scene, camera);
}

tickという関数を用意し、呼び出しています。
Y軸とX軸の回転をかける命令が、関数の中身に記述されています。

今までのコードを全て合わせるとこんな感じになります。

↓スマホで閲覧される際は、”Result”をタップしてください

See the Pen vRdbRr by ito nao (@chokuro) on CodePen.

 

いかがだったでしょうか。
今回はWebVR開発の基礎、3Dコンテンツの描画に欠かせないthree.jsをご紹介いたしました。
第3回以降は今回のthree.jsを応用して、実践的な内容をお届けしたいと思います。
次回もよろしくお願いします!

  • ツイート
  • このエントリーをはてなブックマークに追加

You may also like...

  • スクリーンショット 2018-11-29 23.56.53

    blender2.8を使って3Dオブジェクトにアニメーションをつける方法〜part.1〜

    30 11月, 2018

  • IMG_5255

    【Luma AI】iPhoneで簡単に3DCGを生成する【フォトグラメトリ × LiDAR × 3D生成AI】

    12 11月, 2022

  • スクリーンショット 2018-03-16 0.37.47

    WebVRはじめてみませんか?〜第1回 WebVRとは〜

    16 3月, 2018

デザイナー募集
  • Next story システムに「Google Cloud Translation API」を入れて翻訳をしよう!-紹介編-
  • Previous story .gitignorがないのにファイルがコミットできないときの対処方法

弊社サービス

MONJI+ MUGHEN ALAKI クラウド型受発注システム さよなら過去のAR。WebARがイベント集客に革命を起こします。

運営会社

ALAKI株式会社 ALAKI株式会社採用サイト

人気の記事

  • alaki1462_A_businessman_who_works_logically_1da80a2e-c297-4911-bdd6-feba0ebf1357

    仕事術

    【書籍要約】数学的な仕事術大全

    4 11月, 2024

  • fv-main-img-min

    空間コンピューティング

    世界初!「空間コンピューティング」を専用端末不要、スマホのWebブラウザのみで実現する『Web XR Site』を公開しました

    22 6月, 2023

  • Virtual reality players isometric vector illustration. VR UI and navigation. Futuristic digital technology. Virtual screen. Mixed reality 3d concept. Person in VR headset. Web banner idea

    AR

    Appleから新世代MRグラス「Vision Pro」の登場 – デジタルと現実世界が融合する新時代へ

    6 6月, 2023

  • AWE

    未分類

    ARアプリ『MUGHEN』が世界最大のAR/VRアワード「AWE」のファイナリストに選出されました!

    26 5月, 2023

  • python-logo-master-v3-TM

    pyhotn / 業務効率化

    「SwinIR」で高画質化した画像を pythonを使用して一括で元のサイズに戻す方法

    2 2月, 2023

カテゴリー

  • AI・ディープラーニング
  • AR
  • BtoB
  • CMS
  • Git
  • Google AdWords
  • gulp
  • Javascript
  • Laravel
  • Photoshop
  • Pug
  • pyhotn
  • Sass
  • SEO
  • SNS
  • Twitter広告
  • VR
  • Web3.0
  • WEBサイト
  • WEBマーケティング
  • YouTube
  • コーディング
  • システム開発
  • スマートフォンサイト
  • セキュリティ
  • セミナー
  • その他
  • ツール
  • デザイン
  • ベトナムレポート
  • 仕事術
  • 未分類
  • 業務効率化
  • 空間コンピューティング
  • 色

アーカイブ

  • 2024年11月
  • 2023年6月
  • 2023年5月
  • 2023年2月
  • 2023年1月
  • 2022年12月
  • 2022年11月
  • 2022年10月
  • 2022年9月
  • 2022年2月
  • 2021年12月
  • 2021年9月
  • 2021年7月
  • 2021年6月
  • 2020年10月
  • 2020年9月
  • 2020年8月
  • 2020年6月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年3月
  • 2019年2月
  • 2019年1月
  • 2018年12月
  • 2018年11月
  • 2018年9月
  • 2018年8月
  • 2018年7月
  • 2018年6月
  • 2018年5月
  • 2018年4月
  • 2018年3月
  • 2018年2月
  • 2018年1月
  • 2017年12月
  • 2017年11月
  • 2017年10月
  • 2017年9月
  • 2017年8月
  • 2017年7月
  • 2017年6月
  • 2017年4月
  • 2017年3月
  • 2017年2月
  • 2017年1月
  • 2016年12月
  • 2016年11月
  • 2016年10月
  • 2016年9月
  • 2016年8月
  • 2016年7月
  • 2016年6月
  • 2016年5月
  • 2016年4月
  • 2016年3月
  • 2016年2月
  • 2016年1月
  • 2015年12月
  • 2015年11月
  • 2015年10月
  • 2015年9月
  • 2015年7月
  • 2015年3月
  • 2015年2月
  • 2015年1月
  • 2014年12月
  • 2014年11月
  • 2014年10月
  • 2014年9月
  • 2014年8月
  • 2014年7月
  • 2014年6月
  • 2013年10月
  • 2013年9月

Facebook

お問い合わせ

お問い合わせ

人気の記事

  • 【書籍要約】数学的な仕事術大全
  • 世界初!「空間コンピューティング」を専用端末不要、スマホのWebブラウザのみで実現する『Web XR Site』を公開しました
  • Appleから新世代MRグラス「Vision Pro」の登場 – デジタルと現実世界が融合する新時代へ
  • ARアプリ『MUGHEN』が世界最大のAR/VRアワード「AWE」のファイナリストに選出されました!
  • 「SwinIR」で高画質化した画像を pythonを使用して一括で元のサイズに戻す方法

カテゴリー

  • AI・ディープラーニング
  • AR
  • BtoB
  • CMS
  • Git
  • Google AdWords
  • gulp
  • Javascript
  • Laravel
  • Photoshop
  • Pug
  • pyhotn
  • Sass
  • SEO
  • SNS
  • Twitter広告
  • VR
  • Web3.0
  • WEBサイト
  • WEBマーケティング
  • YouTube
  • コーディング
  • システム開発
  • スマートフォンサイト
  • セキュリティ
  • セミナー
  • その他
  • ツール
  • デザイン
  • ベトナムレポート
  • 仕事術
  • 未分類
  • 業務効率化
  • 空間コンピューティング
  • 色

検索

ALAKI株式会社 © 2025. All Rights Reserved.