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

Blender

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

編集部 読了 約37分

  • glTFで書き出したい
  • glTFのテクスチャが反映されない
  • glTFを読み込めない・表示されない

Blender(ブレンダー)で作った建物のモデルは、glTFで書き出すと、Webのページやアプリで開ける1つのファイルにできます。

しかし、glTFの書き出しの画面には設定がとても多く、カメラやライトは最初の設定のままでは書き出されません。

この記事では、glTFの書き出しと読み込みの手順と、画面にある設定の全部を解説します。建築のモデルを渡すときに見直す設定と、テクスチャが反映されないときの直し方も分かります。

画面:Blender 5.2.2 LTS(日本語の表示)

始める前に

画面の区画
①3Dビューポート ②モードのメニュー ③追加 ④アウトライナー

手順を始める前に知っておくことは、次の3つです。

  • 書き出しと読み込みは、①の3Dビューポート(形を見ながら作る、いちばん広い区画)で行う。②のメニューをオブジェクトモードにしておく
  • 書き出すオブジェクトは、①か④のアウトライナー(シーンの中身の一覧)で先に選んでおく。部屋の全部なら、①でAキーを押すと全部を選べる
  • この記事で確かめたのは、Blenderで書き出して読み込み直した結果。受け取る側のソフト(Webのビューアー・Unityなど)で開いた結果は試していない

glTFとは

エクスポートのメニュー
ファイル→エクスポートのメニューのglTF 2.0 (.glb/.gltf)(赤い枠)

glTF(ジーエルティーエフ)は、Webやアプリで3Dのモデルを送って開くための形式です。

ファイルを小さくし、開くときの処理を少なくする作りになっています。

ゲームを作るソフトのUnity・Unreal Engine・Godotや、Twinmotion・Lumion・D5 Renderも読めます。

BlenderのglTFが扱えるのは、メッシュ・マテリアル・テクスチャ(面に貼る画像や模様)・カメラ・ライト(ポイント・スポット・サン)・カスタムプロパティ・アニメーションです。

マテリアルは、プリンシプルBSDF(新しいマテリアルに最初から入っている、質感を決めるノード)と、光の当たり方で明るさが変わらない「シェーディングなし」に対応します。

glTFはリアルタイムの表示に向けた形なので、四角形や多角形の面は三角形になって書き出されます。2m×4m×1mの箱は12枚の三角形に、3Dの文字も三角形の面になりました。

カーブのベジエの円は、形を持たず位置・回転・スケールだけを持つ要素になり、線は残りませんでした。

glTFを書き出す

書き出しの画面
glTFの書き出しの画面。ファイルの名前の欄とglTF 2.0をエクスポートのボタン(赤い枠)

建物を渡すときは、選んだオブジェクトだけを、画像まで1つのファイルに入る形で書き出します。

glTFを書き出す手順は、次の4つです。

  1. ファイル→エクスポート→glTF 2.0 (.glb/.gltf)を押す
  2. 選択したオブジェクトにチェックを入れる
  3. フォーマットがglTF バイナリ (.glb)かを見る
  4. 名前を付けてglTF 2.0をエクスポートを押す

「ファイル」→「エクスポート」→「glTF 2.0 (.glb/.gltf)」を押す

書き出すオブジェクトを選んだまま、ファイルのメニューを押し、エクスポートにポインター(画面の矢印)を乗せて、glTF 2.0 (.glb/.gltf)を押します。

エクスポートのメニュー
glTF 2.0 (.glb/.gltf)(赤い枠)

glTFの書き出しの画面が開きました。ファイルの一覧と並んで、書き出しの設定が縦に並ぶ列があります。

「選択したオブジェクト」にチェックを入れる

設定の列の内容の対象で、選択したオブジェクトにチェックを入れます。

選択したオブジェクト
対象の選択したオブジェクト(赤い枠)

選択したオブジェクトにチェックが入り、選んだオブジェクトだけが書き出される設定になりました。

「フォーマット」が「glTF バイナリ (.glb)」かを見る

