search
  1. ソフト・サービス
  2. Blender
  3. Blenderのインポートとエクスポート
  4. BlenderのglTFのエクスポートとインポート|書き出しと読み込みの設定

Blender

BlenderのglTFのエクスポートとインポート|書き出しと読み込みの設定

編集部 読了 約28分

glTF(ジーエルティーエフ、GL Transmission Format)は、3Dのモデルを、Webのページや3Dのエンジンで開くための形式です。3Dのエンジンは、Unity・Unreal Engine・Godotなどです。BlenderのglTFの書き出しの設定は、一番上の「フォーマット」と、その下の4つのまとまりに分かれています。まとまりは、「内容」「トランスフォーム」「データ」「アニメーション」です。読み込みの設定は、「メッシュ」「テクスチャ」「ボーンとスキン」「パイプライン」の4つのまとまりです。

この記事の画面は、Blender(ブレンダー)5.2 LTSです。設定の中身は、5.2の公式マニュアル、画面に出る設定の説明文、glTFのアドオンのコードで確かめました。受け取る側のソフト(Webのビューアー・Unityなど)で開いた結果は、編集部では試していません。

glTFは、Webや3Dのエンジンで開くための形式で、面は三角形になって書き出される

5.2の公式マニュアルによると、glTFは、Webやアプリで3Dのモデルを送って読み込むための形式です。モデルのファイルを小さくし、開くときの処理を少なくします。Unity・Unreal Engine・Godotなどが、glTFに対応しています。

公式マニュアルに載っている、BlenderのglTFの書き出しと読み込みが扱えるものは次のとおりです。

  • メッシュ
  • マテリアル(プリンシプルBSDF。新しく作ったマテリアルに最初から入っている、質感を決めるノード)と、光の当たり方で明るさが変わらないシェーディングなし(Unlit)
  • テクスチャ
  • カメラ
  • ライト(ポイント・スポット・サン)
  • 拡張(エクステンション。glTFの基本の決まりに足された機能で、KHR_やEXT_で始まる名前が付いている。読み込むソフトが全部に対応しているとは限らない)
  • カスタムプロパティ
  • アニメーション(キーフレーム・シェイプキー(形の変化)・スキニング(骨で動かすモデル))

glTFの中身は、リアルタイムの表示に向けた形になっています。そのため、四角形や多角形の面は、書き出すときに三角形に変わります。公式マニュアルによると、UVの切れ目やフラットシェーディングの辺では頂点が分かれるので、頂点の数がBlenderより多くなることがあります。カーブなどのメッシュでないデータは残らないので、書き出す前にメッシュに変えます。

2m×4m×1mの箱を書き出すと、12枚の三角形の面になりました。3Dの文字は三角形の面で書き出されました。カーブのオブジェクトのベジエの円は、glTFの中で、形の無い、位置・回転・スケールだけの要素(ノード)になりました。

書き出しは、「ファイル」→「エクスポート」→「glTF 2.0 (.glb/.gltf)」から選びます。

「ファイル」→「エクスポート」のメニューの「glTF 2.0 (.glb/.gltf)」
「ファイル」→「エクスポート」のメニュー。赤枠が「glTF 2.0 (.glb/.gltf)」(Blender 5.2)

読み込みは、「ファイル」→「インポート」→「glTF 2.0 (.glb/.gltf)」から選びます。

「ファイル」→「インポート」のメニューの「glTF 2.0 (.glb/.gltf)」
「ファイル」→「インポート」のメニュー。赤枠が「glTF 2.0 (.glb/.gltf)」(Blender 5.2)

公式マニュアルによると、glTFのアドオンは最初から有効です。無効のときは、プリファレンスの「アドオン」で「glTF 2.0」を探して有効にします。

一番上の「フォーマット」で、1つの.glbにするか、.gltfと.binと画像に分けるかを決める

書き出しの画面の右の「オペレータープリセット」の下に、「フォーマット」「コピーライト(C)」「エクスポート設定を維持」が並びます。その下が「内容」と「トランスフォーム」です。

glTFの書き出しの「フォーマット」「内容」「トランスフォーム」
glTFの書き出しの画面の右の上の部分(既定の値。右の欄の幅を広げて撮った)

「フォーマット」の選択肢は、次の3つです。

