こんにちは、もしくはこんばんは。シロです!
まわすぶろぐでも紹介しているmodel-viewerはGLTFのみを公式サポートしています。
3Dモデルをあつかっていると、FBX、STL、OBJといったファイル形式を使うことはこれまでもあったかもしれませんが、GLTFというファイル形式は初めて目にするかたも多いのではないでしょうか?
そこで、今回はGLTFについて、そのほかの3Dデータフォーマットとの違いも含めて解説します。
GLTFの概要
GLTFとは、3Dモデルのフォーマットの1つであり、Web上での3Dコンテンツの共有や表示に広く使われています。
WebGLで読み込みやすいように最適化されており、WebGLを使用することで、高速かつ効率的に3Dモデルをレンダリングすることができます。
GLTFは、Khronos Groupが策定したオープンスタンダードの1つであり、JSON形式またはバイナリ形式で表現されます。
「3DにおけるJPEG」と言われることもあり、3Dモデルデータの標準規格としても今後扱われていくでしょう。
3Dモデルの軽量化や一元管理を実現するために最適化されたフォーマットであり、3Dモデル、マテリアル、テクスチャ、アニメーションなどの情報を1つのファイルにまとめることができます。
また、拡張機能の追加により、より高度な3Dエフェクトを実現することもできます。
GLTFの特徴
GLTFは、以下のような特徴を持っています。
- 軽量化されたフォーマット
- GLTFは、3Dモデルのフォーマットとして必要な情報だけを含みます。
- そのため、ファイルサイズを削減することができます。
- これにより、Web上での3Dコンテンツ表示の速度や品質が向上し、ユーザー体験を改善することができます。
- 一元管理が容易
- GLTFは、3Dモデル、マテリアル、テクスチャ、アニメーションなどの情報を1つのファイルにまとめることができます。
- これにより、管理が容易になります。
- 拡張性
- GLTFは、拡張機能を追加することができます。
- これにより、より高度な3Dエフェクトを実現することができます。
- バイナリ形式のサポート
- GLTFは、JSON形式だけでなく、バイナリ形式でも表現できます。
- バイナリ形式では、データを圧縮して保存できるため、ファイルサイズをより小さくすることができます。
GLTFとその他の3Dデータフォーマットの違い
ファイル形式 | 拡張子 | 用途 | テクスチャの取り扱い | アニメーション | ファイルサイズ |
---|---|---|---|---|---|
FBX | .fbx | 3Dモデリング・アニメーション | 外部テクスチャファイルを参照する | 複雑なアニメーションに対応可能 | 大きめ |
STL | .stl | 3Dプリンター | テクスチャ非対応 | 静止画像のみ | 小さめ |
OBJ | .obj | 3Dモデリング・3Dプリンター | 外部テクスチャファイルを参照する | 静止画像のみ | 中くらい |
GLTF | .gltf / .glb | Web上の3Dコンテンツ表示 | 1ファイル内にテクスチャを含む | 簡単なアニメーションに対応可能 | 小さめ |
以上の表から、それぞれのファイル形式が、どのような用途に向いているかが分かるかと思います。
例えば、3Dプリンターでの使用を目的とする場合は、STLファイルが適しています。
一方、Web上での3Dコンテンツ表示を行いたい場合は、GLTFファイルが適しています。
また、アニメーションを多用する場合は、FBXファイルが適しています。
.gltfと.glbの違いは?
.gltfファイルと.glbファイルは、両方ともGLTF(GL Transmission Format)形式でエクスポートされた3Dモデルを表すファイル形式ですが、いくつかの重要な違いがあります。
.gltfファイル
3Dメッシュ、マテリアル、テクスチャ、アニメーションなどの3DコンテンツのデータをJSON形式で表現します。
つまり、.gltfファイルは、テキスト形式で書かれたファイルで、バイナリデータを含みません。
このため、.gltfファイルは、複数の外部ファイル(.bin、.jpg、.pngなど)を必要とし、ファイル数が多くなることがあります。
ちなみに、Blenderでは「glTF Embedded(.gltf)」というファイル形式を選択でき、こちらは1つの.gltfファイルに外部ファイルもすべて含めて出力できます。
MIMEタイプはmodel/gltf+jsonです
.glbファイル
3Dコンテンツのデータを1つのバイナリファイルに格納することができます。
すべての3Dコンテンツのデータが単一のファイルに含まれているため、.glbファイルは、ファイル数が少なく、Web上での高速な読み込みや描画が可能です。
また、.glbファイルには、.gltfファイルには含まれないバイナリデータを含めることもできます。
これには、3Dモデルのジオメトリ、テクスチャ、シェーダーコードなどが含まれます。このため、.glbファイルは、3Dコンテンツの転送に最適な形式とされています。
MIMEタイプはmodel/gltf-binaryです
3Dデータフォーマットのサイズの違い
下の図はまわすぶろぐのマスコットキャラクター「シロ」の3Dモデルを同じ条件で出力した際のサイズの違いです。
(Blender3.3.0を使用)
.glbファイルが1MByteきっていますね!
Web上での表示に最適というのもわかります。
まとめ
この記事では、Webページに3Dコンテンルを表示するために使いやすいデータフォーマットであるGLTFについて解説しました。
glTFは、オープンで拡張性の高い3Dファイルフォーマットであり、Web上での3Dコンテンツの表現に適しています。
glTFを使用することで、高品質で軽量な3Dモデルを作成し、Web上でシームレスな3D体験を提供することができます。
また、glTFは、多くの3Dモデリングソフトウェアとエンジンでサポートされており、幅広い用途に利用することができます。Web上での3D表現に興味のある方は、glTFを使った3Dコンテンツの作成に挑戦してみることをおすすめします。
以上、「3Dコンテンツ制作の基本データフォーマットについて解説」についての紹介でした。
コメント