UnityでglTFを使用する方法
3Dモデルデータを用意
今回は検証用に3Dスキャナーでスキャンしたobjデータを用意。
フォルダの中には3つのファイルがあります。
- mesh.obj (3Dモデルデータ) - mesh.mtl (マテリアルデータ) - material0_basecolor.jpg (テクスチャデータ)
Blenderの下準備
KhronosGroup製のglTF-Blender-Exporter
レポジトリをダウンロードします。
\glTF-Blender-Exporter-master\scripts\addons\io_scene_gltf2
をBlenderのアドオンディレクトリに追加します。
BlenderのアドオンディレクトリはWindowsならC:\Program Files\Blender Foundation\Blender\2.79(バージョン番号)\scripts\addons
にあります。
次にBlenderを開き、アドオンを有効にします。
File
、User Preferences
と進み、Add-ons
タブを選択後、検索窓に「gltf」と入力するとimport-Export: glTF 2.0 format
が出てくるので有効にします。
さらにEnable experimental glTF export settings
も有効にします。
Blenderにobjデータをインポート
Blenderにobjデータをインポートします。
File
、Import
、obj
と進み、先ほどのobjデータを選択します。
真っ白な状態でインポートされました。
これからShaderの設定を行います。
「glTF Metallic Roughness」シェーダーをリンクします。
File
、Link
と進み、先ほどのglTF-Blender-Exporter-master
内にあるglTF-Blender-Exporter-master\pbr_node\glTF2.blend\NodeTree\glTF Metallic Roughness
を選択します。
これで「glTF Metallic Roughness」シェーダーが使用可能になります。
シェーダーの設定の前にレンダリングエンジンをCycles Render
に変更します。
その後、MateriaのついているMeshを選択し、Materialの設定変更を行います。
Surface
からUse Nodes
をクリックしたら、「glTF Metallic Roughness」シェーダー
を選択します。
設定項目の中からBase Color
、Image Texture
と進み、テクスチャファイルを選択します。
ここまで設定しても見た目は変わりませんが、ここで3Dモデルの表示モードをTexture
に切り替えることで適切に設定されていることを確認することができます。
glTF形式で出力
最後にglTF形式での出力を行います。
File
、Export
と進み、任意のディレクトを選択します。
出力されたデータを見てみると、3つのデータから構成されていることがわかります。
- TestGLTF.gltf (glTFデータ) - TestGLTF.bin (頂点データ) - material0_basecolor.jpg (テクスチャデータ)
Blenderでの作業はこれで以上です。
UnityでglTFファイルを読み込む
Unityを開き、Asset StoreからSktechfab for Unity
をインポートします。
もしくはsketchfabのUnityGLTFレポジトリからunitypackage形式でインストールすることも可能です。
インポートに成功すると‘Sketchfab‘タブが表示されるのでImport glTF
を選択するとglTF Importer
が表示されます。
Import file from disk
をクリックし、先ほどのglTFファイルを選択後Import
ボタンをクリックすることで処理が始まります。
少し待ってシーン上に3Dモデルが表示されれば成功です。