選択肢書き出すファイル中身(公式マニュアル)
glTF バイナリ (.glb).glbの1つ形・画像・その他をまとめて、1つのバイナリのファイルに入れる。ほかの人やサービスに渡しやすい
glTF セパレート (.gltf+.bin+テクスチャ).gltf・.bin・画像全体の構成をテキストの.gltfに、形のデータを.binに、画像を別のファイルに書く。書き出したあとで中身や画像を直しやすい。渡すときは、全部のファイルをまとめて渡す
glTF エンベッド (.gltf).gltfの1つ形と画像を、テキストの.gltfの中に入れる。もっとも効率が悪く、テキストしか送れないときのための形。アドオンの設定で有効にしたときだけ選べる

画像テクスチャを貼った立方体で試すと、既定の「glTF バイナリ (.glb)」では、ファイルは.glbの1つで、画像も.glbの中にあります。「glTF セパレート」では、.gltf・.bin・画像(.png)の3つのファイルになりました。

設定既定中身
オリジナルを保持オフ「glTF セパレート」のときだけ出る。できるときは、元の画像のファイルをそのまま使う。画面の説明によると、PBRの決まりが1枚しか使わない所に2枚以上の画像を使っていると、1枚しか使われない
テクスチャ(空)「glTF セパレート」で「オリジナルを保持」がオフのときだけ出る。画像を入れるフォルダー(.gltfからの相対)
コピーライト(C)(空)モデルの権利と条件を書き入れる
エクスポート設定を維持オフ書き出しの設定を.blendのファイルに残し、次に開いたときに呼び出す

「内容」で書き出すオブジェクトとデータを、「トランスフォーム」で上の向きを決める

「内容」の「対象」がどれもオフのときは、.blendの全部のシーンのオブジェクトを、隠しているものも含めて書き出します。作業用に隠したオブジェクトと、別のシーンのオブジェクトも書き出されることを、実機で確かめました。「内容」の中の「データ」は、下の「データ」のまとまりとは別の欄です。

まとまり設定既定中身
対象選択したオブジェクトオフ選択したオブジェクトだけを書き出す
対象可視オブジェクトオフ表示しているオブジェクトだけを書き出す(オンにすると、隠したオブジェクトは書き出されなかった)
対象レンダリング可能なオブジェクトオフレンダリングするオブジェクトだけを書き出す
対象アクティブコレクションオフアクティブなコレクションのオブジェクトだけを書き出す
対象入れ子のインスタンスも含むオン「アクティブコレクション」がオンのときだけ出る。中に入れたコレクションのオブジェクトも書き出す
対象アクティブシーンオフアクティブなシーンだけを書き出す(オンにすると、別のシーンは書き出されなかった)
データカスタムプロパティオフカスタムプロパティを、glTFのextras(glTFの中のカスタムプロパティ)として書き出す
データカメラ設定オフカメラを書き出す
データPunctualライトオフポイント・スポット・サンのライトを書き出す(KHR_lights_punctualの拡張)
トランスフォーム+Yが上オンglTFの決まりに合わせ、上を+Yにして書き出す

「カメラ設定」と「Punctualライト」は、既定ではオフです。オフのまま書き出すと、カメラとライトは書き出されませんでした。オンにすると、カメラ、ポイント・スポット・サンのライトが書き出されました。エリアライトは、オンにしても書き出されませんでした。公式マニュアルによると、エリアライトとワールドの照明は、glTFが対応していないので無視されます。

公式マニュアルによると、glTFの書き出しは、コレクションの書き出し(コレクションのプロパティから書き出す)にも使えます。そのときは、「内容」の「対象」と「エクスポート設定を維持」が出ません。代わりに、コレクションのルートのオブジェクトの重心を中心にして書き出す設定(コレクションの中心をエクスポート)が加わります。コレクションのカスタムプロパティは、シーンのextrasとして書き出されます。

「データ」の「シーングラフ」と「メッシュ」で、階層と形の中身を決める

「データ」の中は、いくつかの欄に分かれます。上から「シーングラフ」「メッシュ」「マテリアル」「シェイプキー」「アーマチュア」「スキニング」「照明」「Draco圧縮」「Meshoptメッシュ圧縮」です。最初の「シーングラフ」と「メッシュ」は次のとおりです。