設定の列の初めにあるフォーマットが、glTF バイナリ (.glb)になっているかを見ます。違うときは、メニューを押してglTF バイナリ (.glb)を選んでください。

フォーマット
フォーマット(赤い枠)。最初の値はglTF バイナリ (.glb)

フォーマットがglTF バイナリ (.glb)で、画像まで1つの.glbに入る設定です。

名前を付けて「glTF 2.0をエクスポート」を押す

フォルダの欄で書き出すフォルダを開き、ファイルの名前の欄に名前を打って、glTF 2.0をエクスポートを押します。

書き出しの画面
ファイルの名前の欄とglTF 2.0をエクスポート(赤い枠)

.glbのファイルが1つ書き出されました。画像テクスチャを貼った立方体では、画像も.glbの中に入っていました。

これで、glTFを書き出せました。カメラやライトも渡すときに見直す設定は、この記事の「建築のデータを渡すときに見直す設定」にまとめました。

書き出しの設定

内容とトランスフォーム
glTFの書き出しの画面の設定の列の初めの部分。内容とトランスフォーム(赤い枠)

書き出しの画面の設定は、初めのフォーマットと、内容・トランスフォーム・データ・アニメーションの4つのまとまりに分かれます。

データの中は欄が多く、マテリアルのノードのつなぎ方も表にするので、この記事では次の8つに分けて見ます。

  • フォーマット
  • 内容とトランスフォーム
  • シーングラフとメッシュ
  • 頂点カラーとマテリアル
  • マテリアルのノードのつなぎ方
  • シェイプキー・アーマチュア・スキニング
  • 照明と圧縮
  • アニメーション

フォーマット

フォーマット
フォーマット・コピーライト(C)・エクスポート設定を維持(赤い枠)

フォーマットで、1つのファイルにするか、いくつかのファイルに分けるかを選ぶ設定です。選択肢は次の3つです。

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

画像テクスチャを貼った立方体は、glTF セパレートでは.gltf・.bin・画像(.png)の3つのファイルになりました。

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

内容とトランスフォーム

内容とトランスフォーム
内容とトランスフォーム(赤い枠)

内容では書き出すオブジェクトとデータを選び、トランスフォームでは上の向きを決めます。内容の中のデータは、下に続くデータのまとまりとは別の欄です。

まとまり設定最初の値中身
対象「選択したオブジェクト」オフ選んだオブジェクトだけを書き出す。「対象」がどれもオフのときは、全部のシーンのオブジェクトを、隠したものも含めて書き出す
対象「可視オブジェクト」オフ表示しているオブジェクトだけを書き出す(オンにすると、隠したオブジェクトは書き出されなかった)
対象「レンダリング可能なオブジェクト」オフレンダリングするオブジェクトだけを書き出す
対象「アクティブコレクション」オフ今のコレクション(オブジェクトをまとめる入れ物)のオブジェクトだけを書き出す
対象「入れ子のインスタンスも含む」オン「アクティブコレクション」がオンのときだけ出る。中に入れたコレクションのオブジェクトも書き出す
対象「アクティブシーン」オフ今のシーンだけを書き出す(オンにすると、別のシーンは書き出されなかった)
データ「カスタムプロパティ」オフ自分で足した値(カスタムプロパティ)を、glTFのextras(glTFの中の追加の値)として書き出す
データ「カメラ設定」オフカメラを書き出す
データ「Punctualライト」オフポイント・スポット・サンのライト(位置や向きで照らすライト)を書き出す。KHR_lights_punctualという拡張を使う
トランスフォーム「+Yが上」オンglTFの決まりに合わせ、上を+Yにして書き出す

カメラ設定とPunctualライトをオンにすると、カメラとポイント・スポット・サンのライトが書き出されました。エリアライトとワールドの照明は、glTFが対応していないので、オンにしても書き出されません。

拡張(エクステンション)は、glTFの基本の決まりに足された機能で、KHR_やEXT_で始まる名前が付いています。読み込むソフトが全部の拡張に対応しているとは限りません。

コレクションのプロパティのタブから書き出すときは、対象とエクスポート設定を維持が出ません。

