mieki256's diary



2020/11/18(水) [n年前の日記]

#1 [godot] Godot Engineで3Dモデルデータをインポート

Godot Engine 3.2.3 x64 を使って3D表示の簡単なシューティングゲームっぽいものを作る。

今回は、3DCGソフト blender 2.83.9 x64 LTS で作成した飛行機(自機)や敵のモデルデータをインポートしたい。

自機のモデルデータをblenderからエクスポート。 :

blender で飛行機っぽいモデルデータを作ってみた。CC0 / Public Domain ってことで。中には blender用のファイル airplane_type_b.blend やテクスチャ画像が入っている。

_airplane_type_b_20201108.zip

Godot Engine はいくつかの3Dモデルデータフォーマットに対応しているけれど、アニメーションを含まない形状データだけなら glTF 2.0 でやり取りするのが良さそうな気がする。glTF 2.0 なら、他のフォーマットと違ってテクスチャもそのまま反映されるので。

blenderから glTF 2.0形式でエクスポートする。ファイル → エクスポート → glTF 2.0 (.glb/.gltf)を選択。

3d_tuto15_import_3dmodel_ss01.jpg


フォーマットは「glTFバイナリ (.glb)」にした。その他の設定はスクリーンショットを参考に。airplane_type_b.glb としてエクスポート。

3d_tuto15_import_3dmodel_ss02.png

Godot Engineにインポート。 :

blenderからエクスポートした .glb を、Godot Engine のエディタ画面にドラッグアンドドロップしてインポートする。

3d_tuto15_import_3dmodel_ss03.jpg


res://imports/ の下に移動した。

3d_tuto15_import_3dmodel_ss04.png

Godot Engine で開く。 :

インポートした .glb を右クリックして「シーンを開く」を選択。

3d_tuto15_import_3dmodel_ss05.png


確認ウインドウが開く。とりあえず「新規の継承」を選択。

3d_tuto15_import_3dmodel_ss06.png


Godot Engine のエディタ画面内にモデルデータが表示された。

3d_tuto15_import_3dmodel_ss07.jpg


Godot Engine のシーンとして保存しておく。res://assets/ の下に、airplane_type_b.tscn として保存した。

3d_tuto15_import_3dmodel_ss08.png

プレイヤーのモデルデータを差し替える。 :

今まで仮で表示していたプレイヤーキャラのモデルデータを差し替える。

プレイヤーのシーン、Player.tscn を開いて、新規インスタンスを読み込むボタンをクリック。airplane_type_b.tscn を開く。

3d_tuto15_import_3dmodel_ss09.png


Player の下に airplane_type_b ノードとして追加された。

3d_tuto15_import_3dmodel_ss10.jpg


PlayerModel の下にドラッグして移動して、向きや大きさを変更する。

3d_tuto15_import_3dmodel_ss11.jpg


今まで表示していた仮モデルは、目のアイコンをクリックして非表示にする。仮モデルを今後一切使わない予定なら、右クリックして「削除」してしまってもいい。

3d_tuto15_import_3dmodel_ss12.jpg


アタリ範囲を修正。CollisionShape を選択して大きさや位置を修正する。

3d_tuto15_import_3dmodel_ss13.png


シーンを保存して動作確認。Mainシーンを開いてF6キーを押す。

3d_tuto15_import_3dmodel_ss14.png

これで、プレイヤーキャラのモデルデータを、今回インポートしたモデルデータで差し替えることができた。

敵のモデルデータをblenderからエクスポート。 :

敵のモデルデータをエクスポートする。これも blender で作成した。CC0 / Public Domain ってことで。

_enemy_type_b_20201108.zip

解凍すると、blender用のファイル、enemy_type_b_fix.blend が入っている。このモデルデータは、両手がくるくると回るアニメーションデータを含んでいる。

