MF Blogs Tools
GodotのノードツリーとUnrealのアクター構造を対比した抽象イメージ

Article

GodotをUnreal経験者向けに理解するための用語変換表

Unreal Engine経験者がGodotを学ぶときに役立つ用語対応表です。Node、Scene、SignalなどGodotの主要概念が、UnrealのActor、Component、Blueprintのどれに近いのかを注釈付きで整理しました。

0:00 0:00

This article is not published in this language yet, so the Japanese version is shown instead.

これからGodotを学ぶとき、すでにUnreal Engineの経験があるなら、Godotの各仕組みがUnrealでいう何に近いのかを把握しておくと理解が早くなります。

ただし、GodotとUnrealは設計思想がかなり違います。特に重要なのは、Godotは 「Scene = Nodeツリーを保存・再利用できる単位」 であるのに対し、Unrealは Level / Actor / Component を中心に組み立てる点です。

そのため、以下の表は「完全な一対一対応」ではなく、Unreal経験者がGodotを理解するための近い概念の対応表 として見てください。

GodotのNodeツリーとUnrealのActor構造の違いを並べた図

まず覚えるべき最重要対応表

GodotUnrealで近いもの注釈
NodeActor Component / Scene Component / 一部ActorGodotの最小構成単位です。表示、音、カメラ、物理などもNodeとして扱います。UnrealのActorより細かい粒度で、Componentに近いことも多いです。厳密には、GodotではNode自体がツリー上に直接並び、Nodeが子Nodeを持つのに対し、Unrealでは基本的にActorがワールド上の単位で、その中にComponentを持ちます。
SceneBlueprint Class / Prefab / Actor Blueprint / Levelの一部GodotのSceneは「Nodeツリーを保存したもの」です。キャラクター、弾、UI、ステージ、ゲーム全体など何でもSceneにできます。厳密にはUnrealのLevelともBlueprintとも完全一致しません。Godotでは小さな部品も大きな画面全体もSceneとして扱えるのが特徴です。
Main SceneDefault Map / 起動Levelゲーム開始時に最初に読み込まれるSceneです。厳密にはUnrealのMapほど“世界そのもの”に限定されず、ルートNode配下にUIやゲーム管理Nodeを置く構成もよくあります。
Scene TreeWorld Outliner + Actor階層に近い実行中のNode階層です。UnrealのWorld Outlinerを見る感覚に近いです。厳密にはGodotではScene Treeが実行時のオブジェクト構造そのもので、Nodeの親子関係が処理や座標にも強く影響します。
Root NodeActorのRoot Component / Level内の親Actorに近いSceneの一番上のNodeです。厳密にはUnrealのRoot Componentより広い概念で、2DならNode2D、3DならNode3D、UIならControlなど、Scene全体の性格を決めます。
Instancing SceneSpawn Actor from Class / Blueprintを配置.tscnなどのSceneを実行時またはエディタ上で複製して使うことです。厳密にはUnrealのActorスポーンに近いですが、GodotではSceneがネスト可能で、Sceneの中に別Sceneを子として入れる設計が非常に一般的です。

オブジェクト・クラスまわり