代わりに、コレクションのいちばん上のオブジェクトの重心を中心にして書き出す設定(コレクションの中心をエクスポート)が加わり、コレクションのカスタムプロパティはシーンのextrasとして書き出されます。

シーングラフとメッシュ

シーングラフとメッシュ
データの中のシーングラフとメッシュ(赤い枠)

シーングラフはオブジェクトの親子の階層を、メッシュは形の中身をどう書き出すかの設定です。

まとまり設定最初の値中身
シーングラフ「ジオメトリノードインスタンス(実験的)」オフジオメトリノードで並べた複製を書き出す。試しの機能
シーングラフ「GPUインスタンス」オフ同じメッシュを使うオブジェクトを、EXT_mesh_gpu_instancingの拡張で書き出す。子を持たず、全部が同じオブジェクトの子のメッシュだけが対象で、マテリアルの違いは扱えない。読み込むと、同じメッシュのデータを使うオブジェクトになる
シーングラフ「オブジェクト階層を平坦化」オフオブジェクトの親子をなくして書き出す。位置・回転・スケールに分けられない変形があるときに使う。スキンのメッシュだけはアーマチュアの子のまま
シーングラフ「フルコレクション階層」オフコレクションを形の無いオブジェクトとして書き出し、階層を残す。いくつかのコレクションに入ったオブジェクトは、最初に見つかったコレクションに1回だけ書き出す
メッシュ「モディファイアーを適用」オフモディファイアー(形を変える機能)を計算したあとの形で書き出す(アーマチュアを除く)。オンではシェイプキーを書き出せない
メッシュ「UV」オンUV(画像のどこを、面のどこに貼るかの情報)を書き出す
メッシュ「ノーマル」オン頂点の法線(面に垂直な向き)を書き出す
メッシュ「タンジェント」オフ頂点のタンジェント(凹凸の画像の向きの情報)を書き出す。「ノーマル」がオフのときは効かない
メッシュ「属性」オフ名前が「_」で始まる属性(頂点などに付けた値)を書き出す
メッシュ「孤立する辺」オフ面につながっていない辺を、線として書き出す(1つ目のマテリアルを使う)
メッシュ「孤立ポイント」オフ辺につながっていない頂点を、点として書き出す(1つ目のマテリアルを使う)
メッシュ「共有アクセサ」オフ三角形の番号のデータを共有する。マテリアルが多いときにファイルが小さくなる

UVの切れ目やフラットシェーディング(面ごとに角を立てる見せ方)の辺では頂点が分かれるので、書き出した頂点の数はBlenderより多くなることがあります。

頂点カラーとマテリアル

頂点カラーとマテリアル
頂点カラー・マテリアル・未使用テクスチャと画像(赤い枠)

頂点カラー(頂点に付けた色)とマテリアルは、色と画像の書き出し方を決めるまとまりです。

まとまり設定最初の値中身
頂点カラー「頂点カラーを使用」マテリアルマテリアル=マテリアルでベースカラーに掛けて使っているときに書き出す(glTFの決まりにいちばん合う)。アクティブ=今の頂点カラーを書き出す。名前=決めた名前の頂点カラーを書き出す(「頂点カラー名」の欄が出る)。なし=書き出さない
頂点カラー「全頂点カラーをエクスポート」オンマテリアルで使っていない頂点カラーも全部書き出す。「頂点カラーを使用」が「なし」のときは効かない
頂点カラー「マテリアルがない時アクティブ頂点カラーをエクスポート」オンマテリアルの無いオブジェクトで、今の頂点カラーを書き出す。「頂点カラーを使用」が「なし」のときは効かない
マテリアル「マテリアル」エクスポートエクスポート=ノードの中身と画像を全部書き出す。場所の確保=中身を書き出さず、マテリアルの分かれ方だけを残す。ビューポート=表示用のベースカラー・粗さ・メタリックだけを書き出す。エクスポートなし=書き出さず、分かれ方も失われる
マテリアル「画像」自動画像の形式。自動=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に向きます。

マテリアルのノードのつなぎ方

頂点カラーとマテリアル
書き出しのマテリアルのまとまり(赤い枠の中)。つなぎ方はシェーダーエディターのノードで決まる

