はじめてのGodot 第1回: ゲームの完成形を見てから、Godotを準備しよう


この連載は、PCの基本操作はできるけれど、プログラミングもゲーム制作もやったことがない人が、ゲームを1本完成させるための全8回のチュートリアルです。

8回後のあなたが作っているもの

スタート画面からプレイ、ゲームオーバーを経てリトライで再び遊べるまでの一連の流れ

宇宙船を操作して、降ってくる隕石をよけ続けるゲームです。よけた時間がそのままスコアになります。シンプルですが、操作・敵の出現・当たり判定・スコア表示・音という、ほとんどのゲームに共通する基本要素がすべて詰まっています。

1回あたり30〜60分、合計でも1日あれば完走できる分量です。

Godotとは

Godot Engine(ゴドー)は、無料で使えるオープンソースのゲームエンジンです。

  • 完全無料で、作ったゲームの売上から手数料を取られることもない
  • インストーラ不要。ダウンロードしたファイルを開くだけで起動する
  • 軽量で、ノートPCでも快適に動く

インストール

公式サイトのダウンロードページから、自分のOS用の Godot 4.6.3 (Standard) をダウンロードしてください。「.NET」というものもありますが、この連載では使いません。

  • Windows: zipを展開して、出てきた .exe をダブルクリック
  • Mac: zipを展開して、Godot.app をアプリケーションフォルダに移動して起動

Godot 4.6.3のダウンロードページ。Supported platformsの一覧からOSごとのStandard版がダウンロードできる

この連載のバージョン: Godot 4.6.3で動作確認し、スクリーンショットもすべて4.6.3で撮影しています。少し新しいバージョンでも、だいたい同じ場所に同じものがあります。

プロジェクトを作る

Godotを起動するとプロジェクトマネージャーが開きます。「作成」を押して、次のように設定します。

  • プロジェクト名: MeteorDodge
  • パス: 好きな場所(ドキュメントフォルダなど)
  • レンダラー: そのまま(Forward+)でOK

「作成」を押すと、エディタが開きます。

エディタ画面の歩き方

最初は情報量に圧倒されますが、この連載で使うのは4か所だけです。

Godotエディタの画面。左上①シーンドック、左下②ファイルシステム、中央③ビューポート、右④インスペクタの4か所に番号を振ってある

番号場所名前役割
左上シーンドックゲームを構成する「部品」の一覧
左下ファイルシステムプロジェクト内のファイル一覧
中央ビューポートゲーム画面のプレビュー
インスペクタ選択した部品の設定項目

もう1か所だけ覚えておきます。画面の一番上の中央に「2D / 3D / スクリプト / ゲーム / アセットライブラリ」というタブが並んでいます。これは中央(③)に何を表示するかの切り替えスイッチです。この連載で使うのは2つだけ:

  • 2D … シーンを目で見ながら部品を配置する画面(いま見ているのがこれ)
  • スクリプト … コードを書く画面(第2回から使います)

コードを書いた後に部品の配置に戻りたくなったら、ここで「2D」を押す、と覚えておいてください。

シーンとノード — Godotのたった2つの基本概念

Godotのゲームは「シーン」と「ノード」だけでできています。

  • ノード = 機能を持った最小の部品。「画像を表示する」「音を鳴らす」「時間を測る」など、1ノード1機能
  • シーン = ノードを組み合わせて作る部品のまとまり。「プレイヤー」「敵」「ゲーム画面全体」など

プラモデルでいうと、ノードが個々のパーツ、シーンが組み上がったユニットです。今日はまず「ゲーム画面全体」のシーンを作ります。

素材をダウンロードする

ゲームの絵素材は Kenney の「Space Shooter Remastered」を使います(295点入り)。CC0ライセンスなので、無料で、クレジット表記なしで、商用でも使えます(表記するとKenneyさんが喜びます)。

ダウンロードして展開したら、たくさんの画像の中から次の2ファイルを使います。

  • playerShip1_blue.png(宇宙船)
  • meteorBrown_big1.png(隕石 — 使うのは第4回から)

この2ファイルを、エディタ左下のファイルシステムにドラッグ&ドロップしてください。これだけでプロジェクトに取り込まれます(内部では「インポート」という処理が走っています)。

ウィンドウサイズを設定する

縦長のゲームにするので、画面サイズを設定します。

  1. メニューの「プロジェクト」→「プロジェクト設定」
  2. 「表示」→「ウィンドウ」を開く
  3. 「ビューポートの幅」を 480、「ビューポートの高さ」を 720 に変更

最初のシーンを作る

  1. シーンドックの「その他のノード」をクリック
  2. 検索欄に Node2D と入力して選択し、「作成」
  3. できたノードの名前をダブルクリックして Main に変更
  4. Ctrl+S(MacはCmd+S)で保存。ファイル名は main.tscn のままでOK

Node2D は「2Dのものを入れる容れ物」のノードです。これがゲーム画面全体の土台になります。

宇宙船を表示する

  1. シーンドックで Main を選んだ状態で「+」ボタン(子ノードを追加)
  2. Sprite2D を検索して追加。Sprite2Dは「画像を1枚表示する」ノードです
  3. 名前を Player に変更
  4. インスペクタの「Texture」の欄に、ファイルシステムから playerShip1_blue.png をドラッグ&ドロップ
  5. ビューポート上で宇宙船をドラッグして、画面の中央下あたりに移動(インスペクタのTransform→Positionで (240, 600) と直接入力してもOK)

宇宙船のSprite2Dを画面下部中央に配置したGodotエディタ。インスペクタのPositionが(240, 600)になっている

実行してみる

右上の再生ボタン(▶)を押すか、F5(MacはCmd+B)を押してください。

Macのキーボードについて: Godotのプロジェクト実行ショートカットは、Windowsが F5 なのに対しMacは Cmd+B です(現在のシーンだけを実行する場合は、Windowsが F6、Macが Cmd+R)。迷ったら右上の再生ボタン(▶)をクリックするのが確実です。この連載では以降 F5(MacはCmd+B)のように併記します。

すると「メインシーンが定義されていません」というダイアログが出ます。これはエラーではなく、「ゲームを起動したとき最初に表示するシーンはどれ?」という質問です。「現在のものを選択」を押してください。

ウィンドウが開いて、黒い画面に宇宙船が表示されたら今回のゴール達成です。まだ動きませんが、あなたは今「Godotでゲームを実行」しました。

つまずきポイント

  • 画像をドラッグしても何も起きない: ドロップ先はエディタ左下の「ファイルシステム」ドックです。シーンドックやビューポートではありません
  • 宇宙船が表示されない: シーンドックで Player を選び、インスペクタのTextureに画像が入っているか確認してください
  • 実行したら真っ黒: 宇宙船が画面外にいる可能性があります。Positionを (240, 600) にしてみてください

今回学んだこと

  • Godotのゲームは「シーン(部品のまとまり)」と「ノード(1機能の部品)」でできている
  • Sprite2D は画像を表示するノード
  • F5(MacはCmd+B)または再生ボタンで実行。最初の1回だけメインシーンを聞かれる

次回予告

第2回では、いよいよはじめてのプログラム(GDScript)を書いて、宇宙船をキーボードで動かします。プログラミング未経験の人は、ここが連載で一番大きな一歩です。

第2回: 宇宙船をキーボードで動かそう — はじめてのGDScript