【Godot】「シーン」と「ノード」の基本を徹底解説

作成: 2025-12-06

Godotでゲーム制作を始める際に最初に学ぶべき「シーン」と「ノード」の関係性を解説

概要

Godot Engineでゲーム制作を始めるにあたり、誰もが最初に学ぶべき最も重要な概念が「シーン (Scene)」と「ノード (Node)」です。この2つの関係性を理解することが、Godotを使いこなすための鍵となります。

ノードとは? - ゲームを構成する「部品」

ノードは、Godotにおけるゲームの基本的な構成要素、つまり「部品」です。例えるなら、料理の「材料」や、家の「木材」のようなものです。

それぞれのノードは、特定の機能を持っています。

  • Sprite2D: 画像を表示するノード
  • AudioStreamPlayer: 音を再生するノード
  • CollisionShape2D: 物理的な衝突範囲(当たり判定)を定義するノード
  • Button: クリック可能なボタンをUIに表示するノード
  • Camera2D: 2Dゲーム内のカメラの動きを制御するノード

これらのノードは単体では単純な機能しか持ちませんが、これらを組み合わせることで、複雑なキャラクターやゲームシステムを作り上げていきます。

シーンとは? - 部品を組み立てた「設計図」

シーンは、ノードを階層的に組み合わせたものです。具体的には、1つの「ルートノード」と、それに連なる複数の「子ノード」で構成されるツリー構造をしています。

このノードの集まりが「シーン」であり、ゲーム内のキャラクター、レベル、UI画面といった、あらゆる要素を表現します。

具体例:2Dゲームの「プレイヤー」シーン

例えば、「プレイヤー」というシーンを作る場合、以下のようなノードの組み合わせが考えられます。

  • CharacterBody2D(ルートノード): プレイヤーの移動や物理的な挙動を管理するノード
  • Sprite2D(子ノード): プレイヤーの見た目(画像)を表示
  • CollisionShape2D(子ノード): 他のオブジェクトとの当たり判定の形状を定義
  • Camera2D(子ノード): プレイヤーを追従するカメラとして機能

このように、複数のノード(部品)を組み合わせて一つのまとまりにしたものが「シーン」です。作成したシーンは、.tscnという拡張子のファイルとして保存されます。

シーンのインスタンス化 - シーンを「入れ子」にする

Godotの非常に強力な特徴の一つが、作成したシーンを、別のシーンの部品(ノード)として再利用できることです。これを「シーンのインスタンス化」と呼びます。

具体例:「ステージ」シーンに「プレイヤー」を配置する

先ほど作成した「プレイヤー」シーン(player.tscn)を、「ステージ1」という別のシーンに配置してみましょう。

「ステージ1」シーンは、以下のような構成になっているとします。

  • Node2D(ルートノード): ステージ全体の基準点
  • TileMap(子ノード): 地形や背景タイルを表示
  • Player(インスタンス化されたシーン): 先ほど作ったプレイヤーシーンをここに配置
  • Enemy(インスタンス化されたシーン): 別途作成した敵キャラシーンを配置

インスタンス化のメリット

  • 再利用性: 一度作った「プレイヤー」シーンを、「ステージ1」「ステージ2」「ボス戦」など、様々な場所で簡単に使い回せる
  • 管理のしやすさ: プレイヤーの移動速度を変更したい場合、「プレイヤー」シーン(player.tscn)を編集するだけで、そのプレイヤーが配置されている全てのステージに修正が反映される
  • カプセル化: シーンの内部構造(どんなノードで出来ているか)を意識することなく、一つの部品として扱えるため、大規模なゲームでも整理しやすくなる

まとめ

  • ノード: ゲームを構成する最小単位の「部品」。それぞれが特定の機能を持つ
  • シーン: ノードをツリー状に組み立てた「設計図」。キャラクターやステージなど、ゲームの具体的な要素を構成する
  • インスタンス化: 作成したシーンを、別のシーンの「部品」として再利用すること

Godotでのゲーム開発は、「ノード」を組み合わせて「シーン」を作り、さらにその「シーン」を組み合わせてより大きな「シーン(ゲーム全体)」を構築していく、という流れになります。