Blender アドオン: GLTF 2.0 インポート/エクスポート ツール

推奨事項: NSDT シーン エディター を使用して3D アプリケーション シーンを迅速に構築する

使用法

glTF™ (GL Transfer Format) は、Web およびネイティブ アプリケーションでの 3D モデルの転送と読み込みに使用されます。glTF は、3D モデルのサイズと、それらを解凍してレンダリングするために必要なランタイム処理を削減します。この形式は Web で一般的に使用されており、さまざまな3D エンジンでサポートされています。Unity3D、Unreal Engine 4、Godot など。

このインポーター/エクスポーターは、次の glTF 2.0 機能をサポートします。

  • グリッド
  • マテリアル (原則 BSDF) およびシェーディングなし (照明なし)
  • テクスチャ
  • カメラ
  • 点灯時間 (ポイント、ポイント、方向)
  • アニメーション (キーフレーム、シェイプキーフレーム、および外観)

グリッド

glTF の内部構造は、リアルタイムでレンダリングするときにグラフィックス チップで一般的に使用されるメモリ バッファーを模倣しているため、アセットをデスクトップ、Web、またはモバイル クライアントに配信し、最小限の処理で時間内に表示できます。その結果、四角形と n 角形は、glTF にエクスポートされるときに自動的に三角形に変換されます。不連続な UV と平らなシャドウ エッジは、そのような頂点が分離されているため、Blender と比較して glTF の頂点数がわずかに多くなる可能性があります。同様に、曲線やその他の非メッシュ データは保持されないため、エクスポートする前にメッシュに変換する必要があります。

材料

glTF のコア マテリアル システムは、次の情報チャネルを使用して金属/ラフ PBR ワークフローをサポートします。

  • ベースカラー
  • 金属
  • 粗さ
  • アンビエント オクルージョンのベイク処理
  • ノーマルマップ
  • 発売開始

../_images/addons_io-gltf2_material-channel.jpg

glTF 2.0 コア形式で利用可能なさまざまなイメージ マップの例。これは、さまざまなイメージ マップのスライスとともに示されているウォーター ボトルのサンプル モデルです。

輸入資材

glTF マテリアル システムは、Blender 独自のマテリアルとは異なります。glTF ファイルをインポートすると、プラグインは Blender ノードのセットを構築して、各 glTF マテリアルをできるだけ正確に複製します。

インポーターは、メタリック/ラフ PBR (コア glTF)、スペック/光沢 PBR ()、およびシェーディングなし () マテリアルをサポートしています。KHR_materials_pbrSpecularGlossinessKHR_materials_unlit

ヒント

マテリアルのインポート プロセスの結果を調べることは、glTF にエクスポートできるマテリアル ノードのタイプと設定の例を確認する良い方法です。

輸出材料

エクスポーターは、メタリック/ラフ PBR (コア glTF) およびシェーディングされていない () マテリアルをサポートしています。Blender マテリアル内で認識したノードから glTF マテリアルを構築します。マテリアルのエクスポート プロセスでは、以下で説明する設定が処理されます。KHR_materials_unlit

知らせ

マテリアルが画像テクスチャを使用する場合、glTF では画像が PNG または JPEG 形式である必要があります。プラグインは画像を他の形式に自動的に変換するため、エクスポート時間が長くなります。

ヒント

シェーディングなし (照明なし) マテリアルを作成するには、背景マテリアル タイプを使用します。

ベースカラー

glTF のベース カラーは、原則 BSDF ノードのベース カラー入力を検索することによって決定されます。入力が接続されていない場合、入力のデフォルトの色 (接続されていないソケットの隣のカラー フィールド) が glTF マテリアルのベース カラーとして使用されます。

../_images/addons_io-gltf2_material-base-color-solid green.png

ソリッドのベースカラーはノード上で直接指定できます。

画像テクスチャ ノードがベース カラー入力に接続されていることが判明した場合、その画像は glTF ベース カラーとして使用されます。

../_images/addons_io-gltf2_material-baseColor-imageHookup.png

画像は glTF のベースカラーとして使用されます。

金属と粗さ

これらの値は、原則的な BSDF ノードから読み取られます。これらの入力のどちらも接続されていない場合、ノードには 0.0 から 1.0 の間でそれぞれの値を制御するスライダーが表示され、それが glTF にコピーされます。

画像を操作する場合、glTF は、同じ画像の blue() チャネルで金属値がエンコードされ、green() チャネルで粗さがエンコードされることを期待します。この規則に従わない方法で画像が Blender ノードに接続されている場合、アドオンはエクスポート中に画像のサイズを正しい形式に変更しようとする可能性があります (エクスポート時間が増加します)。BG