glTFのマテリアルは、ベースカラー・メタリック・粗さなどの値で質感を決める仕組みです。

書き出すときは、glTFのアドオンがプリンシプルBSDFのノードと、そこにつないだノードを読み取ってglTFのマテリアルを作ります。

中身ごとのつなぎ方は、次の表のとおりです。

表の「glTF Material Output」は、シェーダーエディター(ノードを組む区画)の追加→出力から足せるノードのまとまりです。

glTFのアドオンの設定で「シェーダーエディターアドオン」を有効にすると出ます。

中身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が書き出される
係数画像に「数式」(乗算)や「ミックス」(乗算)で掛けた値
UDIM(タイルに分けた画像)glTFは対応しないので、タイルごとの画像に分けて書き出す。UDIMの画像は全部、同じUVマップを使う
シェーディングなしプリンシプルBSDFを使わず、「ライトパス」の「カメラレイ」(カメラから見た光線かどうか)で混ぜる組み方(KHR_materials_unlit)
バリアント(マテリアルの切り替え)glTFのアドオンの設定でUIを有効にし、3Dビューポートの「glTF Variants」のタブで作る(KHR_materials_variants)

プリンシプルBSDFの伝播ウェイトを1にしたガラスの板を書き出すと、KHR_materials_transmissionの拡張が使われました。

伝播はリアルタイムの表示では扱いが難しい表現で、この拡張に対応していないソフトもあります。

シェイプキー・アーマチュア・スキニング

シェイプキーとアーマチュア
シェイプキー・シェイプキーを最適化・アーマチュア(赤い枠)

形の変化と骨組みで動かすモデルのための設定で、建物のように動きの無いモデルでは最初の値のままでかまいません。アーマチュアの設定は、スキニングがオンのときだけ効きます。

まとまり設定最初の値中身
シェイプキー見出しのチェックオンシェイプキー(形の変化の記録)を書き出す
シェイプキー「シェイプキーの法線」オンシェイプキーと一緒に、頂点の法線を書き出す
シェイプキー「シェイプキーのタンジェント」オフシェイプキーと一緒に、頂点のタンジェントを書き出す
シェイプキーを最適化「可能ならスパースアクセサを使用」オンファイルが小さくなるときは、違う所だけを書く形(スパースアクセサ)を使う
シェイプキーを最適化「空データ時にスパースアクセサをオミット」オフデータが空のときは、違う所だけを書く形を使わない。正しく扱えないビューアーがあるので最初はオフ
アーマチュア「レスト位置を使用」オン骨組みの静止の形を、関節の静止のポーズにする。オフでは今のフレームのポーズを使う
アーマチュア「変形ボーンのみ」オフ形を変えるボーン(骨組みの1本)だけを書き出す。そのボーンのアニメーションはキーフレームを細かく打った形になる。「アニメーションサンプリング」がオフのときは効かない
アーマチュア「アーマチュアオブジェクトを削除」オフできるときは、アーマチュアのオブジェクトをなくす(いちばん上のボーンが複数あるときはなくせない)
アーマチュア「ボーン階層を平坦化」オフボーンの親子をなくす。位置・回転・スケールに分けられない変形があるときに使う
アーマチュア「リーフボーン追加」オフ各ボーンの列の最後にボーンを足し、前のボーンの長さが分かるようにする。書き出したアーマチュアを編集するときに使う
スキニング
スキニング(赤い枠)
まとまり設定最初の値中身
スキニング見出しのチェックオン骨組みで形を動かすデータを書き出す
スキニング「ボーンの影響数」41つの頂点を動かすボーンの数。「全ボーンの影響を含む」がオンのときは効かない。4と8のほかでは、多くのビューアーで正しく表示されないことがある
スキニング「全ボーンの影響を含む」オフ頂点を動かすボーンを全部書き出す。多くのビューアーで正しく表示されないことがある

照明と圧縮

照明と圧縮
照明・Draco圧縮・Meshoptメッシュ圧縮(赤い枠。薄い設定は、見出しのチェックがオフのため効かない)

