godot-project-templates について
Godot プロジェクトの開始時に使うテンプレート案内スキルです。ジャンルごとのスクリプト選択と骨組みの適応方法に加え、起動順序、一時停止、クロスプラットフォーム設定、DLC 読み込みを説明します。
主な機能
- 01ジャンル別のテンプレートスクリプト案内
- 02ブートストラップ設定とシステム登録
- 03一時停止モードとメニューのライフサイクル規則
- 04クロスプラットフォーム入力と機能タグ
- 05スレッドによるレベル読み込み
- 06モジュール式 DLC リソースパック読み込み
活用シーン
- 012D プラットフォーマープロジェクトの骨組み作成
- 02アクション RPG や FPS のテンプレート部品選択
- 03一時停止メニューとゲームのプロセスモード設定
- 04レベルストリーミングや DLC 読み込み用スクリプトの選択
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ thedivergentai/ game-dev-agentic-skills --skill godot-project-templatesインストール後、Claude Code で/godot-project-templatesを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/genre-template-scaffolds.mdmigration-notes.mdscripts/accessibility_tts_manager.gdbase_actor.gdbase_game_manager.gdbase_level.gdbase_menu.gdbootstrap_config.gdlevel_steamer_manager.gdmodular_dlc_loader.gdmulti_platform_input.gdplatform_feature_config.gdscene_state_machine.gdstate_machine_node.gdsubsystem_locator.gd詳細
プロジェクトテンプレート(ナビゲーション)
アーキテクチャの骨組みを作成してから適応してください。ジャンル別のチュートリアルをそのままプロジェクトに貼り付けてはいけません。
絶対にしてはいけないこと(専門家が避けるべきアンチパターン)
ディレクトリと骨組み
- シーンのパスを数十か所でハードコードしてはいけません。AutoLoad の定数またはシーンレジストリを使用してください。
- インポートパイプライン外でデザイナーがアセットを配置する場合、
.gdignoreを省略してはいけません。 - テンプレートをそのままコピー&ペーストしてはいけません。構造を理解してから適応してください(以下のチェックリストを参照)。
アーキテクチャとライフサイクル
- プロセスモードのグループを設定せずに
get_tree().pausedを使用してはいけません。ポーズメニューにはPROCESS_MODE_ALWAYSが必要です。**理由:**ツリーを一時停止すると、メニューノードの_processも停止するため、ボタンが入力を受け取れなくなります。ゲームプレイにはINHERIT(一時停止)を、メニュー/HUD には base_menu.gd を使うか、ポーズ画面のルートにprocess_modeを明示的に設定してALWAYSにしてください。 - 基底クラスの仮想ライフサイクルフックを省略してはいけません。脆弱な
_ready()のオーバーライドより、_initialize_*()を優先してください。 - モノリシックな God シングルトンに依存してはいけません。Signal Bus または Subsystem Locator を使用してください。
プラットフォームと UI
- FPS の骨組みで
Input.MOUSE_MODE_CAPTUREDの設定を省略してはいけません。FPS のジャンルパスを選択したときに設定してください。 - UI レイアウトに浮動小数点定数を使用してはいけません。アンカー/コンテナを使用してください。
- i18n の翻訳コンテキストを無視してはいけません。
tr()/コンテキストで文字列を明確に区別してください。
パフォーマンス
- 巨大なレベルを同期的に読み込んではいけません。
ResourceLoader.load_threaded_request()を使用してください。
推奨手順
- ブートストラップ — 必須の bootstrap_config.gd:オーディオ/UI より前に設定/ネットワークを構成します(偶然の Autoload 順に依存しないでください)。
- 以下のジャンルの行から選び、記載されたスクリプトのみを読み込みます。
- プロジェクト名を変更し、ロケーター/ブートストラップを登録して、Input Map を設定します。
- ゲームプレイシステムについては、利用側の
godot-genre-*スキルを開きます。
プラットフォーマーのエンドツーエンド手順: 1 行目のスクリプト → godot-genre-platformer(移動には advanced_platformer_controller.gd、シーン遷移にはテンプレートの base_level +ステートマシンを使用)。このスキルの FPS/インベントリの手順を貼り付けないでください。
ジャンルルーター → スクリプト
必須:ジャンルの行を選び、記載されているスクリプトを読み込んでから、ゲームプレイシステムについては利用側の
godot-genre-*スキルを開いてください。インラインの FPS コントローラーやインベントリマネージャーを記憶だけを頼りに貼り付けないでください。
| ジャンルの意図 | 読み込むテンプレートスクリプト(必須) | ゲームプレイを補うには |
|---|---|---|
| 2D プラットフォーマー | base_game_manager.gd, base_level.gd, base_actor.gd, scene_state_machine.gd, state_machine_node.gd | godot-genre-platformer |
| 見下ろし型/アクション RPG | 同じベーススクリプト + subsystem_locator.gd, base_menu.gd | godot-genre-action-rpg |
| 3D FPS/シューター | ベーススクリプト + multi_platform_input.gd, platform_feature_config.gd | godot-genre-shooter-fps |
| あらゆるジャンル + DLC パック | modular_dlc_loader.gd | ジャンルスキル + godot-export-builds |
| クロスプラットフォームの入力/機能 | multi_platform_input.gd, platform_feature_config.gd | godot-input-handling |
| スレッドによるレベルストリーミング | level_steamer_manager.gd | godot-scene-management |
| アクセシビリティ向け TTS | accessibility_tts_manager.gd | プロジェクトの基盤/UI スキル |
フォルダー構成の機能別ひな形(全ジャンル):entities/<name>/、levels/ または maps/、ui/、autoloads/ またはロケーター登録システム、resources/。詳細はジャンルごとの利用側スキルに記載します。ここでは重複して記載しません。
アーキテクチャの差分(このスキルに記載)
サブシステムロケーターと God Autoload
モジュール式の登録には subsystem_locator.gd を優先し、ブートストラップ用の Autoload のみを薄く保ってください。
ブートストラップの順序
必須: bootstrap_config.gd(または同等のもの)を使用し、重要なシステム(設定/ネットワーク)をオーディオ/UI より先に初期化してください。Project Settings の Autoload の順序が偶然適切になることだけに頼らないでください。
一時停止モード
ゲームプレイツリーは一時停止し、UI/一時停止メニューのノードには PROCESS_MODE_ALWAYS を使用します。base_menu.gd を介して接続してください。
PCK/DLC
ProjectSettings.load_resource_pack() のマウントには、必ず modular_dlc_loader.gd を使用してください。ゲームプレイコードでパスのハックを自作しないでください。
機能タグ
OS.has_feature()/エクスポートタグによる分岐(mobile、low_end、dedicated_server)には、必ず platform_feature_config.gd を使用してください。
適応チェックリスト
ゲームプレイのコードを書く前に、各テンプレート要素を利用者向けスキルに対応付けます。
| テンプレート要素 | 適応先 |
|---|---|
base_actor / ステートマシンのノード | ジャンル別の移動/戦闘スキル(godot-genre-*)+ godot-state-machine-advanced |
base_game_manager のシグナル | godot-autoload-architecture / godot-signal-architecture |
| レベルストリーマー | godot-scene-management |
| 入力/機能の設定 | godot-input-handling + プラットフォーム別スキル |
| メニュー/HUD のシェル | godot-ui-containers |
| エクスポート/CI/PCK | godot-export-builds |
使い方: ジャンルの行を選ぶ → スクリプトを読み込む → プロジェクト名を変更する → ロケーター/ブートストラップを登録する → Input Map を設定する → システムについてはジャンル別スキルを開く — このスキルにある標準の FPS/インベントリーの手順を貼り付けないでください。
詳細(必要に応じて読み込み)
プラットフォーマー/RPG/FPS のディレクトリツリー、Input Map のテンプレート、CI エクスポート用 YAML、PCK のマウント、ブートストラップの優先順位 — references/genre-template-scaffolds.md。
リファレンス
段階的開示:特定の API を調査するときにのみ公式ドキュメントへのリンクを開き、関連領域に移るときに関連スキルを読み込みます。スキル群全体を事前に読み込まないでください。
公式ドキュメント
- プロジェクトの構成 — ジャンル別のボイラープレートで最初から取り入れておきたい、機能ごとのフォルダー構成、
.gdignore、VCS の管理方法について説明しています。 - シーンの構成 — テンプレートを安全にリファクタリングできるようにするための、
entities/、levels/、UI シーンの所有権の境界について説明しています。 - シングルトン(Autoload) — シーンの切り替え後も維持される、GameManager/Audio/SceneTransitioner の軽量なサービスを登録する方法について説明しています。
- Autoload と通常のノードの比較 — 巨大な God シングルトンより、Subsystem Locator やシーンローカルノードが適している場合について説明しています。
- バックグラウンド読み込み — レベルストリーミング用テンプレートで使用される
ResourceLoader.load_threaded_*のパターンについて説明しています。 - ゲームの一時停止 — ゲームプレイを一時停止している間もポーズメニューを動作させるための、プロセスモードについて説明しています。
- 複数の解像度 — 新しいプロジェクトテンプレートで必ず説明しておきたい、ストレッチモードとアスペクト比のデフォルト設定(
canvas_items/expand)について説明しています。 - 機能タグ — プラットフォーム設定用テンプレートで、モバイル/PC/サーバー向けのオーバーライドに使用する
OS.has_feature()プロファイルについて説明しています。 - パックのエクスポート(PCK) —
ProjectSettings.load_resource_pack()を使用した、DLC やパッチのモジュール形式でのマウントについて説明しています。 - コントローラーとゲームパッドの使用 — マルチプラットフォーム向けテンプレートで使用する、デフォルトの Input Map アクションとデッドゾーンの調整について説明しています。
- テキスト読み上げ — アクセシビリティマネージャーのひな型で使用する DisplayServer の TTS フックについて説明しています。
- ゲームの国際化 — メニュー/HUD の UI 文字列で曖昧なキーを避けるための、翻訳コンテキストについて説明しています。
関連スキル
前提条件
- godot-project-foundations — ジャンル別のひな型を実際のリポジトリにコピーする前に確認しておきたい、フォルダーの整理、命名、インポートの基本について説明しています。
- godot-gdscript-mastery — このテンプレートのすべてのスクリプトで使用されている、型付き基底クラス、仮想フック、シグナルのスタイルについて説明しています。
補完
- godot-autoload-architecture — BootstrapConfig / GameManager の Autoload がテンプレート段階を離れた後の、起動順序と所有権のルールです。
- godot-scene-management — レベルストリーマーのボイラープレートを拡張する、本番環境向けのシーン切り替えとロードキューです。
- godot-input-handling — MultiPlatformInput の足場を超える、完全なアクションマップ、デバイスの振り分け、再マッピングです。
- godot-state-machine-advanced — SceneStateMachine と StateMachineNode を拡張する、階層型/ビジュアル FSM のパターンです。
- godot-export-builds — Standard-Export-Presets テンプレートで前提とされる、エクスポートプリセット、VRAM 圧縮、CI のヘッドレスフラグです。
- godot-signal-architecture — テンプレートが GameManager の直接シグナルで対応しきれなくなった場合の、型付き EventBus パターンです。
- godot-ui-containers — 浮動小数点のピクセルずれを避ける、BaseMenu および HUD シーン向けのアンカー/コンテナレイアウトです。
- godot-adapt-desktop-to-mobile — PlatformFeatureConfig ではスタブのみが用意されている、タッチ、安全領域、モバイル機能タグのプロファイルです。
下流/利用者
- godot-genre-platformer — 2D プラットフォーマーのディレクトリ構成に、移動、コヨーテタイム、レベル進行を追加します。
- godot-genre-action-rpg — トップダウン RPG テンプレートのフォルダーに組み込める、戦闘、インベントリ、クエストシステムです。
- godot-genre-shooter-fps — 3D FPS プレイヤーの足場に重ねる、武器、ヒット判定、カメラの操作感です。
マスター
- godot-master — ライブラリのルーターであり、スキル間の検索に使うミラー化されたモジュールエントリです。