【Godot】Blenderの3DモデルをGLBで読み込む方法|大きさ・マテリアルの対処
この記事について
Blenderで作った3DモデルをGodotに持っていきたいときは、まずGLB形式で書き出して読み込む方法から始めると、確認する箇所を絞れます。
この記事では、GLBの書き出しからGodotへの配置までを説明します。あわせて「大きさが合わない」「色や模様が違う」「再インポートでマテリアルが戻る」ときの確認方法も紹介します。
検証環境はBlender 4.3.2/Godot 4.6.3、Linuxです。静的なメッシュを対象にしています。リグ・アニメーション・シェイプキーは今回の検証には含めていません。操作画像もこのLinux環境の実画面で、項目名は英語表記を併記します。Godotのプロジェクトを開き、Blenderを起動できる状態から進めます。寸法とマテリアルの数値は、実際に書き出したGLBを読み込んで確認しています。
画像の赤い番号は、本文の手順番号です。画像に写っている操作箇所や確認結果に番号を付け、対象の手順を画像内とキャプションに示しています。画像はクリックすると拡大できます。
この記事でわかること
- BlenderからGLBを書き出し、Godotの3Dシーンに配置する方法
- サイズが違うときに、寸法とScaleのどちらを見るか
- Blenderのマテリアルがそのまま再現されないときの確認箇所
- Godotで編集したマテリアルを再インポート後も使う方法
BlenderからGodotへはGLBで読み込む
GLBは、glTF 2.0のバイナリ形式です。メッシュや対応するマテリアル、画像テクスチャを1つのファイルにまとめられます。Godotの公式ドキュメントでもglTF 2.0が推奨されています。
Blenderから初めて読み込む場合は、.blendを直接置くよりも、書き出されたGLBをいったん確認する手順がわかりやすいです。.blendの直接読み込みでは、Godotが外部のBlenderを呼び出してglTFへ変換するため、Blenderのインストールや実行ファイルの場所も関係します。
なお、Godot 4.3以降はFBXも標準のufbxインポーターで読み込めます。この記事では、Blender側の書き出し設定とGodot側の確認手順を揃えやすいGLBを使います。
参考:Godot 4.6 公式ドキュメント Available 3D formats
BlenderからGLBを書き出す
先にGodotで空のプロジェクトを開き、モデルの保存先を用意します。パソコンのファイル管理画面で、project.godotが入っているフォルダーにassetsを作り、その中にmodelsを作ります。ここへtest_cube.glbを書き出します。同じくproject.godotと並ぶ場所に、後半で使うmaterialsフォルダーも作っておきます。
GodotのFileSystemに出るres://は「project.godotがあるフォルダー」を表します。Blenderの保存画面では、res://という文字ではなく、パソコン上の実際のプロジェクトフォルダーを選んでください。
1.確認用にシンプルなモデルを用意する
まずは単色の立方体で試します。複雑なモデルを使う前に、形・大きさ・色のどこまで読み込めているか確認するためです。
- BlenderでFile → New → Generalから新しいファイルを開き、左上がObject Modeであることを確認して、中央のCubeをクリックして選択します。オレンジ色の枠が付けば選択できています。
- 右側のScene PropertiesでUnitsを展開し、Unit SystemをMetric、Unit Scaleを1.0にします。
- サイドバーが閉じていれば、3Dビューにマウスポインターを置いてNキーを押します。右側のItem → Transform(下の画像の赤枠③)で、DimensionsがX・Y・Zとも2 m、Scaleがすべて1.0であることを確認します。
- 画面右下のPropertiesでMaterial Propertiesを開きます。マテリアルがなければNewをクリックし、SurfaceのPrincipled BSDFにあるBase Color(赤枠④)をオレンジ色などに変えます。
- 3Dビュー右上の球のアイコンからMaterial Preview(赤枠⑤)を選び、材質の色を確認します。

画像の例では、オブジェクト名をTestCube、マテリアル名をSample_Materialにしています。初期の名前のままでも進められます。後半に出てくるSample_Material.tresは、自分のマテリアル名の.tresファイルへ読み替えてください。モデルを更新するときも同じマテリアル名を使うようにします。
この時点では「2 mの立方体にマテリアルが割り当てられ、Base Colorが設定されている」ことを確認します。Viewport Displayの色だけを変更しても、書き出すマテリアルの色を設定したことにはなりません。
2.選択したモデルをGLBで書き出す
左上がObject Modeになっていることを確認し、書き出す立方体を選んだ状態で下の画像の赤枠をたどり、①File → ②Export → ③glTF 2.0(.glb/.gltf)の順に開きます。