照明でライトの明るさの書き方を、Draco圧縮とMeshoptメッシュ圧縮でメッシュの縮め方を決めます。

まとまり設定最初の値中身
照明「照明モード」標準標準=物理にもとづくglTFの単位(cd・lx・nt)で書く。単位なし=単位の無い明るさで、露出を変えられないビューアーに使う。Raw(廃止予定)=Blenderの明るさを変えずに書く
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

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

Draco圧縮をオンにして書き出すと、KHR_draco_mesh_compressionの拡張が使われました。Draco圧縮とMeshoptメッシュ圧縮の欄は、それぞれの仕組みが使えるときだけ出ます。

glTFのアドオンの設定にgltfpackの場所を入れたときだけ、gltfpackの欄が出ます。gltfpackで、メッシュを減らしたり画像を縮めたりする設定です。

アニメーション

アニメーションの上の部分
アニメーション・ベイクと統合・静止と範囲(赤い枠)

アニメーションは、見出しのチェックが最初からオンで、動きを書き出します。glTFが書き出す動きは、オブジェクトの位置・回転・スケール、ポーズのボーン、シェイプキーの値だけで、物理・ライト・マテリアルの動きは書き出されません。

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

選択肢中身
「アクション」(最初の値)オブジェクトの今のアクションと、NLAトラック(アクションを時間に並べる帯)に入れたアクションを、それぞれ別のアニメーションにする。どちらでもないアクションは書き出されない
「アクティブアクションを統合」今割り当てているアクションを全部、1つのアニメーションにする(「アニメーション名を統合」の欄が出る)
「アクションを配信」合うアクションを、全部のオブジェクトに配る
「NLAトラック」NLAのトラックごとに、別のアニメーションにする
「シーン」ビューポートで見えるとおりに、キーフレームを細かく打ったアニメーションにする(「アニメーションをオブジェクトで分離」の欄が出る)

サンプリングは、決めたフレームごとに値を読んでキーフレーム(時間ごとの値の記録)にすることを指します。

サンプリングしないアニメーションを扱えるのは、「アクション」と「アクティブアクションを統合」のモードだけです。

まとまり設定最初の値中身
ベイクと統合「全オブジェクトアニメをベイク」オフ全部のオブジェクトのアニメーションを書き出す。コンストレイントやドライバーで動くとき、選んだものだけを書き出すときに使う。サンプリングがオンで、モードが「アクション」か「アクティブアクションを統合」のときだけ効く
ベイクと統合「アニメーションを統合」アクションアクション=同じアクションのアニメーションを1つにまとめる。NLAトラック名=同じトラック名のものを1つにまとめる。統合なし=全部を別々にする。サンプリングがオンで、モードが「アクション」のときだけ効く
静止と範囲「現在のフレームを静止状態に使用」オフ今のフレームの状態で書き出す。オフではフレーム0を静止の状態にする
静止と範囲「再生範囲に限定」オフアニメーションを、再生の範囲で切る。モードが「シーン」のときは効かない
静止と範囲「全glTFアニメーションを0から開始」オフ全部のアニメーションの始まりを0秒にする。繰り返すアニメーションに使う
静止と範囲「負のフレーム」スライドマイナスのフレームがあるとき、スライド=フレーム0で始まるようにずらす。クロップ=0より後だけを残す
アニメーションの中の部分
アーマチュア・シェイプキーアニメーション・アニメーションサンプリング・アニメーションポインター(実験的)(赤い枠。薄い設定は、今のモードでは効かない)
まとまり設定最初の値中身
アーマチュア「全アクションをエクスポート」オン全部のアクションを書き出し、1つのアーマチュアに結び付ける。いくつものアーマチュアには対応しない。モードが「アクション」のときだけ効く
アーマチュア「アクション間でポーズボーンをリセット」オンアクションの間で、ポーズのボーンを戻す。キーの無いボーンがあるときに要る
シェイプキーアニメーション見出しのチェックオンシェイプキーのアニメーションを書き出す。「シェイプキー」の書き出しが要る
シェイプキーアニメーション「アクション間でシェイプキーをリセット」オンアクションの間で、シェイプキーを戻す
アニメーションサンプリング見出しのチェックオン全部のアニメーションをサンプリングする。しないと正しく書き出されないことがある
アニメーションサンプリング「サンプリングレート」1何フレームごとに値を読むか
アニメーションサンプリング「サンプリング補間フォールバック」リニアキーの無い値のつなぎ方。リニアかステップ
アニメーションポインター(実験的)見出しのチェックオフマテリアル・ライト・カメラのアニメーションを書き出す。モードが「NLAトラック」か「シーン」のときだけ使える
アニメーションポインター(実験的)「TRS/ウェイトをアニメーションポインターに変換」オフ位置・回転・スケールとウェイトも、KHR_animation_pointerで書き出す
アニメーションの下の部分
アニメーションを最適化・追加アニメーション・アクションの絞り込み(赤い枠)
まとまり設定最初の値中身
アニメーションを最適化「サイズを最適化」オン同じ値の続くキーフレームを消して、ファイルを小さくする
アニメーションを最適化「ボーンのチャンネルを強制維持」オンボーンのキーフレームが全部同じでも、最小のアニメーションを残す
アニメーションを最適化「オブジェクトのチャンネルを強制維持」オフオブジェクトのキーフレームが全部同じでも、最小のアニメーションを残す
アニメーションを最適化「他のオブジェクトのビュー表示無効」オフ書き出しを速くするため、ほかのオブジェクトの表示を切る
追加アニメーション「追加アニメーションを準備」オフ追加のアニメーションを書き出す。モードが「アクション」か「アクティブアクションを統合」のときだけ出る。glTFの決まりの外の機能
アクションの絞り込み見出しのチェックオフ書き出すアクションを、選んだものに絞る