glTFの書き出しの「シーングラフ」と「メッシュ」
「データ」の中の「シーングラフ」と「メッシュ」(既定の値)
まとまり設定既定中身
シーングラフジオメトリノードインスタンス(実験的)オフジオメトリノードのインスタンスを書き出す。実験的な機能
シーングラフGPUインスタンスオフ同じメッシュを使うオブジェクトを、EXT_mesh_gpu_instancingの拡張で書き出す
シーングラフオブジェクト階層を平坦化オフオブジェクトの親子をなくして書き出す。位置・回転・スケールに分けられない変形があるときに使う。スキンのメッシュだけはアーマチュアの子のまま
シーングラフフルコレクション階層オフコレクションを空のオブジェクトとして書き出し、階層を残す。複数のコレクションに入ったオブジェクトは、最初に見つかったコレクションに1回だけ書き出す
メッシュモディファイアーを適用オフモディファイアーを計算したあとの形で書き出す(アーマチュアを除く)。画面の説明によると、オンではシェイプキーを書き出せない
メッシュUVオンUVを書き出す
メッシュノーマルオン頂点の法線を書き出す
メッシュタンジェントオフ頂点のタンジェントを書き出す。「ノーマル」がオフのときは効かない
メッシュ属性オフ名前が「_」で始まる属性を書き出す
メッシュ孤立する辺オフ面につながっていない辺を、線として書き出す(1つ目のマテリアルスロットのマテリアルを使う)
メッシュ孤立ポイントオフ辺につながっていない頂点を、点として書き出す(1つ目のマテリアルスロットのマテリアルを使う)
メッシュ共有アクセサオフ三角形の番号のデータを共有する(公式マニュアル。画面の説明は「属性に共有アクセサを使用」)。マテリアルが多いときにファイルが小さくなる

公式マニュアルによると、「GPUインスタンス」でインスタンスにできるのは、子を持たないメッシュで、全部が同じオブジェクトの子になっているものです。マテリアルの違いは扱えません。EXT_mesh_gpu_instancingのインスタンスは、読み込むと、同じメッシュのデータを使うオブジェクトになります。

「頂点カラー」と「マテリアル」で、色と画像の書き出し方を決める

「頂点カラー」は「メッシュ」の中の欄で、既定では、マテリアルでベースカラーに掛けている頂点カラーだけを書き出します。「マテリアル」はその下です。

glTFの書き出しの「頂点カラー」と「マテリアル」
「頂点カラー」「マテリアル」「未使用テクスチャと画像」(既定の値)
まとまり設定既定中身
頂点カラー頂点カラーを使用マテリアル頂点カラーの書き出し方。「マテリアル」=マテリアルでベースカラーに掛けて使っているときに書き出す(公式マニュアルによると、glTFの決まりにもっとも合う)/「アクティブ」=アクティブな頂点カラーを書き出す/「名前」=決めた名前の頂点カラーを書き出す(頂点カラー名の欄が出る)/「なし」=書き出さない
頂点カラー全頂点カラーをエクスポートオンマテリアルで使っていない頂点カラーも全部書き出す(2つ目からはCOLOR_1、COLOR_2…)。「頂点カラーを使用」が「なし」のときは効かない
頂点カラーマテリアルがない時アクティブ頂点カラーをエクスポートオンマテリアルの無いオブジェクトで、アクティブな頂点カラーを書き出す。「頂点カラーを使用」が「なし」のときは効かない
マテリアルマテリアルエクスポート「エクスポート」=ノードの中身と画像を全部書き出す/「場所の確保」=中身を書き出さず、マテリアルスロットの分かれ方だけを残す/「ビューポート」=ビューポート表示のベースカラー・粗さ・メタリックだけを書き出す/「エクスポートなし」=書き出さず、スロットの分かれ方も失われる
マテリアル画像自動画像の形式。「自動」=PNGはPNG、JPEGはJPEG、WebPはWebPで、ほかはPNGで保存/「JPEGフォーマット(.jpg)」=JPEGで保存(アルファが要る画像はPNG)/「WebPフォーマット」=WebPで保存(PNGの代わりは作らない)/「なし」=画像を書き出さない
マテリアル画質75JPEGとWebPで書き出すときの品質。「画像」が「なし」のときは出ない
マテリアルWebPを作成オフどの画像にも、WebPの画像を加えて作る。「画像」が「WebPフォーマット」のとき、「マテリアル」が「エクスポート」以外のときは効かない
マテリアルWebPの代替オフWebPの画像に、代わりのPNGを作る。効かない条件は「WebPを作成」と同じ
未使用テクスチャと画像未使用画像オフどのマテリアルにも使っていない画像も書き出す。この欄は「マテリアル」が「エクスポート」以外のときは効かない
未使用テクスチャと画像未使用テクスチャを維持オフどのマテリアルにも使っていない画像テクスチャのノードも書き出す。画面の説明によると、glTFの決まりの外の機能