ファイルの保存画面が開いたら、次の項目を設定します。
- 下の画像の赤枠①の保存先で、先ほど用意したGodotプロジェクト内のassets/modelsを選びます。
- 赤枠②のファイル名をtest_cube.glbにします。
- 赤枠③のFormatでglTF Binary(.glb)を選びます。メッシュや対応するマテリアルを1ファイルにまとめるためです。
- 右側のInclude → Limit toにあるSelected Objects(赤枠④)を有効にします。選択した立方体だけを書き出し、初期カメラやライトが混ざるのを防ぎます。
- Transformの+Y Up(赤枠⑤)は有効のままにします。Godot側の上方向に合わせて書き出します。
- 設定を確認し、右下のExport glTF 2.0(赤枠⑥)をクリックします。

保存先にtest_cube.glbができれば、この工程は完了です。この画像の赤枠①の保存先のパスは今回の例なので、自分のGodotプロジェクト内のassets/modelsへ読み替えてください。
後で形を直せるように、File → Save Asから作業用の.blendも保存します。Godotプロジェクトの外に保存しておくと、GLBと.blendが同時に読み込まれて混乱するのを避けられます。画像の例ではtest_cube.blendという名前にしています。
GodotにGLBを読み込む
1.新しい3Dシーンに配置する
GLBをプロジェクト内へ書き出したら、Godotに戻ります。FileSystemは、プロジェクト内の素材を表示する場所です。assets → modelsを開き、test_cube.glbが表示されるまで待ちます。
表示されない場合は、別のプロジェクトや、その外側のフォルダーへ保存していないか確認します。project.godotと同じプロジェクトのassets/modelsにあるかが確認箇所です。
上部メニューのScene → New Sceneを開き、左のSceneドックで3D Sceneを選びます。Node3Dがシーンの一番上のノードになります。画像では、Node3Dを選んでF2キーで名前をImportCheckに変えています。

- 上の画像の赤枠①と矢印を目印に、左下のFileSystemからtest_cube.glbを、左上のSceneにある一番上のNode3D(画像ではImportCheck)へドラッグします。
- Sceneにモデルの項目が増えたら、そのモデルを選択します。3Dビューへマウスポインターを移してFキーを押すと、選択したモデルへ表示が寄ります。
- Scene → Save Scene(Ctrl+S)から、シーンをbeginner_check.tscnという名前で保存します。以降の確認は、この作業用シーンで行います。
FileSystemにファイルがあることと、Sceneにモデルを配置したことは別の段階です。Sceneにモデルが追加され、3Dビューに立方体が見えれば配置できています。
GLBはBlenderから受け取るモデル、.tscnはGodotで配置や追加ノードを保存するシーンです。GLBを修正したら、Blenderから同じファイルへ書き出し直す流れにしておきます。
2.基準の2 m立方体と並べて確認する
読み込めたモデルの大きさを、Godot側で作った基準の立方体と比べます。カメラの遠近感だけでは判断しにくいためです。
- Sceneで一番上のNode3Dを選び、子ノードを追加する+ボタンをクリックします。
- MeshInstance3Dを検索して選び、Createをクリックします。これは、形状データを画面に表示するためのノードです。
- 右側のInspectorでMeshのドロップダウンを開き、New欄からBoxMeshを選びます。
- 作成されたBoxMeshをクリックして設定を開き、Size(下の画像の赤枠④)のX・Y・Zをすべて2にします。
- Sceneで基準のMeshInstance3Dを選び直し、InspectorのTransform → PositionのXを3.5にします。BoxMesh内の設定ではなく、ノード側のTransformを変更する操作です。Scaleは1・1・1のままにします。
- 3Dビュー左上のPerspectiveをクリックし、Front Viewを選びます。Auto Orthogonal Enabledが有効なら、遠近感のないFront Orthogonalへ切り替わります。画像の赤枠⑥は、切り替え後にFront Orthogonalと表示された状態です。この表示になったら、大きさを比べます。
BoxMeshのSizeは形状の寸法、ノードのScaleは倍率です。今回はSizeを2にして、Scaleは1のまま使います。

