2020/11/11(水) [n年前の日記]
#1 [blender][godot] Godot Engine に3Dモデルをインポートする実験をしていたり
blender 2.83.8 LTS x64 でエクスポートした背景モデルを Godot Engine 3.2.3 x64 でインポートして内容を確認中。
◎ glTFでエクスポート。 :
glTF 2.0 (.glb)でエクスポートしたモデルデータを Godot Engine でインポートした際、blender上でリンク複製したオブジェクトはどういう扱いになるのか疑問が湧いて確認してみたけれど、一応 Mesh は同じものが使われているっぽい。各ノードの名前は違っているけれど、Meshプロパティに表示されているモデルのサムネイル画像をクリックして内容を確認したところ、それぞれ同名の Mesh が使われているように見えた。ちゃんと使い回しをしてくれているっぽいなと。
ちなみに、テクスチャもちゃんと反映されてる。.glb でエクスポートすれば、1ファイルの中に画像ファイルも含まれる模様。
ちなみに、テクスチャもちゃんと反映されてる。.glb でエクスポートすれば、1ファイルの中に画像ファイルも含まれる模様。
◎ ESCNでエクスポート。 :
ESCN (.escn) でエクスポート・インポートも試してみた。blender 2.83 にアドオンを追加、かつ、有効化する必要がある。
_godotengine/godot-blender-exporter: Addon for Blender to directly export to a Godot Scene
io_scene_godotフォルダを、blender 2.83 のユーザフォルダに ―― Windowsの場合は以下の場所にコピーする。
使う時は、ファイル → エクスポート → 「Godot Engine (.escn)」を選択。
初回操作時はGodot Engine上でテクスチャが反映されなかった…。エクスポート時の設定で以下をアレコレ試してみたら、何かの拍子にテクスチャ画像(hoge.png.001.png)もコピーされて Godot Engine上でもテクスチャが表示される状態になった。
しかし Material Mode を「Spatial Material」にすると今度はテクスチャが表示されない。
以前試した際はアニメーションについてはイイ感じにインポートできていたのだけど、その時はテクスチャを使ってなかったから不備(?)に気づかなかったのだな…。
_godotengine/godot-blender-exporter: Addon for Blender to directly export to a Godot Scene
io_scene_godotフォルダを、blender 2.83 のユーザフォルダに ―― Windowsの場合は以下の場所にコピーする。
C:\Users\<USERNAME>\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\コピーしたら blender を起動して、編集 → プリファレンス → アドオン → 検索欄に「godot」と打ち込んで絞り込み検索。「Import-Export: Godot Engine Exporter」にチェックを入れて有効化。
使う時は、ファイル → エクスポート → 「Godot Engine (.escn)」を選択。
初回操作時はGodot Engine上でテクスチャが反映されなかった…。エクスポート時の設定で以下をアレコレ試してみたら、何かの拍子にテクスチャ画像(hoge.png.001.png)もコピーされて Godot Engine上でもテクスチャが表示される状態になった。
- Material Mode を「Script Shader Material」にしたり。
- Generate External Material のチェックを入れたり入れなかったり。
- Material Search Paths を「Project Directory」にし直したり。
しかし Material Mode を「Spatial Material」にすると今度はテクスチャが表示されない。
以前試した際はアニメーションについてはイイ感じにインポートできていたのだけど、その時はテクスチャを使ってなかったから不備(?)に気づかなかったのだな…。
◎ COLLADAでエクスポート。 :
COLLADA (.dae) でエクスポート・インポートを試してみた。
blender の標準アドオンは不具合が出るという話を見かけたので、以下のアドオンを利用した…と思ったけれど、どれだったかな…。おそらく、2.83にも対応と書いてあった sburris0版を使ったような気がする。io_scene_dae/ と godot_export_manager.py を blender 2.83 のユーザフォルダにコピーして使う。
_sburris0/collada-exporter-2.8: "Better" Collada exporter for Blender, orignally developed by the Godot Engine community UPDATED FOR 2.83+
_HungryProton/collada-exporter-2.8: "Better" Collada exporter for Blender, orignally developed by the Godot Engine community
_artellblender/collada-exporter-2.8: "Better" Collada exporter for Blender, orignally developed by the Godot Engine community
blender 2.7x用は以下。
_godotengine/collada-exporter: "Better" Collada exporter for Blender, orignally developed by the Godot Engine community
blender を起動して、編集 → プリファレンス → アドオン → 「godot」で検索して、「Import-Export: Godot Export Manager」にチェックを入れて有効化。
使う時は、ファイル → エクスポート → 「Better Collada (.dae)」を選択。ちなみに標準アドオン版は「Collada (デフォルト) (.dae)」と表示されてる。
とりあえず、glTF 2.0 と同様にテクスチャは反映された。また、リンク複製したオブジェクトについても Mesh の使い回しをしてくれていた。
ただ、テクスチャ画像ファイルも Godot Engine プロジェクトフォルダ内に別途コピーしてやらないといけないので、形状を取り込みたいだけなら glTF 2.0 (.glb) を使ったほうが1ファイルで済む分楽かもしれない。
何にせよ、blender上でリンク複製したオブジェクトまで個別の Mesh に逐一変換されているわけではなさそうだなと。最悪の場合 Godot Engine上でノードの複製と再配置をやり直さないとダメかなと不安だったけど杞憂に終わった。リンク複製については安心して使えそう。
blender の標準アドオンは不具合が出るという話を見かけたので、以下のアドオンを利用した…と思ったけれど、どれだったかな…。おそらく、2.83にも対応と書いてあった sburris0版を使ったような気がする。io_scene_dae/ と godot_export_manager.py を blender 2.83 のユーザフォルダにコピーして使う。
_sburris0/collada-exporter-2.8: "Better" Collada exporter for Blender, orignally developed by the Godot Engine community UPDATED FOR 2.83+
_HungryProton/collada-exporter-2.8: "Better" Collada exporter for Blender, orignally developed by the Godot Engine community
_artellblender/collada-exporter-2.8: "Better" Collada exporter for Blender, orignally developed by the Godot Engine community
blender 2.7x用は以下。
_godotengine/collada-exporter: "Better" Collada exporter for Blender, orignally developed by the Godot Engine community
blender を起動して、編集 → プリファレンス → アドオン → 「godot」で検索して、「Import-Export: Godot Export Manager」にチェックを入れて有効化。
使う時は、ファイル → エクスポート → 「Better Collada (.dae)」を選択。ちなみに標準アドオン版は「Collada (デフォルト) (.dae)」と表示されてる。
とりあえず、glTF 2.0 と同様にテクスチャは反映された。また、リンク複製したオブジェクトについても Mesh の使い回しをしてくれていた。
ただ、テクスチャ画像ファイルも Godot Engine プロジェクトフォルダ内に別途コピーしてやらないといけないので、形状を取り込みたいだけなら glTF 2.0 (.glb) を使ったほうが1ファイルで済む分楽かもしれない。
何にせよ、blender上でリンク複製したオブジェクトまで個別の Mesh に逐一変換されているわけではなさそうだなと。最悪の場合 Godot Engine上でノードの複製と再配置をやり直さないとダメかなと不安だったけど杞憂に終わった。リンク複製については安心して使えそう。
[ ツッコむ ]
以上です。