PNGの画像を貼った立方体を、「画像」を「JPEGフォーマット(.jpg)」にして書き出すと、.glbの中の画像はJPEGになりました。「なし」では、画像は書き出されませんでした。公式マニュアルによると、glTFの画像はPNGかJPEGで、ほかの形式の画像は書き出すときに変換されます(その分、書き出しに時間がかかる。「画像」でWebPを選んだときを除く)。PNGは画質が落ちず、JPEGはファイルが小さくWebに向きます。

マテリアルは、プリンシプルBSDFにつないだものから書き出される

公式マニュアルによると、glTFのマテリアルは、Blenderのマテリアルと仕組みが違います。glTFの基本のマテリアルは、ベースカラー・メタリック・粗さなどの値で質感を決める仕組み(metal/roughのPBR)です。書き出すときは、プリンシプルBSDFのノードとそこにつないだノードを読み取り、glTFのマテリアルを作ります。読み込むときは、glTFのマテリアルにできるだけ近いノードを組みます。読み込みは、スペキュラー・グロッシネスのPBR(KHR_materials_pbrSpecularGlossiness)にも対応します。

表に出てくる「glTF Material Output」は、シェーダーエディターの「追加」→「出力」から足せるノードグループです。足すには、アドオンの設定で「シェーダーエディターアドオン」を有効にします。

中身Blenderでのつなぎ方(公式マニュアル)
ベースカラープリンシプルBSDFの「ベースカラー」。画像テクスチャをつなげば、その画像。つながないときは、ノードの色
メタリックと粗さプリンシプルBSDFの「メタリック」と「粗さ」。画像を使うときは、1枚の画像の青(B)をメタリック、緑(G)を粗さにする。「カラー分離」で分けてつなぎ、画像テクスチャの色空間は「非カラー」にする
アンビエントオクルージョン「glTF Material Output」のノードグループの「Occlusion」につないだ画像。赤(R)に書く
法線マップ画像テクスチャ→「ノーマルマップ」(「タンジェント空間」のまま)→プリンシプルBSDFの「ノーマル」。色空間は「非カラー」。強さも書き出される
放射プリンシプルBSDFの「放射色」につないだ画像(「放射」シェーダーを「シェーダー加算」で足す組み方も読まれる)。放射の値のどれかが1を超えると、KHR_materials_emissive_strengthの拡張を使う
クリアコートプリンシプルBSDFの「コートウェイト」が0でないか画像をつないだとき(KHR_materials_clearcoat)。画像は、コートを赤(R)、コートの粗さを緑(G)に書く
シーン(Sheen。布などの光沢)「シーン粗さ」につないだ画像は、アルファ(A)に書く
スペキュラー「スペキュラーIORレベル」か「Specular Tint」が既定の値でないか画像をつないだとき(KHR_materials_specular)
異方性読み込むときに作られるノードの組み方で書き出す。「異方性」「異方性の回転」には、グレースケールの画像もつなげる。タンジェントは、ノーマルマップと同じUVマップを使う
伝播(Transmission)プリンシプルBSDFの「伝播ウェイト」が0でないか画像をつないだとき(KHR_materials_transmission)。ガラスのように、中身が詰まっていて光が透けるもの向け
IOR伝播・ボリューム・スペキュラーの拡張を使うときだけ書き出す。1.5(glTFの既定)は書き出さない
ボリューム「ボリューム吸収」のノードを出力の「ボリューム」につなぐ(KHR_materials_volume)。伝播も要る。厚みは「glTF Material Output」の「Thickness」(画像なら緑(G))
分散・虹彩「glTF Material Output」のノードグループと、プリンシプルBSDFの「薄膜の厚さ」「薄膜のIOR」を使う。分散は、ボリュームの拡張も使うときだけ書き出す
両面マテリアルの設定の「裏面を非表示」がオフなら両面、オンなら片面。この欄はレンダーエンジンがEEVEEのときに出るので、Cyclesのときは一時的にEEVEEに切り替えて設定する
アルファ「アルファ」につないだノードから、不透明・マスク(0か1)・ブレンドの3つを自動で決める
UVの選び方と移動「UVマップ」と「マッピング」のノード(KHR_texture_transform)。マッピングの位置はXとY、回転はZ、スケールはXとY
係数画像に「数式」(乗算)や「ミックス」(乗算)で掛けた値
UDIMglTFは対応しないので、タイルごとの画像に分けて書き出す。UDIMの画像は全部、同じUVマップを使う
シェーディングなし(Unlit)プリンシプルBSDFを使わず、「ライトパス」の「カメラレイ」で混ぜる組み方(KHR_materials_unlit)
バリアントマテリアルの切り替え(KHR_materials_variants)。アドオンの設定でUIを有効にし、3Dビューの「glTF Variants」のタブで作る

