0:00 0:00
記事
GodotをUnreal経験者向けに理解するための用語変換表
Unreal Engine経験者がGodotを学ぶときに役立つ用語対応表です。Node、Scene、SignalなどGodotの主要概念が、UnrealのActor、Component、Blueprintのどれに近いのかを注釈付きで整理しました。
これからGodotを学ぶとき、すでにUnreal Engineの経験があるなら、Godotの各仕組みがUnrealでいう何に近いのかを把握しておくと理解が早くなります。
ただし、GodotとUnrealは設計思想がかなり違います。特に重要なのは、Godotは 「Scene = Nodeツリーを保存・再利用できる単位」 であるのに対し、Unrealは Level / Actor / Component を中心に組み立てる点です。
そのため、以下の表は「完全な一対一対応」ではなく、Unreal経験者がGodotを理解するための近い概念の対応表 として見てください。
まず覚えるべき最重要対応表
| Godot | Unrealで近いもの | 注釈 |
|---|---|---|
| Node | Actor Component / Scene Component / 一部Actor | Godotの最小構成単位です。表示、音、カメラ、物理などもNodeとして扱います。UnrealのActorより細かい粒度で、Componentに近いことも多いです。厳密には、GodotではNode自体がツリー上に直接並び、Nodeが子Nodeを持つのに対し、Unrealでは基本的にActorがワールド上の単位で、その中にComponentを持ちます。 |
| Scene | Blueprint Class / Prefab / Actor Blueprint / Levelの一部 | GodotのSceneは「Nodeツリーを保存したもの」です。キャラクター、弾、UI、ステージ、ゲーム全体など何でもSceneにできます。厳密にはUnrealのLevelともBlueprintとも完全一致しません。Godotでは小さな部品も大きな画面全体もSceneとして扱えるのが特徴です。 |
| Main Scene | Default Map / 起動Level | ゲーム開始時に最初に読み込まれるSceneです。厳密にはUnrealのMapほど“世界そのもの”に限定されず、ルートNode配下にUIやゲーム管理Nodeを置く構成もよくあります。 |
| Scene Tree | World Outliner + Actor階層に近い | 実行中のNode階層です。UnrealのWorld Outlinerを見る感覚に近いです。厳密にはGodotではScene Treeが実行時のオブジェクト構造そのもので、Nodeの親子関係が処理や座標にも強く影響します。 |
| Root Node | ActorのRoot Component / Level内の親Actorに近い | Sceneの一番上のNodeです。厳密にはUnrealのRoot Componentより広い概念で、2DならNode2D、3DならNode3D、UIならControlなど、Scene全体の性格を決めます。 |
| Instancing Scene | Spawn Actor from Class / Blueprintを配置 | .tscnなどのSceneを実行時またはエディタ上で複製して使うことです。厳密にはUnrealのActorスポーンに近いですが、GodotではSceneがネスト可能で、Sceneの中に別Sceneを子として入れる設計が非常に一般的です。 |
オブジェクト・クラスまわり
| Godot | Unrealで近いもの | 注釈 |
|---|---|---|
| Node2D | 2D用Actor / Scene Component | 2D座標を持つNodeの基底です。厳密にはUnrealのPaper2D Actorというより、2D空間用の基底Nodeです。 |
| Node3D | Actor / Scene Component | 3D座標、回転、スケールを持つNodeの基底です。UnrealのActorに似ていますが、GodotではNode3D自体も子Nodeとして組み込まれるため、Component的にも使います。 |
| Sprite2D | PaperSpriteComponent | 2D画像表示用のNodeです。厳密にはActorではなく表示Nodeなので、移動ロジックは親Node2Dやスクリプト側に持たせることが多いです。 |
| MeshInstance3D | StaticMeshComponent / SkeletalMeshComponentの一部 | 3Dメッシュ表示用のNodeです。厳密にはStatic/Skeletalの分かれ方やアニメーションの扱いがUnrealとは異なります。GodotではMeshInstance3D、Skeleton3D、AnimationPlayerなどを組み合わせます。 |
| CharacterBody2D / CharacterBody3D | Character / Pawn | プレイヤーや敵など、自前で移動制御するキャラクター用のNodeです。厳密にはUnrealのCharacterMovementComponentほど高機能な標準移動システムではなく、move_and_slide()などを使って自分で挙動を書く感覚が強いです。 |
| RigidBody2D / RigidBody3D | Physics-simulated Actor / PrimitiveComponent with Simulate Physics | 物理演算で動く物体です。厳密にはUnrealのActorではなく、物理挙動を持つNodeです。スクリプトで直接Transformをいじりすぎると物理と衝突しやすい点はUnrealと似ています。 |
| StaticBody2D / StaticBody3D | Static Mesh Actor with collision / WorldStatic | 動かない床や壁に使います。厳密には表示は別Nodeで持つことが多く、StaticBodyは衝突の本体という位置づけです。 |
| Area2D / Area3D | Trigger Volume / Overlap Component | 範囲検知、接触判定、ダメージエリアなどに使います。厳密にはUnrealのTrigger Actorより軽く、Nodeとして任意のSceneに組み込む感覚です。 |
| CollisionShape2D / CollisionShape3D | Collision Component | 衝突形状です。厳密には単独で物理オブジェクトになるわけではなく、AreaやBody系Nodeの子として使います。 |
Blueprint / スクリプト / ロジック
| Godot | Unrealで近いもの | 注釈 |
|---|---|---|
| GDScript | Blueprint + C++の中間的なスクリプト | Godot標準のスクリプト言語です。Python風で軽く、エンジンとの相性が良いです。厳密にはビジュアルスクリプトではなくテキストコードです。Blueprint感覚で素早くロジックを書く用途に近いです。 |
| C# in Godot | Unreal C++に近い開発体験の一部 | GodotではGDScriptに加えてC#も使えます。ただし、C#を使うには.NET版のGodotエディタが必要です。厳密にはUnreal C++のようにエンジン本体と密接に統合された主流ワークフローではなく、GodotではGDScriptの情報量が多いです。 |
| ScriptをNodeにAttach | Blueprint Classにスクリプトを書く / ActorにC++クラスを割り当てる | Nodeにスクリプトを付けて振る舞いを定義します。厳密にはUnrealのActorクラス継承より柔軟で、どのNodeにもスクリプトを付けられる感覚です。 |
_ready() | BeginPlay | NodeがScene Treeに入って準備完了したときに呼ばれます。厳密には親子Nodeの初期化順やScene Treeへの参加タイミングが絡むため、BeginPlayと完全同一ではありません。 |
_process(delta) | Tick | 毎フレーム処理です。厳密にはUnrealのTickと同じ感覚で使えますが、Godotでは必要なNodeだけに書く設計が多いです。 |
_physics_process(delta) | Physics Tick / Fixed Tick | 物理フレームごとの処理です。キャラクター移動や物理系はこちらに書くことが多いです。厳密には描画フレームとは別周期なので、UnrealのTickより固定更新に近いです。 |
| Signal | Event Dispatcher / Delegate | Node間のイベント通知です。ボタン押下、Area侵入、独自イベントなどで使います。厳密にはBlueprintのEvent Dispatcherにかなり近いですが、GodotではNode間の疎結合通信の中心的手段として頻出します。 |
| Group | Actor Tag / Gameplay Tagの簡易版 | Nodeにグループ名を付けて一括取得・一括呼び出しできます。厳密にはUnrealのGameplay Tagほど体系的なタグシステムではなく、軽量な分類・ブロードキャスト用途です。 |
| Autoload / Singleton | GameInstance / Subsystem / Singleton Manager | グローバルにアクセスできる常駐NodeまたはScriptです。厳密にはGameInstanceのような専用ライフサイクルクラスではなく手軽に使える反面、使いすぎると依存が散らばります。GodotのAutoloadはシングルトンのように使えますが、完全にインスタンス生成を禁止する仕組みではありません。 |
Level / Map / ゲーム進行
| Godot | Unrealで近いもの | 注釈 |
|---|---|---|
| Scene切り替え | Open Level | change_scene_to_file()などで別Sceneへ移動します。厳密にはGodotのSceneはLevelだけでなくUIやキャラクターにも使うため、“Scene切り替え = Level遷移”とは限りません。 |
| PackedScene | Blueprint Class / Class Reference | 保存済みSceneを読み込んでインスタンス化するためのリソースです。厳密にはClassというより、Nodeツリーのテンプレートです。 |
| Resource | Data Asset / UObject asset | データを保存・共有するアセットです。ステータス、設定、アイテム定義などに使えます。厳密にはUnrealのData Assetにかなり近いですが、GodotではMaterial、Mesh、TextureなどもResource系です。 |
| Project Settings | Project Settings | これはほぼそのまま対応します。ただしGodotではInput Map、Autoload、レンダリング、物理などもProject Settingsに集約されます。 |
| Input Map | Project Settings > Input / Enhanced Input Mapping Contextの一部 | 入力アクションを定義します。厳密にはUnrealのEnhanced Inputほど大規模・階層的ではなく、シンプルなアクション名ベースの仕組みです。 |
Unreal特有概念との対応
| Unreal | Godotで近いもの | 注釈 |
|---|---|---|
| Actor | Sceneインスタンス / Node3D / Node2D | Godotでは「Actor」に相当する固定概念がありません。キャラクターも弾もUIもSceneとして作れます。Unreal脳では“1 Actor = 1 Scene”くらいで考えると入りやすいです。 |
| Component | 子Node | UnrealのComponent構成は、Godotでは子Node構成に近いです。たとえばPlayerシーンの中にSprite、CollisionShape、Camera、AudioStreamPlayerを入れるような感覚です。厳密にはGodotの子NodeはComponent専用ではなく、単独でロジックや子孫を持てます。 |
| Blueprint | Scene + Script + Inspector設定 | GodotでBlueprintに一番近いのは「SceneにNodeを組み、Scriptを付け、Export変数をInspectorで調整する」流れです。厳密にはGodotにBlueprintのような標準ビジュアルスクリプト中心の開発体験はありません。 |
| Level / Map | 画面・ステージ用Scene | ステージ全体を1つのSceneにすることが多いです。厳密にはGodotのSceneはもっと汎用的なので、Level専用概念ではありません。 |
| GameMode | Main Scene内の管理Node / Autoload | ルール管理、開始処理、スポーン管理などは管理NodeやAutoloadで作ることが多いです。GodotにはGameModeという標準クラスはないので、自作する感覚です。 |
| GameInstance | Autoload | シーンをまたいで残るグローバル状態です。厳密にはGameInstanceのような専用ライフサイクルクラスではなく、ルートに常駐するNode/Scriptです。 |
| Pawn | CharacterBody / Node3D Scene | 操作対象です。厳密にはGodotにControllerとPawnの分離思想は標準では薄いです。必要なら自分でInput担当Nodeとキャラクター本体を分けます。 |
| PlayerController | 入力管理Script / Autoload / Player NodeのScript | 入力を受けてキャラクターを操作する部分です。厳密にはGodotではPlayerController専用クラスがなく、入力処理をどこに置くかは設計次第です。 |
| HUD / UMG Widget | Control系Node / UI Scene | GodotのUIはControl Nodeで作ります。厳密にはUMG Widget Blueprintに近いのは、ControlをRootにしたUI Sceneです。 |
| Material | Material / ShaderMaterial | 名前も役割も近いです。厳密にはUnrealのMaterial Editorほど巨大なノードベース環境ではなく、GodotではShaderMaterialとGodot Shader Languageで書く場面も多いです。 |
| Niagara | GPUParticles2D / GPUParticles3D | パーティクル表現に使います。厳密にはNiagaraほど大規模なVFXプログラミング環境ではないです。高度なVFXは自作Shaderや外部ツール併用になることがあります。 |
| Animation Blueprint | AnimationTree / AnimationPlayer | アニメーション状態管理です。厳密にはUnrealのAnimBPほどキャラクター専用に統合された仕組みではなく、GodotではAnimationPlayerで汎用的にプロパティを動かし、AnimationTreeで状態遷移を組みます。 |
ファイル・アセット感覚
| Godot | Unrealで近いもの | 注釈 |
|---|---|---|
.tscn | Blueprint asset / Level assetに近い | テキスト形式のSceneファイルです。厳密には中身はNodeツリーの保存データです。Git管理しやすいのが利点です。 |
.gd | .cpp/.hまたはBlueprint Graphのロジック部分 | GDScriptファイルです。厳密にはBlueprintのようにアセット内に閉じるのではなく、外部スクリプトファイルとしてNodeにAttachします。 |
.tres / .res | Data Asset / Material / Asset | Resourceファイルです。.tresはテキスト、.resはバイナリです。厳密にはUnrealのuassetのような包括的バイナリアセットではなく、用途別Resourceを保存する形式です。 |
| Inspector Export変数 | BlueprintのEditable変数 / UPROPERTY(EditAnywhere) | @exportした変数をエディタで編集できます。厳密にはUnrealのReflection/UPROPERTYほど巨大なメタシステムではないですが、実用上はかなり似た感覚で使えます。 |
実践的な理解のコツ
Unreal経験者なら、Godotでは次のように置き換えると理解しやすいです。
Unrealの「Actor Blueprintを作る」
Godotでは、Sceneを作って、Root Nodeを決め、子Nodeを組み、ScriptをAttachする と考えると近いです。
Unrealの「ActorにComponentを追加する」
Godotでは、Scene内に子Nodeを追加する 感覚です。
Unrealの「LevelにActorを配置する」
Godotでは、ステージSceneに別Sceneをインスタンスとして配置する 感覚です。
Unrealの「GameMode / GameInstance / Controllerで全体制御」
Godotでは、Main Sceneの管理Node + Autoload + Signalで制御する と考えるとわかりやすいです。
一番重要な違い
Godotは、Unrealよりも “全部Scene、全部Node” という統一感が強いです。
Unrealでは、次のような構造で考えることが多いです。
WorldにActorがいて、ActorがComponentを持ち、GameMode / Controller / Pawn / GameInstanceが役割分担する
一方でGodotでは、次のように考えます。
SceneはNodeツリーで、SceneをSceneの中に入れ、必要なNodeにScriptを付け、Signalでつなぐ
そのため、Unreal経験者がGodotを学ぶときは、まず 「Actorを探す」のではなく「この機能はどんなNodeツリーのSceneにするか」 と考えると理解が早くなります。
まとめ
GodotとUnrealは、見た目はどちらもゲームエンジンですが、内部の考え方はかなり違います。
Unrealは Actor / Component / Level / GameMode などの役割分担がはっきりしている一方で、Godotは Scene / Node / Signal / Resource を組み合わせて柔軟に作る設計です。
最初はUnrealの概念に当てはめて理解して問題ありません。ただ、慣れてきたらGodotでは 「小さなSceneを作って、それを組み合わせる」 という発想に切り替えると、Godotらしい作り方がしやすくなります。