【Godot】Godotプロジェクトの整理術 - フォルダ構成・命名規約・res://とuser://

作成: 2026-07-09

Godotプロジェクトを散らからせないフォルダ構成(種類別と機能別)、Godotの命名規約(snake_case / PascalCase)、res://とuser://の違い、gitで管理する方法までを図解で解説します。

「あのスクリプト、どこに置いたっけ……」——FileSystemドックを上から下までスクロールして探す時間は、開発でいちばん無駄な時間のひとつです。プロジェクトが小さいうちは平気でも、シーンや素材が増えるほど、散らかりのツケは大きくなります。

この記事では、Godotプロジェクトを整理整頓するための フォルダ構成 、Godotならではの 命名規約res://user:// の違い、そして gitで管理 する方法までを解説します。良い整理術は、自分の効率を上げるだけでなく、チーム開発や将来の自分をぐっと助けてくれます。

プロジェクト整理のイメージ。散らかったファイルを種類ごとに棚へ片付けていく

この記事でわかること

  • フォルダ構成 ——種類別と機能別、2つの考え方
  • Godotの 命名規約 (ファイルはsnake_case、ノードはPascalCase
  • res://user:// の違い(書き込み可否)
  • git でプロジェクトを管理する(.godotの除外)

Sponsored

フォルダ構成:種類別と機能別

いちばんの悪手は、res:// 直下にすべてのファイルを置くことです。シーン・スクリプト・画像・音がごちゃ混ぜになり、目的のファイルを探すだけでひと苦労になります。

フォルダ整理のビフォーアフター図。整理前はres://直下にシーン・スクリプト・画像・音が散乱しているが、整理後はscenes・scripts・assetsなどのフォルダに種類別に収まっている

整理のしかたには、大きく2つの考え方があります。

種類別と機能別のフォルダ構成の比較図。種類別はscenes/scripts/assets/audioと種類でまとめる。機能別はplayer/enemy/uiと機能ごとにフォルダを作り、その中にシーン・スクリプト・素材をまとめる

種類別(types型) ——ファイルの種類でまとめます。小〜中規模で分かりやすい定番です。

res://
├── scenes/      # シーン (.tscn)
├── scripts/     # スクリプト (.gd)
├── assets/      # 画像・スプライト
│   ├── sprites/
│   └── audio/
└── autoload/    # グローバルなシングルトン

機能別(features型) ——「プレイヤーに関わるものは全部ここ」と、機能ごとにまとめます。中〜大規模で効いてきます。

res://
├── player/      # player.tscn / player.gd / player.png をまとめて
├── enemy/
├── ui/
└── levels/

Godotは シーン(.tscn)とスクリプト(.gd)を近くに置く と扱いやすいので、機能別と特に相性が良いです。プレイヤーを直したいとき、player/ フォルダを開けば、シーンもスクリプトも素材も揃っています。どちらが正解というものではなく、 まずは種類別から始め、大きくなったら機能別を取り入れる のがおすすめです。

実践:機能別で小さなゲームを整理する

シューティング、アクション、ローグライク——ジャンルを問わず、小さなゲームは「プレイヤー・敵・弾・UI・ステージ」くらいの機能に分けられます。機能別フォルダで整理すると、こんな形になります。

機能別フォルダで整理した小さなゲームのフォルダツリー図。player・enemy・bullet・ui・levelsの各フォルダに、それぞれのシーン(.tscn)とスクリプト(.gd)と素材がまとまっている
res://
├── player/
│   ├── player.tscn
│   ├── player.gd
│   └── player.png
├── enemy/
│   ├── enemy.tscn
│   └── enemy.gd
├── bullet/
│   ├── bullet.tscn
│   └── bullet.gd
├── ui/
│   └── hud.tscn
├── levels/
│   └── stage_1.tscn
└── autoload/
    └── game_manager.gd

ポイントは2つです。

  • 1機能=1フォルダで「まるごと持ち運べる」player/ フォルダごと別プロジェクトへコピーすれば、プレイヤーがそのまま移植できます。機能が独立していると、再利用も削除も楽です。
  • グローバルなものは autoload/ に隔離 :どのシーンからも使う AutoloadGameManagerなど)は専用フォルダに置くと、「全体に効くもの」の在り処が一目で分かります。