正面から比較し、読み込んだ立方体と基準のBoxMeshが同じ大きさなら、2 mという寸法を保って取り込めています。Godotの3Dは1単位を1 mとして扱います。
ここで確認するのは3Dエディター上の配置です。実行時に表示されない・暗い場合のCamera3Dやライトの確認点は、後の「暗いだけならライトと表示環境を確認する」で補足します。
参考:Godot 4.6 3Dの座標系/BoxMeshのSize
大きさが合わないときに確認すること
Scaleが1であることと、寸法が正しいことは別
BlenderのDimensionsはオブジェクトの大きさ、Scaleはメッシュにかかる倍率です。Scaleを適用すると倍率がメッシュ側へ反映されますが、その場で見えている大きさは変わりません。
今回、同じ2 mの立方体を使って次の3パターンをGLBで書き出し、Godot内で測定しました。回転は追加せず、+Y Upを有効にしています。
| Blender側の状態 | Blenderの寸法 X・Y・Z | Godot内の寸法 X・Y・Z |
|---|---|---|
| 初期Cube、Scaleは1 | 2 × 2 × 2 m | 2 × 2 × 2 m |
| Scaleを2・0.5・1.5に変更、未適用 | 4 × 1 × 3 m | 4 × 3 × 1 m |
| 上と同じ大きさでScaleを適用 | 4 × 1 × 3 m | 4 × 3 × 1 m |
BlenderはZが上、GodotはYが上なので、この例では高さにあたる3 mがGodotのYに移っています。未適用でも、適用済みでも、読み込まれた大きさは一致しました。「Scaleを適用していないと必ずサイズが壊れる」とは限りません。
ただし、倍率を1に揃えておくと数値を追いやすくなります。静的なモデルで必要な場合は、Object ModeのObject → Apply → Scaleで適用します。リグやアニメーションのあるモデルへ、そのまま同じ操作を広げないようにしてください。
倍率を変える前に確認する順番
- BlenderのDimensionsが、作りたい実寸になっているか確認します。
- GodotのFileSystemでGLBを1回クリックし、Importタブを開きます。Root Scaleを意図せず変更していないか確認します。基準は1.0です。
- 配置したモデルと親ノードのScaleを確認します。親が拡大されていると、モデルもまとめて拡大されます。
- 基準のBoxMeshと並べて、大きさを比較します。
Godot側で0.01倍や100倍にして見た目だけ合わせる前に、どこで倍率が入ったのかを確認しておくと、別のモデルを追加するときも揃えやすくなります。
マテリアルが同じ見た目にならないとき
まずはPrincipled BSDFの単色で確認する
最初に、Principled BSDFのBase Colorへ直接色を設定したマテリアルで試します。別途行った数値比較のテストでは、Base Colorに加え、Metallicの0.25、Roughnessの0.6がGodot側のマテリアルへ引き継がれました。
単色は合っているのに模様が消える場合は、モデルの読み込みよりも、模様を作っているノード構成を確認します。
Noise Textureの模様はそのままGLBへ渡らない
BlenderのNoise TextureをPrincipled BSDFのBase Colorへつないだだけのマテリアルも検証しました。この構成では、書き出したGLBに模様の画像が含まれず、Godot側でもNoiseの模様は再現されませんでした。
このような手続き型の模様を持ち込みたい場合は、Blenderで模様を画像へベイクし、その画像をImage TextureからBase Colorへつないで書き出す方法があります。UV展開とベイクが必要なので、まず単色で読み込めるところまで確認してから進めてください。画像の作成だけでなく、マテリアルへの接続まで必要です。Godot側のShaderMaterialで模様を作り直す方法もあります。UV展開やベイク自体の詳しい手順は、この記事の対象外です。
Base Colorの画像を使う場合は、次の順番で確認します。
- Image Textureノードに、使いたい画像が読み込まれているか
- Image TextureのColorがPrincipled BSDFのBase Colorにつながっているか
- モデルにUVがあり、BlenderのMaterial Previewでも模様が正しく見えるか
- GodotのFileSystemでGLBを1回クリックしてImportタブを開き、Embedded Texture HandlingをDiscard All Texturesにしていないか
参考:Blender公式 glTF 2.0のマテリアル仕様(4.5 LTS)/Godot 4.6 インポート設定
暗いだけならライトと表示環境を確認する
色の値が合っていても、BlenderとGodotでライトや環境が違えば同じ見た目にはなりません。すぐにマテリアルを書き直す前に、ライトと環境の条件を確認します。
特に、Godotのエディターで表示されるプレビュー用の太陽・環境は、ゲーム実行時には引き継がれません。編集画面では見えるのに実行すると暗い場合は、シーンにDirectionalLight3Dなどのライトを追加します。ゲーム画面自体にモデルが映らない場合は、Camera3Dも確認してください。
再インポートでマテリアルの編集を残す
形はBlenderで直し、色や質感はGodotで調整したい場合は、マテリアルを外部の.tresファイルへ取り出します。モデルを更新しても、Godot側のマテリアル調整を残すための準備です。
1.Extract Materialsで外部ファイルにする
- FileSystemのtest_cube.glbをダブルクリックします。Advanced Import Settingsという、モデルの読み込み設定画面が開きます。
- 下の画像の赤枠②を目印に、左上のActionsを開き、Extract Materialsを選びます。
- 保存先の選択画面で、用意しておいたmaterialsフォルダーを開き、Select Current Folderをクリックします。
- Extract Materials to Resource Filesの画面で、対象のマテリアルにチェックが付いていることと、Pathがres://materials/自分のマテリアル名.tresになっていることを確認します。初回はStatusにWill create new fileと表示されます。
- Extractをクリックします。読み込みが終わったら、Advanced Import SettingsのCloseをクリックして作業用シーンへ戻ります。

