glTFって??
アプリで3Dシーンとモデルを効率的に伝送するためのロイヤリティフリーなフォーマット
glTF … GL Transmission Format
glTF™ (GL Transmission Format) is a royalty-free specification for the efficient transmission and loading of 3D scenes and models by applications. glTF minimizes both the size of 3D assets, and the runtime processing needed to unpack and use those assets. glTF defines an extensible, common publishing format for 3D content tools and services that streamlines authoring workflows and enables interoperable use of content across the industry. (原文: https://github.com/KhronosGroup/glTF)
glTF自体は実はHoloLensなどでも使われているフォーマットです
glTFについてもっと知りたいという方はこちらの概要マップ
次世代の3Dデータフォーマット決定版 glTF 2.0 の概要図を日本語訳してみた
こちらの入門記事が非常に参考になると思います
gltf2intro · /webgl-learning/gamedev/gltf2intro R&D Slack Wiki
glTFの中身をみる
せっかくなので実際のglTFの中身を見てみましょう
VS Code の拡張機能である glTF Tools がおすすめです。glTFのバイナリ形式であるglbを展開してくれたり、glTFを3DでPreviewする機能が備わっています。
glbを用意する
Paint3Dで適当にデータを引っ張ってきてglbで保存します。今回はms公式で配布しているビーチのシーンというモデルを使っています
VS Codeで開く
コマンドパレット(Ctr+Shift+P)を開いて、glTF「Import form GLB」を選択
.glTFで保存し直します
すると、.glTF、.binやテクスチャなどが出力されます
モデルのPreviewはVS Code上で、ALT+GでPreviewできます
glbを出力する方法はいくつかありますが、例えばMicrosoft Layoutから出力してやるとBoundsなどの情報を付加したglTFが出力されます
リソースの画像などにも違いがあるのがわかります
こちらはおなじみHologramsのカメレオン。音声情報をblobからとってきているようです。Hologramsがネット環境ないところで動作しない理由はこれですね
glTFをUnityで使う
公式でUnityサポートされています。 github.com
MRTKでもコントローラのモデルの扱いに、このUnity glTFが利用されています。ただ、最新版のglTF for UnityとMRTKのglTFは異なるので要注意です。 (MRTKのは古い)
github.com
glTFをエクスポートする
使い方は簡単でglTFのタブから出力したいモデルを選択してエクスポートするだけです。
ただし、標準のMaterialには制約があり、独自Shaderなどはうまく出力されない場合があります。
qiita.com