今回、Godotというゲームエンジンを学習します!

10分で完成する3ファイルの動く最小アプリを通してコードを検証することで、Godotの基本設計を自然に理解できます!

Godotの3つの基本概念

ノード(Node)

ノードはGodotにおける最も基本的な構成要素です。

ボタン、ラベル、画像表示など、それぞれ特定の機能を持つ部品として機能します。

すべてのノードはNodeクラスから継承されており、親子関係を形成できます。

シーン(Scene)

Godot、シーンを意味する画像

シーンは複数のノードを組み合わせて作られる構造体です。

画面やゲームオブジェクトを表現し、.tscnファイルとして保存されます。

シーン自体も一つのノードとして他のシーンから利用できるため、再利用可能な設計が可能です。

スクリプト(Script)

スクリプトはノードに動作を与えるプログラムコードです。

GDScriptというPythonライクな言語で記述し、ノードにアタッチすることで機能を追加できます。

事前準備

まずは、Godot公式サイトからエンジンをダウンロードしましょう!

まずは動かしてみる

以下の3ファイルを作成してください。

MyFirstApp/
├── project.godot
├── scenes/main/Main.tscn
└── scripts/ui/UIController.gd

ファイル1: project.godot(設定ファイル)

[application]

config/name="MyFirstApp"
run/main_scene="res://scenes/main/Main.tscn"

[display]

window/size/viewport_width=800
window/size/viewport_height=600

解説

・アプリの名前は「MyFirstApp」

・起動時にMain.tscnを開く

・ウィンドウサイズは800×600

ファイル2: Main.tscn(画面の構造)

[gd_scene load_steps=2 format=3 uid="uid://main_scene"]

[ext_resource type="Script" path="res://scripts/ui/UIController.gd" id="1"]

[node name="Main" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
script = ExtResource("1")

[node name="CenterContainer" type="CenterContainer" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0

[node name="VBoxContainer" type="VBoxContainer" parent="CenterContainer"]
layout_mode = 2

[node name="Title" type="Label" parent="CenterContainer/VBoxContainer"]
layout_mode = 2
text = "My First Godot App"
horizontal_alignment = 1

[node name="ClickButton" type="Button" parent="CenterContainer/VBoxContainer"]
layout_mode = 2
text = "Click Me!"

[connection signal="pressed" from="CenterContainer/VBoxContainer/ClickButton" to="." method="_on_button_clicked"]

解説

・複数のノードを組み合わせて画面の構造を定義している

画面の構成:

Main(全体の枠)
└── CenterContainer(中央寄せ)
    └── VBoxContainer(縦並び)
        ├── Title「My First Godot App」
        └── ClickButton「Click Me!」

ファイル3: UIController.gd(動作プログラム)

extends Control

var click_count = 0

func _ready():
    print("アプリが起動しました")

func _on_button_clicked():
    click_count += 1
    print("ボタンが " + str(click_count) + " 回クリックされました")
    
    var button = $CenterContainer/VBoxContainer/ClickButton
    button.text = "クリック回数: " + str(click_count)

解説

GDスクリプトファイルで動作を制御します

実際に動かしてファイルの関係を確認

Godotを起動しましょう!

「MyFirstApp」プロジェクトをインポートしましょう。

project.godotファイルが直下にあるディレクトリを指定してください。

ゲームを起動しましょう!

右上のプロジェクト実行ボタンを押下してください!

「My First Godot App」の画面が表示されます!(おめでとうございます!

遊んでみよう!

そして、「Click Me!」ボタンを押すとテキストが変わります。

この動作を見ながら、各ファイルがどう連携しているかを観察しましょう。

例)

project.godotMain.tscnを指定している

Main.tscnが画面構造とスクリプトファイルを指定している

UIController.gdが実際の処理を実行している

ファイルから学べること

1. 宣言的な設計 

.tscnファイルは「こんな画面を作りたい」という宣言を書いたテキストファイルです。

2. 階層構造の理解 

parent="..."の記述で、画面要素の親子関係が明確になります。

3. イベント処理の仕組み 

[connection]の行で、「ボタンが押されたら、この関数を呼ぶ」という指示が書かれています。

4. ファイル間の依存関係 

どのファイルがどのファイルを参照しているかが、テキストから読み取れます。

最後に

お疲れ様です!

3つのファイルでサクッとGodotデビュー成功!

次は“どう繋がって動くか”を腹落ちさせていきましょう。

今日から楽しいGodotライフを!!

細部