利用可能な3Dフォーマット
3Dアセットを扱う場合、Godotには柔軟で設定可能なインポーターがあります。
Godot は シーン で動作します。つまり、お気に入りの 3Dモデリングソフトウェアで作業中のシーン全体が、可能な限りそのまま転送されます。
Godotは、次の3Dシーンファイルフォーマットをサポートしています:
glTF 2.0 (推奨)。Godotはテキスト(
.gltf) とバイナリ(.glb) の両方の形式をサポートしています。.blend(Blender)。これは裏でBlender本体を呼び出して glTF にエクスポートすることで機能します (Blender がインストールされている必要があります)。DAE(COLLADA)、サポートされている古い形式です。
OBJ (Wavefront)フォーマット + MTLマテリアルファイル。これもサポートされていますが、かなり制限されています (ピボット、スケルトン、アニメーション、UV2、PBRマテリアルなどはサポートされていません)。
FBXは ufbx ライブラリを介してサポートされます。以前のインポートワークフローでは、FBX2glTF が使用されていました。これには独自のFBX SDKにリンクする外部プログラムをインストールする必要があるため、デフォルトの ubfxメソッド、または上記の他のフォーマット (ワークフローに適している場合) を使用することをお勧めします。
シーンファイルをテクスチャとメッシュデータ (別々になっている場合) と一緒にプロジェクトリポジトリにコピーし、エディターウィンドウにフォーカスを当てると Godot が完全なインポート処理を実行します。
Blender から glTF 2.0 ファイルをエクスポートする (推奨)
Blender から glTFファイルをエクスポートする方法は3つあります:
glTF バイナリファイル (
.glb) としてエクスポート。バイナリデータとテクスチャが別々に含まれた glTF テキストベースのファイル (
.gltfファイル +.binファイル + テクスチャ) としてエクスポート。
glTF binary files (.glb) are the smaller option. They include the mesh and
textures set up in Blender. When brought into Godot the textures are part of the
object's material file.
テクスチャを分離してglTFを使用する理由は2つあります。 1つ目はシーン記述はテキストベース形式にして、バイナリデータは別のバイナリファイルで持つことです。これはテキストベース形式の変更をバージョン管理で確認する場合に役立ちます。 2つ目はマテリアルファイルとは別のテクスチャファイルが必要です。どちらも必要ない場合は、glTFバイナリ ファイルで十分です。
glTF インポートプロセスでは、まず glTF ファイルのデータをメモリ内の GLTFState クラスに読み込みます。次にこのデータを使用して Godot シーンが生成されます。実行時にファイルをインポートすると、このシーンをツリーに直接追加できます。エクスポートプロセスはこれと逆で、Godot シーンが GLTFState クラスに変換され、そこから glTF ファイルが生成されます。
エディターで glTF ファイルをインポートする場合、さらに2つの手順があります。Godot シーンを生成した後、ResourceImporterScene クラスを使用して、インポートドックや高度なインポート設定ダイアログで設定した設定を含む追加のインポート設定を適用します。これはその後、Godot シーンファイルとして保存され、ゲームを実行/エクスポートするときに使用されます。
警告
If your model contains blend shapes (also known as "shape keys" and "morph targets"), your glTF export setting Data > Armature > Export Deformation Bones Only needs to be configured to Enabled.
とにかく変形しないボーンをエクスポートすると、シェーディングが不正確になります。
注釈
Blender 3.2 より前のバージョンでは、glTFファイルでエミッシブテクスチャをエクスポートしません。モデルでエミッシブテクスチャが使用されており、古いバージョンの Blender を使用している場合は、別途取り込む必要があります。
デフォルトでは Blender はマテリアルの背面カリングを無効にしており、Blender でのレンダリング方法に合わせてマテリアルをエクスポートします。つまり Godot のマテリアルのカリング モードは 無効 に設定されます。これにより他の面によってカリングされている場合でも背面がレンダリングされるため、パフォーマンスが低下する可能性があります。これを解決するには、Blender の [マテリアル] タブで 背面カリング を有効にしてから、シーンを再度 glTF にエクスポートします。
Godot 内で直接 .blend ファイルをインポートする
注釈
この機能を使用するには Blender 3.0 以降が必要です。できるだけ最良の結果を得るため、glTF エクスポーターの多くの修正が含まれている、Blender 3.5 以降を使用することをお勧めします。
Linux ディストリビューションパッケージや Flatpak ではなく、blender.org からダウンロードした公式 Blender リリースを使用することを 強く 推奨します。これにより非互換性やサンドボックスの制限を引き起こす可能性のある、異なるライブラリバージョンなど、パッケージ化に関連する問題を回避できます。
The editor can directly import .blend files by calling Blender's
glTF export functionality in a transparent manner.
これにより Blender でシーンを保存し、Altキーを押しながら Tabキーで Godot に戻って変更をすぐに確認できるため、3Dシーンをより速くイテレーションできます。バージョン管理で作業する場合、エクスポートされた glTF ファイルのコピーをバージョン管理にコミットする必要がなくなるため、より効率的になります。
To use .blend import, you must install Blender before opening the Godot
editor (if opening a project that already contains .blend files). If you
keep Blender installed at its default location, Godot should be able to detect
its path automatically. If this isn't the case, configure the path to the
Blender executable in the Editor Settings
(Filesystem > Import > Blender > Blender Path).
プロジェクトフォルダ内に .blend ファイルを保持し、それらを Godot でインポートしたくない場合は、高度なプロジェクト設定で ファイルシステム > インポート > Blender > 有効 をオフにします。
.blend インポートプロセスは最初に glTF に変換するため、Godot の glTF インポート処理が行われます。したがって .blend インポートプロセスは glTF インポートプロセスと同じですが、最初に追加の手順があります。
注釈
チームで作業する場合、プロジェクトで .blend ファイルを使用するには、チーム メンバー全員に Blender がインストールされている必要があることに注意してください。Blender は無料でダウンロードできますが、プロジェクトで作業するときに手間がかかる可能性があります。また、Android および Webエディターでは外部プログラムを呼び出すことができないため、.blend インポートは利用できません。
これが問題になる場合は、代わりに Blender からエクスポートされた glTF シーンの使用を検討してください。
BlenderからDAEファイルをエクスポートする
BlenderにはCOLLADAサポートが組み込まれていますが、ゲームエンジンのニーズでは適切に機能しないため、そのままでは使用しないでください。ただし組み込みの Collada サポートを使用してエクスポートされたシーンは、アニメーションのない単純なシーンでは引き続き機能する可能性があります。
For complex scenes or scenes that contain animations it is highly recommend to use glTF instead.
Godot にOBJファイルをインポートする
OBJ は最もシンプルな3D形式の1つなので、Godot はほとんどのOBJファイルを正常にインポートできるはずです。ただし OBJ は非常に制限されたフォーマットでもあります。スキニング、アニメーション、UV2、PBR マテリアルはサポートされていません。
Godot でOBJメッシュを使用する方法は 2 つあります:
MeshInstance3Dノード、またはメッシュとして期待されるその他のプロパティ (GPUParticles3D など) に直接ロードします。これがデフォルトのモードです。
インポートドックでインポートモードを OBJ as Scene に変更し、エディターを再起動します。これによりインポート時に UV2 をアンラップするなど、glTF または Collada シーンと同じインポートオプションを使用できるようになります (Using Lightmap global illumination の場合)。
注釈
Blender 3.4 and later can export RGB vertex colors in OBJ files (this is a nonstandard extension of the OBJ format). Godot is able to import those vertex colors, but they will not be displayed on the material unless you enable Vertex Color > Use As Albedo on the material.
OBJメッシュの頂点カラーは、インポートされると元のカラースペース (sRGB/リニア) が維持されますが、明るさは 1.0 に固定されます (明るすぎることはできません)。
Godot にFBXファイルをインポートする
デフォルトでは、Godot 4.3 以降のGodotプロジェクトに追加されたFBXファイルはすべて、ufbx インポートメソッドを使用します。4.2 などの以前のバージョンでプロジェクトに追加されたファイルは、そのファイルのインポート設定に移動してインポーターを ufbx に変更しない限り、引き続き FBX2glTF メソッドでインポートされます。
プロジェクトフォルダ内に .fbx ファイルを保持し、それらを Godot でインポートしたくない場合は、高度なプロジェクト設定で ファイルシステム > インポート > FBX > 有効 をオフにします。
FBX2glTFワークフローを設定する場合は、特別な理由がない限り通常は推奨されませんが、FBX2glTF 実行ファイルをダウンロードし、ファイルシステム > インポート > FBX > FBX2glTFPath のエディター設定でその実行ファイルへのパスを指定する必要があります
FBX2glTF インポートプロセスでは、まず glTF に変換するため、Godot の glTF インポートコードが引き続き使用されます。したがって、FBX インポートプロセスは glTF インポート プロセスと同じですが、最初に追加の手順があります。
参考
Godot で FBX2glTF を使用するための完全なインストールプロセスについては、Godot Web サイトの FBXインポートページ で説明されています。