デコシノニッキ

ホロレンジャーの戦いの記録

glTFに触れてみる

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などでも使われているフォーマットです
f:id:haikage1755:20180702114946p:plain:w350

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する機能が備わっています。

f:id:haikage1755:20180702115341p:plain:w350

marketplace.visualstudio.com

glbを用意する

Paint3Dで適当にデータを引っ張ってきてglbで保存します。今回はms公式で配布しているビーチのシーンというモデルを使っています
f:id:haikage1755:20180702115610p:plain:w250
f:id:haikage1755:20180702115917p:plain:w250

VS Codeで開く

コマンドパレット(Ctr+Shift+P)を開いて、glTF「Import form GLB」を選択
f:id:haikage1755:20180702115947p:plain:w250

.glTFで保存し直します
f:id:haikage1755:20180702120018p:plain:w250

すると、.glTF、.binやテクスチャなどが出力されます
f:id:haikage1755:20180702120101p:plain:w250

モデルのPreviewVS Code上で、ALT+GでPreviewできます
f:id:haikage1755:20180702120226p:plain:w250

glbを出力する方法はいくつかありますが、例えばMicrosoft Layoutから出力してやるとBoundsなどの情報を付加したglTFが出力されます
f:id:haikage1755:20180702120355p:plain:w250

リソースの画像などにも違いがあるのがわかります
f:id:haikage1755:20180702120508p:plain:w250

こちらはおなじみHologramsのカメレオン。音声情報をblobからとってきているようです。Hologramsがネット環境ないところで動作しない理由はこれですね
f:id:haikage1755:20180702120607p:plain:w250
f:id:haikage1755:20180702120618p:plain:w250

glTFをUnityで使う

公式でUnityサポートされています。 github.com

MRTKでもコントローラのモデルの扱いに、このUnity glTFが利用されています。ただ、最新版のglTF for UnityとMRTKのglTFは異なるので要注意です。 (MRTKのは古い)
github.com

glTFをエクスポートする

使い方は簡単でglTFのタブから出力したいモデルを選択してエクスポートするだけです。
f:id:haikage1755:20180702121432p:plain

ただし、標準のMaterialには制約があり、独自Shaderなどはうまく出力されない場合があります。
qiita.com

[デコシノニッキ]は、Amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、Amazonアソシエイト・プログラムの参加者です。」