プリンシプルBSDFの「伝播ウェイト」を1にしたガラスの板を書き出すと、KHR_materials_transmissionの拡張が使われました。公式マニュアルによると、伝播はリアルタイムの表示では扱いが難しく、この拡張に対応するソフトはまだ多くありません。

「シェイプキー」「アーマチュア」「スキニング」は、形の変化と骨のための設定

「シェイプキー」は形の変化(モーフ)を、「アーマチュア」と「スキニング」は骨で動かすモデルを書き出す設定です。「アーマチュア」の設定は、「スキニング」がオンのときだけ効きます(アドオンのコード)。

glTFの書き出しの「シェイプキー」と「アーマチュア」
「シェイプキー」「シェイプキーを最適化」「アーマチュア」(既定の値)
まとまり設定既定中身
シェイプキー(見出しのチェック)オンシェイプキー(モーフターゲット)を書き出す
シェイプキーシェイプキーの法線オンシェイプキーと一緒に、頂点の法線を書き出す
シェイプキーシェイプキーのタンジェントオフシェイプキーと一緒に、頂点のタンジェントを書き出す
シェイプキーを最適化可能ならスパースアクセサを使用オンファイルが小さくなるときは、スパースアクセサ(違う所だけを書く形)を使う
シェイプキーを最適化空データ時にスパースアクセサをオミットオフデータが空のときは、スパースアクセサを書かない。公式マニュアルによると、正しく扱えないビューアーがあるので既定はオフ
アーマチュアレスト位置を使用オンアーマチュアのレスト位置を、関節の静止のポーズにする。オフでは、今のフレームのポーズを使う
アーマチュア変形ボーンのみオフ変形のボーンだけを書き出す。変形のボーンのアニメーションはベイクされる。「アニメーションサンプリング」がオフのときは効かない
アーマチュアアーマチュアオブジェクトを削除オフできるときは、アーマチュアのオブジェクトをなくす(ルートのボーンが複数あるときはなくせない)
アーマチュアボーン階層を平坦化オフボーンの親子をなくす。位置・回転・スケールに分けられない変形があるときに使う
アーマチュアリーフボーン追加オフ各ボーンの列の最後にボーンを足し、前のボーンの長さが分かるようにする。書き出したアーマチュアを編集するときに使う

「スキニング」は、「アーマチュア」の下に並びます。

glTFの書き出しの「スキニング」
「スキニング」(既定の値)
まとまり設定既定中身
スキニング(見出しのチェック)オンスキニング(アーマチュア)のデータを書き出す
スキニングボーンの影響数41つの頂点に影響するボーンの数。「全ボーンの影響を含む」がオンのときは効かない。公式マニュアルによると、4と8のほかでは、多くのビューアーで正しく表示されないことがある
スキニング全ボーンの影響を含むオフ頂点に影響するボーンを全部書き出す。多くのビューアーで正しく表示されないことがある

「照明」はライトの明るさの単位、「Draco圧縮」と「Meshoptメッシュ圧縮」はメッシュの圧縮の設定

「照明」「Draco圧縮」「Meshoptメッシュ圧縮」は、「スキニング」の下に並びます。

glTFの書き出しの「照明」「Draco圧縮」「Meshoptメッシュ圧縮」
「照明」「Draco圧縮」「Meshoptメッシュ圧縮」(既定の値。薄い設定は、見出しのチェックがオフのため効かない)

「照明」の「照明モード」は、ライトの明るさの書き方です。既定の「標準」では、物理にもとづくglTFの単位(cd・lx・nt)で書きます。「単位なし」は、物理にもとづかない単位の無い明るさで、露出を変えられないときに使います。「Raw(廃止予定)」は、Blenderの明るさを変換せずに書きます。

公式マニュアルによると、ライトの色は、ライトの「カラー」と、ライトのノードの「放射」の色を掛けたものです。サンの強さは、ライトの「強さ」で決まります。ポイントとスポットの強さは、「光の減衰」のノードの「強さ」からも決まります。EEVEEのときは、ノードを使わず、ライトの「カラー」と「強さ」だけを使います。

