お問い合わせ・無料相談
WEBのこと 2019.12.02

「Three.js」について学ぶ

WRITER
Sasayama Sayaka ディレクター
Sasayama Sayaka

ディレクター。ウェブデザイン技能士(2級)/HTML5プロフェッショナル認定資格 レベル1・レベル2。

「Three.js」について学ぶ

コーダーのさやさんです。

(コーダーのお仕事については大先輩コーダーのまみさんが最近記事にまとめてくださったので、こちらの記事をぜひ参考にしていただければと思います!)
/journal/coder/

最近webでもっとおしゃれな表現ができるようになりたいと思い、
Canvasから派生してThree.jsを学ぶことにしました。

「Three.js」とは

three.jsは、ウェブブラウザ上でリアルタイムレンダリングによる3次元コンピュータグラフィックスを描画する、クロスブラウザ対応の軽量なJavaScriptライブラリ及びアプリケーションプログラミングインタフェースである。
https://ja.wikipedia.org/wiki/Three.js

つまり「イマドキリッチなすごい表現ができるもの」と覚えていただければと思います。(二回目)

「Three.js」については、今現在のところ以下のサイトを参考に勉強中です。
Three.js入門サイト – ICS MEDIA
(学習用の本もネットで購入したのですが、こちらはまだ届きません……届いたら本もご紹介したいと思います)

Three.jsでできること

一言で言えば「webブラウザで3D表現を(比較的)簡単に表示することができる」でしょうか。

Three.jsを使えば3Dアニメーションやブラウザゲームなどを、
普通にJavaScriptでプログラミングするよりは簡単に作ることができるようになります。

ただ、先にご説明しておきますと……
基本的にアプリコットデザインで制作するホームページでは
3Dアニメーションの表現を使うことは(現状ではあまり)無いかな~と思います。
(理由はナカムラさんのブログ記事にもあるように、時間のかかる作業ほど制作費がかかるためです。
3Dアニメーションの制作は高度なプログラミングであり、「Three.js」を利用してもそれなりに時間がかかってしまい制作費が通常よりも高額になってしまうので。。。)

以上のことをご理解した上で記事を見ていただければと思います。

Three.jsを使って立体をプログラミングしてみる

↓まずは入門サイトを見ながら私が作成したサンプルがこちらです。
(※描写領域が大きすぎてデフォルトでは何も見えないと思います。
コードが書かれていない方の白い画面内をスクロールして見るか、CodePenのロゴをクリックしてCodePen内で見てください)

See the Pen
ZEEgNxW
by sasayama (@sasayama)
on CodePen.

「Three.js」ではHTML5のcanvas要素を使用します。
canvas要素が立体等の描写エリアとなり、JavaScript内にThree.jsのコードを書いてHTMLのcanvasに立体を表示させます。

色々と専門的なことを書くと記事が長くなってしまう上に楽しく読める内容に仕上げる自信がなくなってしまうので、細かいコードを知りたい方はCodePen内のJavaScriptコードを読んでみてください。
(なるべく丁寧にコメントを付けてあります)

上記サンプルは入門サイトにもある基本中の基本的なコードを書いているだけなのですが、
そのコードをちょっと変えるだけでも以下のような3D表現を作ることが出来ます。

▼サンプル1(※CodePenのロゴをクリックしてCodePen内で見てください)

See the Pen
MWWNNbq
by sasayama (@sasayama)
on CodePen.

▼サンプル2(※CodePenのロゴをクリックしてCodePen内で見てください)

See the Pen
vYEBBLW
by sasayama (@sasayama)
on CodePen.

上記2つのサンプルもまだ「Three.js」の基本中の基本でしかない(と、思う)のですが、
それでもなんだか「すごい!」表現だと思いませんか?

ただ、繰り返しになってしまうのですが、
このような表現技術をホームページに採用する場合は費用が高額になる可能性があります。

でもいつか「こんな3Dの表現でホームページをさやさんに作って欲しい!」と依頼が来たら嬉しいなと、
こっそりそんなことを思いながら、今後も「Three.js」を学んでいきたいと思います!

JOURNALが気に入ったら「いいね」してね!

Contact

ブランディング・WEB制作・運用まで、まずは一度お話を聞かせてください。 初回のご相談は無料で承っています。

お電話

0120-622835

10:00〜18:00 / 土日祝休

メールフォーム

お問い合わせはこちら