Sponsored

Godotの命名規約

名前の付け方を揃えておくと、コードもファイルも一気に読みやすくなります。Godotには 公式スタイルガイド があり、対象ごとに書き方が決まっています。

Godotの命名規約の図。ファイルとフォルダはsnake_case(player_controller.gd)、ノード名とclass_nameとはPascalCase(PlayerController)、変数と関数はsnake_case(move_speed)、定数はCONSTANT_CASE(MAX_HP)と、対象ごとに書き方が分かれている
対象書き方
ファイル・フォルダsnake_caseplayer_controller.gdmain_menu/
ノード名・class_namePascalCasePlayerControllerEnemy
変数・関数snake_casemove_speedtake_damage()
定数CONSTANT_CASEMAX_HPSPEED

特に大事なのが ファイル名は必ず snake_case(すべて小文字) にすることです。LinuxやAndroidはファイル名の大文字・小文字を厳密に区別するため、Player.pngplayer.png を混在させると、Windowsでは動くのに エクスポート 後に読み込み失敗——という定番の事故につながります。最初から小文字で統一しておけば安全です。

res:// と user:// の違い

Godotのパスには2種類あります。整理術としても、この違いは押さえておきましょう。

  • res:// :プロジェクトのファイル置き場。シーンや素材はここに置きます。ただし エクスポート後は読み取り専用 になり、書き込めません。
  • user:// :OSごとに用意される 書き込み可能な専用フォルダ 。セーブデータや設定ファイルはここに書きます。

つまり 「素材は res://、プレイ中に書き出すものは user:// と覚えておけば十分です。セーブデータを res:// に書こうとして「エディタでは動くのに製品版で保存できない」というのは定番のつまずきなので注意してください。詳しい使い方は セーブ/ロードシステム で解説しています。

gitで管理する

プロジェクトをGitでバージョン管理するなら、 .godot/ フォルダを除外 します。ここはインポートキャッシュなどの 自動生成物 なので、リポジトリに入れる必要がありません(別PCで開けば再生成されます)。

gitで管理する対象の図。project.godot・.tscn・.gd・素材は自作ファイルとしてコミットし、.godotフォルダやexport成果物は自動生成物として.gitignoreで除外する

プロジェクト直下の .gitignore に次を書いておきます。

# Godotが自動生成するキャッシュ
.godot/

# エクスポート成果物
export/
*.exe

逆に、project.godot(プロジェクト設定)や .tscn / .gd などの 自分で作ったファイルは必ずコミット します。.tscn はテキスト形式なので、Gitで差分も追えます。

おまけ:先に知っておくと良いこと

  • フォルダ移動はGodot内で行う :ファイルを移動するときは、OSのエクスプローラーではなく FileSystemドック上でドラッグ します。こうするとGodotが参照パスを自動で追従してくれ、リンク切れを防げます。
  • _(アンダースコア)で先頭に固定_experimental/ のようにフォルダ名の先頭に _ を付けると、一覧の上位に表示されます。試作や外部アセットの隔離に便利です。
  • シーンの分け方は別の話 :ここで扱ったのは「ファイルの整理」です。シーン自体の設計(何をシーンに分けるか)は 「シーン」と「ノード」の基本 の領域です。

まとめ

  • res:// 直下に全部置かず、 種類別機能別 でフォルダを分ける(Godotは機能別と相性が良い)
  • ファイル・フォルダは snake_case 、ノード・class_namePascalCase 。特にファイル名の小文字統一はエクスポート事故を防ぐ
  • res:// は素材(出荷後は読み取り専用)、user:// はセーブなど書き込むもの
  • Gitでは .godot/ を除外 し、自作ファイルはコミットする

きれいなプロジェクトは、バグの発見を早め、機能追加を加速させます。最初の1フォルダから、整理する習慣をつけていきましょう。

さらに学ぶために