まとまり設定既定中身
Draco圧縮(見出しのチェック)オフGoogleのDracoでメッシュを圧縮する(KHR_draco_mesh_compression)
Draco圧縮圧縮レベル60がもっとも速く、6がもっとも小さい。7以上は今は使えない。高いほど、書き出しと読み込みに時間がかかる
Draco圧縮クォンタイズ位置14位置の値の量子化のビット数(0で量子化しない)
Draco圧縮ノーマル10法線の値の量子化のビット数
Draco圧縮テクスチャ座標12UVの値の量子化のビット数
Draco圧縮カラー10色の値の量子化のビット数
Draco圧縮汎用12ウェイトや関節などの値の量子化のビット数
Meshoptメッシュ圧縮(見出しのチェック)オフMeshoptimizerでメッシュを圧縮する
Meshoptメッシュ圧縮MeshoptエクステンションEXT_meshopt_compression使う拡張。EXT_meshopt_compressionかKHR_meshopt_compression

「Draco圧縮」をオンにして書き出すと、KHR_draco_mesh_compressionの拡張が使われました。公式マニュアルによると、読み込むソフトが、glTFの拡張の全部に対応しているとは限りません。

アドオンのコードによると、「Draco圧縮」と「Meshoptメッシュ圧縮」の欄は、それぞれのライブラリが使えるときだけ出ます。アドオンの設定にgltfpackの場所を入れたときだけ、「gltfpack」の欄が出ます。メッシュの単純化やテクスチャの圧縮を、gltfpackで行う設定です。

「アニメーション」で、動きの書き出し方を決める

「アニメーション」は、見出しのチェックが既定でオンです。中には、上から「アニメーションモード」「ベイクと統合」「静止と範囲」が並びます。

glTFの書き出しの「アニメーション」の上の部分
「アニメーション」「ベイクと統合」「静止と範囲」(既定の値)

公式マニュアルによると、glTFのアニメーションが書き出すのは、オブジェクトの位置・回転・スケール、ポーズのボーン、シェイプキーの値だけです。物理・ライト・マテリアルなどの動きは書き出されません。

Blenderのアクション(アニメーションのまとまり)を、glTFのアニメーションにどう分けるかを「アニメーションモード」で決めます。選択肢は、次の5つです。

選択肢中身(画面の説明・公式マニュアル)
アクション(既定)オブジェクトのアクティブなアクションと、NLAトラックに入れたアクションを、それぞれ別のアニメーションにする。どちらでもないアクションは書き出されない
アクティブアクションを統合今割り当てているアクションを全部、1つのアニメーションにする(「アニメーション名を統合」の欄が出る)
アクションを配信合うアクションを、全部のオブジェクトに配る
NLAトラックNLAのトラックごとに、別のアニメーションにする
シーンビューポートで見えるとおりに、ベイクしたアニメーションにする(「アニメーションをオブジェクトで分離」の欄が出る)

サンプリングは、決めたフレームごとに値を読んでキーフレームにすることです。公式マニュアルによると、サンプリングしないアニメーションを扱えるのは、「アクション」と「アクティブアクションを統合」のモードだけです。

まとまり設定既定中身
ベイクと統合全オブジェクトアニメをベイクオフ全部のオブジェクトのアニメーションを書き出す。コンストレイントやドライバーで動くとき、選択したものだけを書き出すときに使う。サンプリングがオンで、モードが「アクション」か「アクティブアクションを統合」のときだけ効く
ベイクと統合アニメーションを統合アクション「アクション」=同じアクションを使うアニメーションを1つにまとめる/「NLAトラック名」=同じNLAトラック名のアニメーションを1つにまとめる/「統合なし」=全部を別々にする。サンプリングがオンで、モードが「アクション」のときだけ効く
静止と範囲現在のフレームを静止状態に使用オフ今のフレームの状態で書き出す。オフでは、フレーム0をオブジェクトの静止の状態にする
静止と範囲再生範囲に限定オフアニメーションを、再生の範囲で切る。モードが「シーン」のときは効かない
静止と範囲全glTFアニメーションを0から開始オフ全部のアニメーションの始まりを0秒にする。ループのアニメーションに使う
静止と範囲負のフレームスライドマイナスのフレームがあるとき、「スライド」=フレーム0で始まるようにずらす/「クロップ」=0より後だけを残す

「静止と範囲」の下に、「アーマチュア」「シェイプキーアニメーション」「アニメーションサンプリング」「アニメーションポインター(実験的)」が並びます。