Blender ノード ツリーでは、別の RGB ノードを使用してチャネルをイメージ テクスチャ ノードから分離し、green() チャネルをラフネスに接続し、blue() チャネルをメタルに接続することをお勧めします。glTF エクスポータは、この配置が glTF 標準に一致していることを認識し、エクスポート中に画像テクスチャを glTF ファイルにコピーするだけで済むようになります。GB

この時点での Image Texture ノードの Color Space はNot Color に設定されている必要があります。

../_images/addons_io-gltf2_material-金属原石.png

glTF 準拠の方法でリンクされた金属/粗さ画像。エクスポートされた glTF ファイルでそのまま使用できます。

アンビエント オクルージョンのベイク処理

glTF は、ベイクされたアンビエント オクルージョン マップを保存できます。現時点では、Blender のノード配置で glTF とまったく同じ方法でそのようなマッピングを使用するようなマッピングはありません。ただし、エクスポーターが という名前のカスタム ノード グループを見つけて、そのノード グループ上で名前を付けられた入力を探す場合、glTF でオクルージョン マップとして使用するためにそこにアタッチされているイメージ テクスチャを探します。Blender にはアンビエント オクルージョンを表示する他の方法があるため、エフェクトを Blender で表示する必要はありませんが、この方法を使用すると、エクスポーターがオクルージョン イメージを glTF に書き込むことができます。これは、リアルタイムの glTF ビューアにとって、特にレンダリング時にレンダリングされない可能性のあるものを計算するためのバックアップ電源がある場合に非常に役立ちます。glTF SettingsOcclusion

../_images/addons_io-gltf2_material-occlusion.png

レンダリングされないが glTF にエクスポートされるノードに接続された、プリベイクされたアンビエント オクルージョン マップ。

ヒント

カスタム ノード グループを作成する最も簡単な方法は、水筒や他の既存のモデルなど、オクルージョン マップを含む既存の glTF モデルをインポートすることです 。手動で作成したカスタム ノード グループを使用することもできます。

glTF はオクルージョンを red() チャネルに保存し、オプションで粗さとメタリック チャネルが同じ画像を共有できるようにします。R

../_images/addons_io-gltf2_material-orm-hookup.png

このノードの組み合わせは、glTF のオクルージョン、ラフネス、メタリック値を 1 つの画像にパッケージ化することを模倣しています。

ヒント

ループ レンダー エンジンには、アンビエント オクルージョン マップをベイク処理するために使用できるベイク パネルがあります。生成されたイメージは保存し、ノードに直接接続できます。glTF Settings

ノーマルマップ

glTF で法線マップを使用するには、イメージ テクスチャ ノードのカラー出力を法線マップ ノードのカラー入力に接続し、次に法線マップの法線出力を原則 BSDF ノードの法線入力に接続します。このためには、Image Texture ノードのColor Spaceプロパティを Not Color に設定する必要があります。

法線マップ ノードは、デフォルトの属性「接線空間」のままにしておく必要があります。これは、現在 glTF でサポートされている唯一の法線マップ タイプであるためです。ノーマルマップの強さはこのノードで調整できます。エクスポーターはこれらのノードを直接エクスポートしませんが、それらを使用して正しい画像を配置し、強度設定を glTF にコピーします。

../_images/addons_io-gltf2_material正常.png

通常のマップ イメージは、エクスポーターが検索して glTF ファイルにコピーできるように連結されます。

ヒント

ループ レンダー エンジンには、法線ベクトル ノードの他のほぼすべての配置から接線空間法線マップをベイク処理するために使用できるベイク パネルがあります。ベイクタイプをノーマルに切り替えます。このベイク処理されたパネルを glTF で使用する場合は、デフォルトのスペース設定 (スペース: タンジェント、R: +X、G: +Y、B: +Z) のままにしておきます。結果として得られるベイク イメージを保存し、上で説明したように法線マップ ノードを使用して新しいマテリアルに挿入することで、正しくエクスポートできるようになります。

参照: ループ レンダー ベイク

発売開始

Image Texture ノードは Illumination Shader ノードに接続でき、オプションで Principle BSDF ノードのプロパティを持つ Shader ノードを追加することで組み合わせることができます。

glTF エクスポータは、イルミネーション シェーダ ノードに接続されているイメージを見つけると、そのイメージを glTF マテリアルのエミッシブ テクスチャとしてエクスポートします。

../_images/addons_io-gltf2_material-self-illumination.png

ドレイン ノードは既存のノードに追加できます。

知らせ

このエクスポーターは、原則 BSDF ノードのエミッション入力をまだサポートしていません。これは将来のリリースで変更される可能性があります。

両面/裏面カリング

前面のみが表示されるマテリアルの場合は、Backface Culling  Eevee マテリアルの設定パネルを開きます。他のエンジン (サイクル、ベンチ) を使用している場合は、一時的に Eevee に切り替えてこの設定を構成し、その後再び切り替えることができます。

