UnityでglTFを使用する方法

f:id:gounsx:20180601192631p:plain

3Dモデルデータを用意

今回は検証用に3Dスキャナーでスキャンしたobjデータを用意。
フォルダの中には3つのファイルがあります。

- mesh.obj (3Dモデルデータ)
- mesh.mtl (マテリアルデータ)
- material0_basecolor.jpg (テクスチャデータ)

f:id:gounsx:20180601192816p:plain

Blenderの下準備

KhronosGroup製のglTF-Blender-Exporterレポジトリをダウンロードします。

github.com

\glTF-Blender-Exporter-master\scripts\addons\io_scene_gltf2Blenderアドオンディレクトに追加します。

BlenderのアドオンディレクトリはWindowsならC:\Program Files\Blender Foundation\Blender\2.79(バージョン番号)\scripts\addonsにあります。

次にBlenderを開き、アドオンを有効にします。
FileUser Preferencesと進み、Add-onsタブを選択後、検索窓に「gltf」と入力するとimport-Export: glTF 2.0 formatが出てくるので有効にします。
さらにEnable experimental glTF export settingsも有効にします。

f:id:gounsx:20180601194427p:plain f:id:gounsx:20180601194543p:plain

Blenderにobjデータをインポート

Blenderにobjデータをインポートします。

FileImportobjと進み、先ほどのobjデータを選択します。
真っ白な状態でインポートされました。
これからShaderの設定を行います。
f:id:gounsx:20180601195005p:plain

「glTF Metallic Roughness」シェーダーをリンクします。

FileLinkと進み、先ほどのglTF-Blender-Exporter-master内にあるglTF-Blender-Exporter-master\pbr_node\glTF2.blend\NodeTree\glTF Metallic Roughnessを選択します。

f:id:gounsx:20180601195730p:plain

これで「glTF Metallic Roughness」シェーダーが使用可能になります。

シェーダーの設定の前にレンダリングエンジンをCycles Renderに変更します。

f:id:gounsx:20180601200138p:plain

その後、MateriaのついているMeshを選択し、Materialの設定変更を行います。

f:id:gounsx:20180601200406p:plain

SurfaceからUse Nodesをクリックしたら、「glTF Metallic Roughness」シェーダーを選択します。

f:id:gounsx:20180601200719p:plain f:id:gounsx:20180601200733p:plain

設定項目の中からBase ColorImage Textureと進み、テクスチャファイルを選択します。

ここまで設定しても見た目は変わりませんが、ここで3Dモデルの表示モードをTextureに切り替えることで適切に設定されていることを確認することができます。

f:id:gounsx:20180601201046p:plain

glTF形式で出力

最後にglTF形式での出力を行います。
FileExportと進み、任意のディレクトを選択します。

f:id:gounsx:20180601203912p:plain

出力されたデータを見てみると、3つのデータから構成されていることがわかります。

- TestGLTF.gltf (glTFデータ)
- TestGLTF.bin (頂点データ)
- material0_basecolor.jpg (テクスチャデータ)

f:id:gounsx:20180601201631p:plain

Blenderでの作業はこれで以上です。

UnityでglTFファイルを読み込む

Unityを開き、Asset StoreからSktechfab for Unityをインポートします。

f:id:gounsx:20180601202144p:plain

もしくはsketchfabのUnityGLTFレポジトリからunitypackage形式でインストールすることも可能です。

github.com

インポートに成功すると‘Sketchfab‘タブが表示されるのでImport glTFを選択するとglTF Importerが表示されます。

Import file from diskをクリックし、先ほどのglTFファイルを選択後Importボタンをクリックすることで処理が始まります。

f:id:gounsx:20180601202951p:plain

少し待ってシーン上に3Dモデルが表示されれば成功です。

f:id:gounsx:20180601203231p:plain