glTFを読み込む

読み込みの画面
glTFの読み込みの画面。glTF 2.0をインポートのボタン(赤い枠)

受け取った.glbや.gltfは、glTF 2.0 (.glb/.gltf)で読み込んでください。最初の設定では、画像は.blendのファイルの中に入ります。

glTFを読み込む手順は、次の3つです。

  1. ファイル→インポート→glTF 2.0 (.glb/.gltf)を押す
  2. glTFのファイルを選ぶ
  3. glTF 2.0をインポートを押す

「ファイル」→「インポート」→「glTF 2.0 (.glb/.gltf)」を押す

ファイルのメニューを押し、インポートにポインターを乗せて、glTF 2.0 (.glb/.gltf)を押します。

インポートのメニュー
インポートのメニューのglTF 2.0 (.glb/.gltf)(赤い枠)

glTFを選ぶ画面が開きました。

glTFのファイルを選ぶ

glTFのあるフォルダを開き、.glbか.gltfのファイルを押して選びます。

ファイルの名前の欄に、選んだファイルの名前が入りました。

「glTF 2.0をインポート」を押す

glTF 2.0をインポートを押します。

読み込みの画面
glTF 2.0をインポート(赤い枠)

glTFの中のオブジェクトが、3Dビューポートに読み込まれました。

これで、glTFを読み込めました。Blenderから書き出した.glbを読み込み直すと、2m×4m×1mの箱は大きさ・位置・回転が書き出す前と同じで、ガラスの伝播ウェイトも1のままでした。

読み込みの設定

読み込みの設定
glTFの読み込みの画面の設定の列(赤い枠)

読み込みの画面の設定は、初めのシェーディングと照明モードと、4つのまとまりです。この記事では、次の5つの欄に分けて見ます。

  • シェーディングと照明モード
  • メッシュ
  • テクスチャ
  • ボーンとスキン
  • パイプライン

シェーディングと照明モード

シェーディングと照明モード
シェーディングと照明モード(赤い枠)
設定最初の値中身
「シェーディング」法線データを使用読み込むときの法線の決め方。法線データを使用・フラットシェーディング・スムーズシェーディング
「照明モード」標準ライトの明るさの単位。書き出しの「照明モード」と同じ3つ

メッシュ