両面素材の場合は、このチェックボックスをオフにします。

../_images/addons_io-gltf2_material-backface-culling.png

この設定を反転すると、glTF フラグが制御されます。

ブレンドモード

基本色の入力は、オプションでアルファ値を提供できます。glTF がこれらの値をどのように処理するかは、選択したブレンド モードによって異なります。

Eevee レンダリング エンジンを選択すると、各マテリアルにブレンド モードのマテリアル設定パネルが表示されます。この設定を使用して、ベース カラー チャネルのアルファ値が glTF でどのように処理されるかを定義します。glTF は 3 つの設定をサポートしています: 不透明な文字の値は無視されます (デフォルト)。アルファ ブレンディング アルファ値を低くすると、背景オブジェクトとのブレンドが発生します。アルファ クリッピング アルファ値がクリッピングしきい値設定よりも低い場合、一部のマテリアルがまったくレンダリングされなくなります。それ以外はすべて不透明になります。

../_images/addons_io-gltf2_material-αBlend.png

Eevee エンジンを選択すると、マテリアルのブレンド モードを構成できます。

知らせ

透明度 (または アルファ ブレンディングモード) はリアルタイム エンジンのレンダリングにとって複雑であり、エクスポート後に予期しない動作をする可能性があることに注意してください。可能な場合は代わりに アルファ クリッピングモードを使用するか、アルファ ブレンドされたポリゴンの単一レイヤーの背後に 不透明なポリゴンを配置します。

UVマップ

UV マップ ノードを接続することで、UV マップの選択と変換を制御し、ノードを任意のイメージ テクスチャ ノードにマッピングできます。

Mapping ノードの設定は、glTF という glTF 拡張機能を使用してエクスポートされます。上部にはマッピング タイプ セレクターがあります。ドットは、推奨されるエクスポート タイプです。テクスチャベクターもサポートされていますサポートされているオフセットは次のとおりです。KHR_texture_transform

  • 位置 - X と Y
  • 回転 - Z 軸のみ
  • スケール - X と Y

テクスチャタイプの場合スケール X と Y は等しい (均一なスケール) 必要があります。

../_images/addons_io-gltf2_material-mapping.png

よく考えられた UV マップの選択。

ヒント

これらのノードはオプションです。すべての glTF リーダーが複数の UV マップまたはテクスチャ変換をサポートしているわけではありません。

要素

任意のイメージ テクスチャ ノードには、オプションで定数カラーまたはスカラーを乗算できます。これらは、指定された画像テクスチャを使用して乗算される数値である係数として glTF ファイルに書き込まれます。これらは一般的ではありません。

必要に応じて、単一のマテリアルで上記のマテリアルをすべて同時に使用できます。この図は、上記のオプションのいくつかを一緒に適用した場合の一般的なノード構造を示しています。

../_images/addons_io-gltf2_material-principle.png

放射テクスチャを備えた原則 BSDF マテリアル。

拡大する

コア glTF 2.0 形式は、glTF 拡張機能を使用して追加情報で拡張できます。これにより、ファイル形式は、最初に公開されたときに汎用とはみなされなかった詳細を保持できるようになります。すべての glTF リーダーがすべての拡張機能をサポートしているわけではありませんが、一部はかなり一般的です。

特定の Blender 機能は、これらの拡張機能を介してのみ glTF にエクスポートできます。このアドオンは、次の glTF 2.0 拡張機能を直接サポートしています。

輸入

  • KHR_materials_pbrSpecularGlossiness
  • KHR_lights_punctual
  • KHR_materials_unlit
  • KHR_texture_transform

出口

  • KHR_draco_mesh_compression
  • KHR_lights_punctual
  • KHR_materials_unlit
  • KHR_texture_transform

アニメーション

glTF では、エクスポート時に特定のオブジェクトをターゲットとするアニメーションを使用して、ファイルごとに複数のアニメーションを使用できます。アニメーションが確実に含まれるようにするには、(a) オブジェクトに対するアクティブな操作にするか、(b) 単一のストリップ NLA トラックを作成するか、(c) 操作を非表示にします。

サポート

特定の種類のアニメーションのみがサポートされています。

  • キーフレーム (移動、回転、スケーリング)
  • シェイプキー
  • アーマチュア/スキン

ライトやマテリアルなどの他のプロパティのアニメーションは無視されます。

カスタム属性

ほとんどのオブジェクトのカスタム プロパティは glTF エクスポート/インポートで保存され、ユーザー固有の目的に使用できます。

元のリンク: Blender プラグイン: GLTF 2.0 インポート/エクスポート ツール (mvrlink.com)

おすすめ

転載: blog.csdn.net/ygtu2018/article/details/132646492