元のシーンに戻り、FileSystemにmaterials/Sample_Material.tresができたことを確認します。ファイル名はBlender側で付けたマテリアル名によって変わります。
Extract Materialsを使うと、取り出した.tresを使うUse Externalが自動で設定されます。これで、GLB内のマテリアルとGodotで編集するマテリアルを分けて管理できます。
2.変更は作業用シーンで確認する
- FileSystemにあるSample_Material.tres(下の画像の赤枠①)をクリックします。右側のInspectorにマテリアルの設定が表示されます。
- Albedoを開いてColor(赤枠②)をクリックし、色の選択画面で緑色に変更します。画像の例はHexに28c9abを入力しています。
- Roughness(赤枠③)を開き、値を0.82にします。数字も変えておくと、再インポート後に編集が残ったか確かめやすくなります。
- Ctrl+Sで変更を保存し、作業用シーンのbeginner_check.tscnに戻ります。3Dビューのモデルが緑になっていることを確認します。画像の赤枠④は、この保存後の確認結果を示しています。

Advanced Import Settingsのプレビューは、外部マテリアルを使う設定にしたあとも、Blender側の元のマテリアルを表示します。
.tresを編集したのに変わらないと感じたら、確認している画面を見直してください。色の変更を見る場所は、GLBを配置したbeginner_check.tscnの3Dビューです。
3.形状を更新して再インポートする
次に、Blenderでモデルを直し、Godot側の調整が残るか試します。
- Blenderで先ほど保存した.blendを開き、立方体のDimensionsを3 m・3 m・3 mに変更します。
- 元のマテリアルのBase Colorを青へ変えます。マテリアル名は、最初の書き出し時から変更しません。画像の例ではSample_Materialのままです。
- File → Export → glTF 2.0から、同じ保存先のtest_cube.glbへ書き出し直します。上書きするファイルを確認して確定します。
- Godotに戻り、読み込みが終わるのを待ちます。自動で反映されない場合はFileSystemでGLBを選び、ImportのReimportで読み込み直します。
- beginner_check.tscnを開きます。下の画像の赤枠⑤を目印に、基準BoxMeshのSizeも3・3・3へ変更して正面から比べ、モデルが同じ3 mになったことと、緑色が残っていることを確認します。
- FileSystemで外部.tresを選び直し、InspectorのRoughnessが0.82のままか確認します。設定場所は、前の「変更は作業用シーンで確認する」で示したRoughness欄です。

この確認で「モデルの形は更新され、Godot側の色や質感は残る」という動きを確かめられます。外部マテリアルを使っている間は、Blender側で変更した青色がそのまま使われるわけではありません。形はBlender、色や質感はGodotというように、編集する場所を決めておくと整理しやすくなります。
Blender側のマテリアル名は維持してください。名前を変えると、元のマテリアルと外部.tresの対応が切れる場合があります。変更した場合はAdvanced Import SettingsのMaterialsで対象を選び、Use Externalを有効にして、Pathに既存の.tresを指定し直します。
参考:Godot 4.6 マテリアルを外部ファイルへ取り出す方法
まとめ
BlenderのモデルをGodotへ持っていくときは、最初に単色の立方体をGLBで読み込んでみると、設定を確認しやすくなります。
- GLBで書き出し、別の.tscnへ配置する
- サイズはScaleの値だけで判断せず、寸法と親ノードの倍率を確認する
- マテリアルはPrincipled BSDFの単色から試し、模様が消える場合は画像とノード接続を確認する
- Godot側の編集を残したい場合はExtract Materialsを使い、確認は配置先のシーンで行う
まずは「2 mの立方体が、指定した色で表示される」ところまで確認してから、実際に使いたいモデルへ置き換えてみてください。
サイトアイコン-2-150x150.png)