メッシュ
メッシュ(赤い枠)
設定最初の値中身
「頂点をマージ」オフ同じ位置の頂点を、できるときにつなぐ。glTFでは法線やUVの切れ目で頂点が分かれているので、そのつなぎ直しに使う。法線の違う頂点はつながらない
「可能ならマテリアルスロットを統合」オンできるときは、マテリアルの枠(マテリアルスロット)をまとめる
「ポイントをポイントクラウドとしてインポート」オフ点だけのメッシュを、点の集まりのオブジェクトとして読み込む

テクスチャ

テクスチャ
テクスチャ(赤い枠)
設定最初の値中身
「画像をパック」オン画像を全部、.blendのファイルに入れる
「WebPテクスチャをインポート」オフWebPの画像があるときは、代わりのPNGやJPEGでなくWebPを読み込む
「未使用マテリアルと画像をインポート」オフどのメッシュにも使っていないマテリアルと画像も読み込む

ボーンとスキン

ボーンとスキン
ボーンとスキン(赤い枠)
設定最初の値中身
「ボーンの方向」Blender(インポートとエクスポートを往復する時に最適)ボーンの先の置き方。Blender=Blenderから書き出したものを読み込み直すときに向く。テンペランス(平均的)=子が1つのボーンは、先を子に近い軸に置く。フォーチューン(見た目が向上する可能性,低精度)=子が1つのボーンは、先を子の根元に置く。均一でないスケールでは不正確になることがある
「元のバインドポーズを推測」オン「ボーンの方向」が「Blender」のときだけ出る。元の骨組みの形を推測して、編集のときのポーズにする。オフでは最初の静止の形を使う
「ボーンシェイプを無効化」オフ「ボーンの方向」が「Blender」のときだけ出る。ボーンの形を表示しない
「ボーンシェイプのスケール」1.00「ボーンの方向」が「Blender」のときだけ出る。ボーンの形の大きさ

パイプライン

パイプライン
パイプライン(赤い枠)
設定最初の値中身
「シーンをコレクションでインポート」オンglTFのシーンをコレクションとして読み込む。シーンが1つなら今のコレクションに入る。シーンが複数なら、シーンごとのコレクションになり、既定のシーンのほかはビューレイヤー(表示する範囲)から外れる。どのシーンにも入っていないものは「Orphan」のコレクションになる。オフでは、glTFのシーンを今のシーンに、ほかのシーンは新しいシーンに読み込む
「インポートしたオブジェクトを選択」オン「シーンをコレクションでインポート」がオンのときだけ出る。読み込んだオブジェクトを選んだ状態にする
「Scene Extrasをインポート」オンシーンのextrasを、Blenderのカスタムプロパティとして読み込む(今あるものは上書き)

カスタムプロパティは、設定にかかわらず読み込まれる作りです。最初のアニメーションは再生できる状態で読み込まれ、ほかのアニメーションはアクションとしてNLAのトラックに入ります。

建築のデータを渡すときに見直す設定

カメラとライト
書き出しのデータのカメラ設定とPunctualライト(赤い枠)

建物のモデルをglTFで渡すときに、書き出しの画面で見直す設定は、次の5つです。

  • フォーマット:1つのファイルで渡すならglTF バイナリ (.glb)のまま
  • 対象:選択したオブジェクトにチェックを入れる。これだけで、選んでいない隠したものや別のシーンは出ない
  • カメラ設定とPunctualライト:カメラとライトも渡すならオン
  • モディファイアーを適用:モディファイアーの結果で渡すならオン(最初はオフ)。プロパティのモディファイアーのタブ(スパナの絵)に何か並んでいれば、モディファイアーを使っている
  • 画像:Webで開くファイルを小さくするならJPEGフォーマット(.jpg)(透過の要る画像はPNGのまま)。Draco圧縮でも小さくできるが、受け取る側の対応が要る

カーブで作った所は形が書き出されないので、書き出す前にメッシュに変えておきます。

テクスチャが反映されない・読み込めないとき

頂点カラーとマテリアル
書き出しのマテリアル(赤い枠の中)