GodotUnrealで近いもの注釈
Node2D2D用Actor / Scene Component2D座標を持つNodeの基底です。厳密にはUnrealのPaper2D Actorというより、2D空間用の基底Nodeです。
Node3DActor / Scene Component3D座標、回転、スケールを持つNodeの基底です。UnrealのActorに似ていますが、GodotではNode3D自体も子Nodeとして組み込まれるため、Component的にも使います。
Sprite2DPaperSpriteComponent2D画像表示用のNodeです。厳密にはActorではなく表示Nodeなので、移動ロジックは親Node2Dやスクリプト側に持たせることが多いです。
MeshInstance3DStaticMeshComponent / SkeletalMeshComponentの一部3Dメッシュ表示用のNodeです。厳密にはStatic/Skeletalの分かれ方やアニメーションの扱いがUnrealとは異なります。GodotではMeshInstance3D、Skeleton3D、AnimationPlayerなどを組み合わせます。
CharacterBody2D / CharacterBody3DCharacter / Pawnプレイヤーや敵など、自前で移動制御するキャラクター用のNodeです。厳密にはUnrealのCharacterMovementComponentほど高機能な標準移動システムではなくmove_and_slide()などを使って自分で挙動を書く感覚が強いです。
RigidBody2D / RigidBody3DPhysics-simulated Actor / PrimitiveComponent with Simulate Physics物理演算で動く物体です。厳密にはUnrealのActorではなく、物理挙動を持つNodeです。スクリプトで直接Transformをいじりすぎると物理と衝突しやすい点はUnrealと似ています。
StaticBody2D / StaticBody3DStatic Mesh Actor with collision / WorldStatic動かない床や壁に使います。厳密には表示は別Nodeで持つことが多く、StaticBodyは衝突の本体という位置づけです。
Area2D / Area3DTrigger Volume / Overlap Component範囲検知、接触判定、ダメージエリアなどに使います。厳密にはUnrealのTrigger Actorより軽く、Nodeとして任意のSceneに組み込む感覚です。
CollisionShape2D / CollisionShape3DCollision Component衝突形状です。厳密には単独で物理オブジェクトになるわけではなく、AreaやBody系Nodeの子として使います。

Blueprint / スクリプト / ロジック

GodotUnrealで近いもの注釈
GDScriptBlueprint + C++の中間的なスクリプトGodot標準のスクリプト言語です。Python風で軽く、エンジンとの相性が良いです。厳密にはビジュアルスクリプトではなくテキストコードです。Blueprint感覚で素早くロジックを書く用途に近いです。
C# in GodotUnreal C++に近い開発体験の一部GodotではGDScriptに加えてC#も使えます。ただし、C#を使うには.NET版のGodotエディタが必要です。厳密にはUnreal C++のようにエンジン本体と密接に統合された主流ワークフローではなく、GodotではGDScriptの情報量が多いです。
ScriptをNodeにAttachBlueprint Classにスクリプトを書く / ActorにC++クラスを割り当てるNodeにスクリプトを付けて振る舞いを定義します。厳密にはUnrealのActorクラス継承より柔軟で、どのNodeにもスクリプトを付けられる感覚です。
_ready()BeginPlayNodeがScene Treeに入って準備完了したときに呼ばれます。厳密には親子Nodeの初期化順やScene Treeへの参加タイミングが絡むため、BeginPlayと完全同一ではありません。
_process(delta)Tick毎フレーム処理です。厳密にはUnrealのTickと同じ感覚で使えますが、Godotでは必要なNodeだけに書く設計が多いです。
_physics_process(delta)Physics Tick / Fixed Tick物理フレームごとの処理です。キャラクター移動や物理系はこちらに書くことが多いです。厳密には描画フレームとは別周期なので、UnrealのTickより固定更新に近いです。
SignalEvent Dispatcher / DelegateNode間のイベント通知です。ボタン押下、Area侵入、独自イベントなどで使います。厳密にはBlueprintのEvent Dispatcherにかなり近いですが、GodotではNode間の疎結合通信の中心的手段として頻出します。
GroupActor Tag / Gameplay Tagの簡易版Nodeにグループ名を付けて一括取得・一括呼び出しできます。厳密にはUnrealのGameplay Tagほど体系的なタグシステムではなく、軽量な分類・ブロードキャスト用途です。
Autoload / SingletonGameInstance / Subsystem / Singleton Managerグローバルにアクセスできる常駐NodeまたはScriptです。厳密にはGameInstanceのような専用ライフサイクルクラスではなく手軽に使える反面、使いすぎると依存が散らばります。GodotのAutoloadはシングルトンのように使えますが、完全にインスタンス生成を禁止する仕組みではありません。

Level / Map / ゲーム進行