glTFの書き出しの「アニメーション」の中の部分
「アーマチュア」「シェイプキーアニメーション」「アニメーションサンプリング」「アニメーションポインター(実験的)」(既定の値。薄い設定は、今のモードでは効かない)
まとまり設定既定中身
アーマチュア全アクションをエクスポートオン全部のアクションを書き出し、1つのアーマチュアに結び付ける。複数のアーマチュアには対応しない。モードが「アクション」のときだけ効く
アーマチュアアクション間でポーズボーンをリセットオンアクションの間で、ポーズのボーンを戻す。キーの無いボーンがあるときに要る
シェイプキーアニメーション(見出しのチェック)オンシェイプキーのアニメーションを書き出す。「シェイプキー」の書き出しが要る
シェイプキーアニメーションアクション間でシェイプキーをリセットオンアクションの間で、シェイプキーを戻す
アニメーションサンプリング(見出しのチェック)オン全部のアニメーションをサンプリングする。公式マニュアルによると、サンプリングしないと正しく書き出されないことがある
アニメーションサンプリングサンプリングレート1何フレームごとに値を読むか
アニメーションサンプリングサンプリング補間フォールバックリニアキーの無いプロパティの補間。「リニア」か「ステップ」
アニメーションポインター(実験的)(見出しのチェック)オフマテリアル・ライト・カメラのアニメーションを、アニメーションポインターで書き出す。モードが「NLAトラック」か「シーン」のときだけ使える
アニメーションポインター(実験的)TRS/ウェイトをアニメーションポインターに変換オフ位置・回転・スケールとウェイトも、KHR_animation_pointerで書き出す

その下に、「アニメーションを最適化」「追加アニメーション」「アクションの絞り込み」が並びます。

glTFの書き出しの「アニメーション」の下の部分
「アニメーションを最適化」「追加アニメーション」「アクションの絞り込み」(既定の値)
まとまり設定既定中身
アニメーションを最適化サイズを最適化オン同じ値の続くキーフレームを消して、ファイルを小さくする
アニメーションを最適化ボーンのチャンネルを強制維持オンリグのキーフレームが全部同じでも、最小のアニメーションを残す
アニメーションを最適化オブジェクトのチャンネルを強制維持オフオブジェクトの位置・回転・スケールのキーフレームが全部同じでも、最小のアニメーションを残す
アニメーションを最適化他のオブジェクトのビュー表示無効オフ書き出しを速くするため、ほかのオブジェクトのビューポートの表示を切る
追加アニメーション追加アニメーションを準備オフ追加のアニメーションを書き出す。モードが「アクション」か「アクティブアクションを統合」のときだけ出る。glTFの決まりの外の機能
アクションの絞り込み(見出しのチェック)オフ書き出すアクションを、選んだものに絞る

公式マニュアルによると、読み込むと、ファイルの最初のアニメーションが再生できる状態になります。ほかのアニメーションは、アクションとしてNLAのトラックに入ります。アドオンの設定でアニメーションのUIを有効にすると、ドープシートで、読み込んだアニメーションを切り替えられます。

読み込みの設定は「メッシュ」「テクスチャ」「ボーンとスキン」「パイプライン」に分かれる

読み込みの画面の右は、一番上の「シェーディング」「照明モード」と、4つのまとまりです。