glTFで起きやすいことは、次の7つです。

  • 渡した先でテクスチャやマテリアルが反映されない
  • 照明が渡らない
  • ガラスが透けない
  • メニューに「glTF 2.0」が無い
  • 読み込んだ.gltfの画像がピンク色になる
  • 読み込んだ形が大きい・小さい
  • 読み込んだのに、一部が表示されない

渡した先でテクスチャやマテリアルが反映されない

書き出されるのは、プリンシプルBSDFと、そこにつないだ画像テクスチャなどのノードから作ったマテリアルです。

シェーダーエディターでマテリアルのノードを開き、画像テクスチャのノードでなく、ノイズなどの模様のノードやほかのシェーダーで作っていたら、それは書き出されません。

プリンシプルBSDFにつなぎ直すか、Cyclesのベイク(模様を画像に焼き付ける機能)で画像にしてから貼り直してください。

書き出しのマテリアルがエクスポートか、画像がなしになっていないかも見ます。それでも反映されないときは、相手のソフトの説明で、glTFの拡張への対応を確かめてください。

照明が渡らない

ポイント・スポット・サンのライトとカメラは、Punctualライトとカメラ設定をオンにして書き出し直すと渡ります。

エリアライトとワールドの照明(HDRIなど)は、glTFが対応していないので書き出されません。

渡すときは、ポイントやスポットのライトに置き換えるか、明るさをベイクで画像に焼き付けて壁や床に貼る方法があります。

ガラスが透けない

ガラスの透けは、KHR_materials_transmissionの拡張で書き出されるので、相手のソフトがこの拡張に対応していないと透けて見えません。

対応していないときは、プリンシプルBSDFのアルファを1より小さくすると、glTFの基本の決まりの半透明(ブレンド)で書き出されます。

メニューに「glTF 2.0」が無い

glTFの書き出しと読み込みは、Blenderに最初から入っている有効のアドオンが受け持ちます。

メニューに無いときは、編集→プリファレンス…のアドオンで「glTF 2.0」と探し、チェックを入れて有効にしてください。

読み込んだ.gltfの画像がピンク色になる

.gltfで受け取ったときは、画像が.gltfと別のファイルになっています。.gltf・.bin・画像を、受け取ったときのフォルダの並びのまま置いて読み込み直してください。

画像が届いていないときは、渡した人に.glbで書き出し直してもらうと、画像まで1つのファイルで届きます。

読み込んだ形が大きい・小さい

glTFの長さは、決まりでmと決まっています。Blenderから書き出した.glbは、読み込み直しても同じ大きさで入りました。

作った側の単位の扱いが違って大きさが合わないときは、読み込んだオブジェクトを全部選び、Sキーを押して倍率を打つと大きさを変えられます。

読み込んだのに、一部が表示されない

glTFにシーンが複数あると、既定のシーンのほかのコレクションはビューレイヤーから外れて表示されません。

アウトライナーで、読み込んだコレクションの名前の横のチェックボックスにチェックを入れてください。全体が画面の外にあるときは、3Dビューポートのビュー→すべて表示(Homeキー)で全体を見られます。

glTFの設定を決めて、建築のデータを渡そう

書き出しの画面
glTFの書き出しの画面

glTFは、Webやアプリで3Dのモデルを開くための形式で、最初の設定で画像まで1つの.glbに入ります。この記事で解説した手順と設定は、次の5つです。

  • 書き出す:選択したオブジェクトにチェックを入れ、glTF バイナリ (.glb)のままglTF 2.0をエクスポート
  • 書き出しの設定:カメラとライトはカメラ設定とPunctualライト、マテリアルはプリンシプルBSDFにつなぐ
  • 読み込む:glTF 2.0 (.glb/.gltf)で読み込み、画像は.blendに入る
  • 読み込みの設定:分かれた頂点は頂点をマージ、画像を入れないなら画像をパックをオフ
  • 反映されないとき:プリンシプルBSDFでないノードはベイクで画像にし、エリアライトはポイントやスポットに置き換える

まずは小さな箱を1つ書き出し、相手のソフトやWebのビューアーで画像と大きさを確かめてから、建物のモデルを渡してください。

あわせて読みたい

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

会員登録(無料)

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

この記事について

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