GodotUnrealで近いもの注釈
Scene切り替えOpen Levelchange_scene_to_file()などで別Sceneへ移動します。厳密にはGodotのSceneはLevelだけでなくUIやキャラクターにも使うため、“Scene切り替え = Level遷移”とは限りません
PackedSceneBlueprint Class / Class Reference保存済みSceneを読み込んでインスタンス化するためのリソースです。厳密にはClassというより、Nodeツリーのテンプレートです。
ResourceData Asset / UObject assetデータを保存・共有するアセットです。ステータス、設定、アイテム定義などに使えます。厳密にはUnrealのData Assetにかなり近いですが、GodotではMaterial、Mesh、TextureなどもResource系です。
Project SettingsProject Settingsこれはほぼそのまま対応します。ただしGodotではInput Map、Autoload、レンダリング、物理などもProject Settingsに集約されます。
Input MapProject Settings > Input / Enhanced Input Mapping Contextの一部入力アクションを定義します。厳密にはUnrealのEnhanced Inputほど大規模・階層的ではなく、シンプルなアクション名ベースの仕組みです。

Unreal特有概念との対応

UnrealGodotで近いもの注釈
ActorSceneインスタンス / Node3D / Node2DGodotでは「Actor」に相当する固定概念がありません。キャラクターも弾もUIもSceneとして作れます。Unreal脳では“1 Actor = 1 Scene”くらいで考えると入りやすいです。
Component子NodeUnrealのComponent構成は、Godotでは子Node構成に近いです。たとえばPlayerシーンの中にSprite、CollisionShape、Camera、AudioStreamPlayerを入れるような感覚です。厳密にはGodotの子NodeはComponent専用ではなく、単独でロジックや子孫を持てます
BlueprintScene + Script + Inspector設定GodotでBlueprintに一番近いのは「SceneにNodeを組み、Scriptを付け、Export変数をInspectorで調整する」流れです。厳密にはGodotにBlueprintのような標準ビジュアルスクリプト中心の開発体験はありません
Level / Map画面・ステージ用Sceneステージ全体を1つのSceneにすることが多いです。厳密にはGodotのSceneはもっと汎用的なので、Level専用概念ではありません。
GameModeMain Scene内の管理Node / Autoloadルール管理、開始処理、スポーン管理などは管理NodeやAutoloadで作ることが多いです。GodotにはGameModeという標準クラスはないので、自作する感覚です。
GameInstanceAutoloadシーンをまたいで残るグローバル状態です。厳密にはGameInstanceのような専用ライフサイクルクラスではなく、ルートに常駐するNode/Scriptです。
PawnCharacterBody / Node3D Scene操作対象です。厳密にはGodotにControllerとPawnの分離思想は標準では薄いです。必要なら自分でInput担当Nodeとキャラクター本体を分けます。
PlayerController入力管理Script / Autoload / Player NodeのScript入力を受けてキャラクターを操作する部分です。厳密にはGodotではPlayerController専用クラスがなく、入力処理をどこに置くかは設計次第です。
HUD / UMG WidgetControl系Node / UI SceneGodotのUIはControl Nodeで作ります。厳密にはUMG Widget Blueprintに近いのは、ControlをRootにしたUI Sceneです。
MaterialMaterial / ShaderMaterial名前も役割も近いです。厳密にはUnrealのMaterial Editorほど巨大なノードベース環境ではなく、GodotではShaderMaterialとGodot Shader Languageで書く場面も多いです。
NiagaraGPUParticles2D / GPUParticles3Dパーティクル表現に使います。厳密にはNiagaraほど大規模なVFXプログラミング環境ではないです。高度なVFXは自作Shaderや外部ツール併用になることがあります。
Animation BlueprintAnimationTree / AnimationPlayerアニメーション状態管理です。厳密にはUnrealのAnimBPほどキャラクター専用に統合された仕組みではなく、GodotではAnimationPlayerで汎用的にプロパティを動かし、AnimationTreeで状態遷移を組みます。

ファイル・アセット感覚

GodotUnrealで近いもの注釈
.tscnBlueprint asset / Level assetに近いテキスト形式のSceneファイルです。厳密には中身はNodeツリーの保存データです。Git管理しやすいのが利点です。
.gd.cpp/.hまたはBlueprint Graphのロジック部分GDScriptファイルです。厳密にはBlueprintのようにアセット内に閉じるのではなく、外部スクリプトファイルとしてNodeにAttachします。
.tres / .resData Asset / Material / AssetResourceファイルです。.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らしい作り方がしやすくなります。