glTFの読み込みの設定
glTFの読み込みの画面の右の設定(既定の値。右の欄の幅を広げて撮った)
まとまり設定既定中身
(一番上)シェーディング法線データを使用読み込むときの法線の決め方。「法線データを使用」「フラットシェーディング」「スムーズシェーディング」
(一番上)照明モード標準ライトの明るさの単位。書き出しの「照明モード」と同じ3つ
メッシュ頂点をマージオフ同じ位置の頂点を、できるときにつなぐ。glTFでは法線やUVの切れ目で頂点が分かれているため。法線の違う頂点はつながらない
メッシュ可能ならマテリアルスロットを統合オンできるときは、マテリアルスロットをまとめる
メッシュポイントをポイントクラウドとしてインポートオフ点だけのメッシュを、ポイントクラウドのオブジェクトとして読み込む
テクスチャ画像をパックオン画像を全部、.blendのファイルに入れる
テクスチャWebPテクスチャをインポートオフWebPの画像があるときは、代わりのPNGやJPEGでなくWebPを読み込む
テクスチャ未使用マテリアルと画像をインポートオフどのメッシュにも使っていないマテリアルと画像も読み込む
ボーンとスキンボーンの方向Blender(インポートとエクスポートを往復する時に最適)ボーンの先の置き方。「Blender」=Blenderから書き出したものを読み込み直すときに向く/「テンペランス(平均的)」=子が1つのボーンは、先を子に近い軸に置く/「フォーチューン(見た目が向上する可能性,低精度)」=子が1つのボーンは、先を子の根元に置く。均一でないスケールでは不正確になることがある
ボーンとスキン元のバインドポーズを推測オン「ボーンの方向」が「Blender」のときだけ出る。バインドの逆行列から元のバインドのポーズを推測し、編集モードのボーンのポーズにする。オフでは、既定のレストポーズを使う
ボーンとスキンボーンシェイプを無効化オフ「ボーンの方向」が「Blender」のときだけ出る。3Dビューにボーンのシェイプを出さない
ボーンとスキンボーンシェイプのスケール1.00「ボーンの方向」が「Blender」のときだけ出る。ボーンのシェイプの大きさ
パイプラインシーンをコレクションでインポートオンglTFのシーンをコレクションとして読み込む。シーンが1つなら、アクティブなコレクションに入る。シーンが複数なら、シーンごとのコレクションになり、既定のシーンのほかはビューレイヤーから外れる。どのシーンにも入っていないものは「Orphan」のコレクションになる。オフでは、glTFのシーンを今のシーンに、ほかのシーンは新しいシーンに読み込む
パイプラインインポートしたオブジェクトを選択オン「シーンをコレクションでインポート」がオンのときだけ出る。読み込んだオブジェクトを選択した状態にする
パイプラインScene Extrasをインポートオンシーンのextras(glTFの中のカスタムプロパティ)を、Blenderのカスタムプロパティとして読み込む(今あるものは上書き)

公式マニュアルによると、カスタムプロパティは、読み込むときはいつも読み込まれます。

Blenderから書き出した.glbを読み込み直すと、2m×4m×1mの箱は、大きさ・位置・回転が書き出す前と同じでした。画像は.blendのファイルに入り(パック)、ガラスの「伝播ウェイト」は1のままでした。シーンが1つなので、オブジェクトはアクティブなコレクションに入りました。

建築のモデルをglTFで渡すときと、受け取ったglTFを開くときに見直す設定

建物のモデルをglTFで渡すときに見直すのは、次の項目です。

  • 1つのファイルで渡すなら、「glTF バイナリ (.glb)」のままにする。画像も.glbの中に入る
  • 渡すものだけを書き出すなら、「内容」の「対象」の「選択したオブジェクト」をオンにする
  • 作業用に隠したオブジェクトや別のシーンを出さないなら、「可視オブジェクト」と「アクティブシーン」をオンにする
  • カメラとライトも渡すなら、「カメラ設定」と「Punctualライト」をオンにする。エリアライトとワールドの照明は書き出されない
  • ガラスは「伝播ウェイト」で作る。受け取る側がKHR_materials_transmissionに対応していないと、透けて見えないことがある
  • Webで開くファイルを小さくするなら、「画像」を「JPEGフォーマット(.jpg)」にする(アルファの要る画像はPNGのまま)。「Draco圧縮」も使えるが、受け取る側の対応が要る
  • モディファイアーの結果で渡すなら、「モディファイアーを適用」をオンにする(既定はオフ)
  • カーブは形が書き出されないので、書き出す前にメッシュに変える

受け取ったglTFをBlenderで開くときは、次の項目を見直します。

  • 画像を.blendのファイルに入れたくないときは、「画像をパック」をオフにする
  • UVの切れ目などで頂点が分かれて読み込まれ、編集しにくいときは、「頂点をマージ」をオンにして読み込み直す(法線の違う所は分かれたまま)
  • 読み込んだものが見えないときは、アウトライナーで、読み込んだコレクションの左のチェックボックスを見る。チェックが外れているコレクションは、ビューレイヤーから除外されていて表示されない。チェックを入れると表示される

ほかの形式との違いと、テクスチャを消さずに渡す方法は、BlenderのFBX・OBJ・glTF・USDの選び方|書き出したモデルのテクスチャが消えないようにするで解説しています。

Blenderで建築パースを作る方法は、建築3DCGコース(Blender)で学べます。

会員登録(無料)

記事やテーマのお気に入り・学習履歴・フォローが使えます。

この記事について

PERSC編集部が、建築の制作に関わる知識を実務目線で整理しています。内容は公開・更新日時点の情報にもとづきます。誤りや古い情報にお気づきの場合はお問い合わせよりご連絡ください。

あわせて読みたい