GodotでGLBファイルをインポートする方法


Godot Engine バージョン4.3

このチュートリアルでは、Godot 4.3でGLBファイル(3Dモデル)をインポートしてシーンに配置する基本的な方法を解説します。GLBファイルは3Dアセットの標準形式の1つで、モデル、マテリアル、アニメーションを一つのファイルで管理できます。



1. GLBファイルの準備

GLBファイルをプロジェクトにインポート:
  • 自分で作成した3Dモデルを使用するか、オンラインで入手します。
ファイルをGodotプロジェクトに配置:
  • ダウンロードしたGLBファイルをGodotプロジェクトのres://assets/models/フォルダに移動します。
ファイルをGodotプロジェクトに配置:
ダウンロードしたGLBファイルをGodotプロジェクトのres://assets/models/フォルダに移動します。
res://
├─ assets/
│ ├─ models/
│ │ ├─ example_model.glb



2. Godotへのインポート

GLBファイルをプロジェクトにインポート:
  • ファイルシステム(FileSystem)パネルに移動。
  • example_model.glbを確認します。Godotは自動的にインポートを行います。
インポート設定の確認:
  • GLBファイルを右クリックし、Importタブを選択。
  • 必要に応じて以下の設定を変更します:
  • Presets: Defaultで問題ありません。
  • Materials: 自動でインポートされたマテリアルを確認。
  • Animations: アニメーションが含まれている場合、このオプションを有効にします。
  • 設定後、Reimportをクリック。



3. GLBファイルをシーンに追加

新しいシーンを作成:
  • ルートノードとしてNode3Dを設定。
GLBファイルをシーンにドラッグ&ドロップ:
  • ファイルシステムパネルからGLBファイルをNode3Dにドラッグ&ドロップします。
  • GLBファイル内のモデル、マテリアル、アニメーションが自動で展開されます。
モデルの確認:
  • シーンビューでモデルの外観を確認し、必要に応じてモデルのスケールや位置を調整します。



4. スクリプトでGLBファイルを読み込む

GLBファイルを動的にロードする場合、以下のコードを使用します:
extends Node3D

@export var glb_file: PackedScene

func _ready():
if glb_file:
var instance = glb_file.instantiate()
add_child(instance)
instance.translation = Vector3(0, 0, 0)
使い方:
  • glb_fileプロパティにGLBファイルをドラッグ&ドロップします。
  • 実行時にモデルがロードされます。



5. アニメーションの再生

GLBファイルにアニメーションが含まれている場合、AnimationPlayerまたはAnimationTreeを使用して再生できます:
AnimationPlayerの追加:
  • GLBモデルの子ノードとしてAnimationPlayerを追加。
  • インポートされたアニメーションをAnimationPlayerに割り当てます。
アニメーションの再生:gdscriptコードをコピーする
extends Node3D

func _ready():
$AnimationPlayer.play("animation_name")



6. 照明とカメラの設定

モデルをより見栄え良く表示するために、以下をシーンに追加します:
  • DirectionalLight3D: 全体を照らす光源。
  • Camera3D: モデルを表示するためのカメラ。
  • カメラをモデルに向けて配置し、プレビューを確認します。



7. 物理的な相互作用を追加(オプション)

GLBファイルにコリジョンを追加して、物理的な相互作用を可能にします:
  • StaticBody3DまたはRigidBody3Dをモデルの親ノードに設定。
  • CollisionShape3Dを子ノードに追加。
  • 適切な形状(Box、Sphere、Convex)を設定してコリジョンを調整します。



8. 完成!

これで、Godot 4.3でGLBファイルをインポートしてシーンに配置する基本的な流れが完成です。あとはゲームに合わせてGLBモデルを活用しましょう。

最終更新日: 2024/12/26 04:37

コメント