WEB

【超簡単!】three.jsではじめる3Dコンテンツ ~glTFの書き出し編~

こんにちは!
WebデザイナーのNK細胞です!

「WebGL(three.js)を活用して作成されたWebサイト魅力的すぎる。どうせなら自分で作りたい……!」

と思うことはありませんか?

ということでthree.jsを使ってWebGLにチャレンジしてみました!記録もかねて、3ステップで書いていこうと思います。

コーディング初学者でもできますか?
NK細胞
NK細胞
初学者でも大丈夫です!一緒に3Dデザインライフを送りましょう!!

第一回の今回はWebGLに適したglTF形式ファイルをblenderで書き出す方法についてお話します。

WebGLについては以下の記事で、概要とWebGLを活用した魅力的なWebサイトを紹介しているので、良ければ見てみてください。

没入感がすごい!WebGLを活用した魅力的なサイト5選こんにちは! WebデザイナーのNK細胞です! 本日は、個人的に魅力的だと感じたWebGLを活用したWebサイトを5つ紹介します...

そもそもglTF形式ファイルってなんだ?

glTFとは

今回blenderで書き出すのは、glTF(GL Transmission Format)というJSONによって3Dモデルやシーンを表現するフォーマットです。

glTFはKhronos Groupによって開発され、3Dモデルの効率的な伝送と読み込みを目的としています。また、このフォーマットは、「3DにおけるJPEG」と表現されることもあり、WebGLなどのウェブベースの3Dレンダリング技術と組み合わせて使用する際に、その軽量性で高速な読み込み可能なものとなります。

glTF形式ファイルと各3Dデータフォーマット

ファイル形式 拡張子 用途 テクスチャ アニメーション ファイルサイズ
FBX .fbx 3Dモデリング
アニメーション
外部テクスチャファイルを参照する 複雑なアニメーション
STL .stl 3Dプリンター テクスチャ非対応 静止画像
OBJ .obj 3Dモデリング
3Dプリンター
外部テクスチャファイルを参照する 静止画像
GLTF .gltf/.glb Web上の3Dコンテンツ表示 1ファイル内にテクスチャを含む 簡単なアニメーション

表参照:https://mawasu-blog.com/gltf/(2024/07/10 16:15 アクセス)

以上の表のようにglTF以外にも複数の3Dデータのフォーマットがあり、それぞれのファイル形式がどのような用途に向いているかなどの特徴があります。
中でもglTF形式ファイルは、ファイルサイズも小さく、テクスチャも1ファイル内に含まれるため、Web上での3Dコンテンツ表示に最適です。

.gltfと.glbの違い

拡張子 特徴 MIMEタイプ
.gltf 三種類のファイルに出力されます。
gltf:モデル、材質等などシーンに関する情報が格納されるファイル
bin:モデルの頂点座標、法線、UVなどの数値リストが格納されるファイル
画像:png、jpegなど画像ファイル
model/gltf+json
.glb gltfの三種類のファイルを1つに全てまとめてglbファイルとして出力。 model/gltf-binary

.gltfファイルと.glbファイルは、どちらもGLTF(GL Transmission Format)形式でエクスポートされた3Dモデルを表すファイル形式です。

gltfファイルは、複数のファイルに分割されたテキスト形式で表現される3Dモデルであり、glbファイルは、1つのバイナリファイルにすべてのデータが格納された3Dモデルです。管理のしやすさから、glbを使用する場合が多いですが、glbは単一ファイルであるため中身がわかりません。一方で、glTFは複数ファイルですが、構成要素がわかります。それぞれの特徴を理解したうえで、Web上での表示や転送に関する仕様に応じて決定する必要があります。

blenderでのエクスポート方法

では本題です。
モデルの作成、書き出しにはblenderを使用します。

1.書き出したいモデルを選択


オブジェクトモードで書き出したいモデルを選択しましょう。全て選択する場合は”A”で全選択が可能です。

2.ファイル / エクスポート / glTF2.0(glb/glTF) の順で選択


3.チェック項目を入力

内容項目について

「対象」で書き出したい対象を選択します。今回はあらかじめモデルを選択したため初期値の選択したオブジェクトをチェックします。
「データ」カメラの設定を書き出したい時や、ライトの設定を書き出したい時に設定します。three.jsでライトの設定を読み込みたいので、今回はparticleライトを選択します。

エクスポートの初期設定では”選択したオブジェクト”が選択されています。可視オブジェクトやレンダリングオブジェクトを選択するか、オブジェクトを選択したうえで書き出さないとモデルを書き出せないので注意してください。

その他の項目について

メッシュやマテリアルなど様々な項目がカスタム可能です。

+Yが上 glTFの規定に沿って、+Yが上でエクスポート
モデファイアーの適用 アーマチュアを除くモディファイアをメッシュオブジェクトに適用
UV UV(テクスチャ座標)をメッシュでエクスポート
ノーマル 頂点の法線をメッシュでエクスポート
頂点カラー 頂点カラーをメッシュでエクスポート

今回はアニメーションを書き出すわけではないため、以上5つを選択します。
残りの項目は初期値で問題ありません!

それぞれの項目を詳しく知りたい方は下記のサイトを参考にしてみてください。

4.エクスポート

フォーマットで”glTFバイナリ(.glb)“を選択して、“glTF2.0をエクスポート”を選択。
エクスポート作業は以上です!

まとめ

今回はglTFの概要とblenderで作成したモデルのglTF形式ファイルの書き出し方法について書きました。次回は書き出したgltfをthree.jsを用いて、実際にウェブサイト上に読み込んでいきます!

参考サイト

NK細胞
株式会社GRIのWebデザイナー