GLBチュートリアル

このチュートリアルは、3DアセットをGLBファイルとしてエクスポートするときにアセット要件を満たす際にお役立てください。

一般的な考慮事項

  • Facebookでは、GLBファイル(バイナリ版のgITF 2.0ファイルフォーマット)をサポートしています。
  • GLBは合計3MB未満である必要があります。サイズはできる限り小さくしてください。
  • 未使用のデータはできる限り削除します。未使用の頂点色、UVなどがあるとファイルサイズを圧迫します。
  • テクスチャーにはPNGまたはJPEGファイルを使用します。
  • 透過性が必要な場合以外は、JPEGファイルを使用します。これでファイルサイズを削減できます。
  • テクスチャーは、各ディメンションで2の2乗サイズである必要があります(512x1024など)。
  • テクスチャーは最大4Kまで使用できますが、なるべく2Kを超えないようにします。
  • GLBファイルができたら、それを新しい投稿にドラッグし、背景色を選んでシェアします。
  • PBRシェーダーでは、次のテクスチャーが使えます。
    • 基本色(rgba、アルファ値は透過性が必要な場合のオプション)
    • 通常
    • 発光
    • ORM (複数のチャンネルを単一のテクスチャーにまとめたもの。赤はオクルージョンのテクスチャー、緑は粗さのテクスチャー、青は金属質のテクスチャーを持ちます)。
  • また、PBRシェーダーは、頂点色を使用します(ある場合)。

FBXからglTFへの変換

GitHubで、FBXをglTFに変換するプログラムをダウンロードできます。Mac用、Windows用、Linux用のコンパイル済みプログラムへの直接リンクはこちらです。

https://github.com/facebookincubator/FBX2glTF/releases

Windows PCの場合

ターミナルウィンドウを開き、FBX2glTFプログラムのあるフォルダーで、次のコマンドを実行します。

FBX2glTF-windows-x64.exe /path/to/fileFBX -b

これでテクスチャーを含むバイナリglTFファイル(GLBファイル)が生成され、FBX2glTFプログラムと同じフォルダーに保存されます。この手順は以下の図のとおりです。

変換するFBXファイルを見つけます。

ターミナルウィンドウを開き、-bオプションを付けて変換プログラムを実行し、GLBを作成します。

FBXファイルからGLBが生成され、FBX2gITFプログラムと同じフォルダーに保存されます。

Macの場合

まずFBX2glTF-darwin-x64をダウンロードし、ターミナルウィンドウを開いてプログラムのあるディレクトリーに移動し、プログラムをコマンドディレクトリーに移動します。

mv FBX2glTF-darwin-x64 /user/local/bin/FBX2glTF

次に、実行できるようアクセス許可を設定します。

chmod 755 /user/local/bin/FBX2glTF

変換するFBXファイルのあるディレクトリーで、次のコマンドを実行します。

FBX2glTF your-filenameFBX -b

これで同じディレクトリーに、新規GLBファイルが作成されます。

glTFをGLBに変換する

3D投稿にはGLBファイルが必要です。GLB Packerを使用すると、glTFをGLBに変換できます。

https://glb-packer.glitch.me

ウェブサイトに、gITF、.bin、使用するテクスチャーをドラッグするだけです。このウェブサイトで、3D投稿に適したGLBファイルパッケージを自動的に生成し、ダウンロードします。

アセットでPNGファイルを使用している場合、必ず[Convert PNG to JPEG]にチェックを入れます。これでGLBのサイズが大幅に小さくなり、表示時の読み込みが早くなります。

シェーダーとマテリアル

シェーディングモデルは、PBRとUnlitの2つがサポートされています。

PBR

Unlit

これは、頂点色を使用したUnlitの例です。

  1. こちらのウェブサイトで、glTFファイルを、「Unlit」を使用するファイルに変換できます。
  2. [Convert to KHR_materials_unlit]ボックスにチェックを入れます。
  3. ウェブサイトに、gITFの入ったフォルダーをドラッグします。マテリアルが「Unlit」に設定されたGLBパッケージがすぐにダウンロードされます。

Blenderと3ds Max

クロノスグループのパイプライン説明をご覧ください。また、エクスポートのフォーマットはGLBにしてください。

Maya

Mayaで完全なPBRワークフローを使用するには、Stingray素材を使用します。

FBXファイルをエクスポートして、gITFに変換します。PBR設定は保存されます。FBX2glTF変換プログラムを使うと、自動的にパッケージのテクスチャーのSwizzle値を調整できます。

Modo

Modo 11.2v3では、glTF素材とエクスポートのオプションを使用して、直接GLBファイルを作成し、エクスポートできます。GLBファイルを直接作成できるため、PBRと頂点色をフルに活用できます。

こちらのYouTube動画でプロセスを見ることができます。またこちらでは、必要なエクスポート設定があらかじめ行われたModoプロジェクトのサンプルファイルが利用できます。

Modoから直接エクスポートするには、gITF素材を使い、ビューポートを[Advanced]に設定し、テクスチャーを指定して素材を調整します。

ORMテクスチャーには、オクルージョン、粗さ、金属質がまとめられているため、適切にSwizzle値を調整する必要があります。

透過性は、基本テクスチャーのアルファチャンネルで設定します。Modo 11.2v3では、基本テクスチャーを複製して、透過量で効果を設定し、アルファチャンネルでSwizzle値を調整します。

[Export As]を使用して、すべてのテクスチャーを含んだGLBファイルを書き出します(gITFではテクスチャーを改変しません)。

3D投稿の表示は、ガンマ値が2.2になります。Modoの[Vertex Map]と[Texture]のディスプレイ設定ではガンマ値がリニアーとなっているため、Modo上での頂点色が、Facebook投稿では色あせて見えます。

Paint 3D

MicrosoftのPaint 3Dで、GLBをエクスポートできるようになりました。

Substance Painter

Substance PainterからGLBを直接エクスポートし、新しい投稿にドラッグできます。テクスチャーのサイズはできる限り小さくします。2K未満が理想的ですが、4Kを超えないようにします。

Substance Painterからエクスポートするには、[Export Textures]に移動し、

[glTF PBR Metal Roughness]オプションを選択します。これでテクスチャー、GLBファイル、gITFファイルがエクスポート用フォルダーにエクスポートされます。

3D投稿のGLBは3MB未満である必要があります。もっとも簡単なのは、PNGではなくJPEGテクスチャーを使用することです。ただし、Substance Painterではサポートしていないため、GLB Packerを使用して、glTFをGLBに変換すると、JPEGを使用する形式にできます。GLB Packer が、自動的にテクスチャーをJPEGに変換して、新しいGLBを作成します。

Sketchfab

ほとんどの3DフォーマットはSketchfabで扱えます。サイトにアップロードし、設定を調整して、glTFにエクスポートします。glTFは、GLB PackerでGLBに変換できます。

Verge3D

Verge3Dで3D投稿を作成するための、独自のチュートリアルが用意されています。