現時点では、こういった複数のアニメーションを持っているデータに関しては、ESCN (.escn) 形式で ―― Godot Engine にとってネイティブ(?)な形式でエクスポートしておくと、比較的真っ当にアニメーションのデータをエクスポート・インポートできるらしい。

blender から ESCN形式でエクスポートするためにはアドオンのインストールと有効化が必要になる。該当アドオンはgithub上で公開されてる。

_godotengine/godot-blender-exporter: Addon for Blender to directly export to a Godot Scene

  • 上記ページ内の、「Code」と書かれた緑色のボタンをクリック → 「Download ZIP」を選択。godot-blender-exporter-master.zip がダウンロードできる。
  • 解凍して、io_scene_godot というフォルダを blender のユーザ設定フォルダにコピーすればインストールできる。

blenderのユーザ設定フォルダは、Windows環境ならおそらく以下にあるはず。
C:\Users\<ユーザアカウント名>\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\

io_scene_godotフォルダをコピーしたらアドオンを有効化する。
  • blender を起動して、編集 → プリファレンス → アドオン。
  • 検索欄に「godot」と打ち込めば「Import-Export: Godot Engine Exporter」がリストアップされる。
  • チェックを入れて有効化。
これで、このアドオンが使えるようになった。

敵のモデルデータを blender からエクスポートする。ファイル → エクスポート → Godot Engine (.escn) を選択。

3d_tuto15_import_3dmodel_ss15.jpg


保存先フォルダは、Godot Engine のプロジェクトフォルダ\imports\ を指定しておく。その他の設定はスクリーンショットを参考に。enemy_type_b_fix.escn というファイル名で保存した。

3d_tuto15_import_3dmodel_ss16.jpg

Godot Engineで敵のモデルデータを開く。 :

Godot Engine で敵のモデルデータを開く。enemy_type_b_fix.escn をダブルクリック。

3d_tuto15_import_3dmodel_ss17.png


Godot Engine のエディタ画面内に、敵のモデルデータが表示された。

3d_tuto15_import_3dmodel_ss18.png


Godot Engine のシーンファイルとして保存しておく。res://assets/ の下に enemy_type_b_fix.tscn として保存した。

3d_tuto15_import_3dmodel_ss19.png

アニメーション設定を修正。 :

この敵のモデルデータはアニメーションデータを持っているけど、発生と同時にアニメーションを再生したり、アニメーションをループさせたりしたい。そのために少しだけ設定をし直す。

設定を変更するために、継承をクリアしておく。enemy_type_b_fix を右クリックして「継承をクリア」。

3d_tuto15_import_3dmodel_ss20.png


アニメーションを管理しているノード、AnimationPlayer を選択して、自動再生とループ再生のアイコンをクリックして有効にしておく。

3d_tuto15_import_3dmodel_ss21.png


この状態で、enemy_type_b_fix.tscn を一旦保存。

敵のモデルデータを差し替える。 :

敵のモデルデータを差し替える。res://assets/EnemyZako.tscn を開く。インスタンス追加アイコンをクリック。enemy_type_b_fix.tscn を開く。

3d_tuto15_import_3dmodel_ss22.png


enemy_type_b_fix.tscn が表示された。

3d_tuto15_import_3dmodel_ss23.png


  • enemy_type_b_fix の位置、大きさ、向きを調整。
  • enemy_type_b_fixノードを EnemyZakoModel の下に配置。
  • 今まで表示していた仮モデルは非表示にする。
  • CollisionShape を選択してアタリ範囲を修正。

3d_tuto15_import_3dmodel_ss24.png


Mainシーンを開いて、F6キーを押して動作確認。

3d_tuto15_import_3dmodel_ss25.png

これで、敵のモデルデータも差し替えることができた。

位置や大きさについては、なんとなくイイ感じの見た目になるように、その都度修正のこと。

次回は、背景についてもモデルデータを差し替えたい。

以上です。

過去ログ表示

Prev - 2020/11 - Next
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project