godot-development について
godot-developmentは、Godotでゲームを開発する人向けのスキルです。シーン、ノード、GDScript、プロジェクト構成の解説に加え、プロジェクトの確認や編集に使うツールを備えています。
主な機能
- 01シーンツリーとノードの解説
- 022D・3D開発の基礎概念
- 03GDScriptのパターンとライフサイクルメソッド
- 04プロジェクト構成の提案
- 05プロジェクト作業用Godot MCPツール
活用シーン
- 01ゲームシーンの作成や変更
- 02ノードの設定とエラーの調査
- 03GDScriptやプロジェクト構成に関する相談
MCP 対応
Godot MCPツールを使ってプロジェクトを開いて実行し、出力やメタデータを確認して、シーンやノードを作成・編集します。
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ zate/ cc-godot --skill godot-developmentインストール後、Claude Code で/godot-developmentを入力して読み込まれたか確認します。
詳細
Godot 開発スキル
Godot Engine によるゲーム開発のエキスパートとして、次の分野に関する深い知識があります。
コア概念
シーンツリーのアーキテクチャ
- シーンは、ツリー階層に配置されたノードの集まりです
- すべてのシーンにはルートノードがあります
- ノードは親ノードを継承し、複数の子ノードを持つことができます
- シーンインスタンスはネストして再利用できます
- シーンツリーはルートから葉に向かって走査されます
ノードの種類
2D ノード:
- Node2D:すべての 2D ノードの基底で、位置、回転、スケールを持ちます
- Sprite2D:2D テクスチャを表示します
- AnimatedSprite2D:スプライトアニメーションを再生します
- CollisionShape2D:衝突領域を定義します(物理ボディの子ノードにする必要があります)
- Area2D:重なり合うボディや領域を検出します
- CharacterBody2D:組み込みの移動関数を備えた物理ボディです
- RigidBody2D:力の影響を受ける物理ボディです
- StaticBody2D:動かない物理ボディです
- TileMap:グリッドベースのタイルシステムです
- Camera2D:追従とズームに対応した 2D カメラです
- CanvasLayer:画面上で固定される UI レイヤーです
- Control:UI 要素(Button、Label、Panel など)の基底です
3D ノード:
- Node3D:すべての 3D ノードの基底です
- MeshInstance3D:3D メッシュを表示します
- Camera3D:3D カメラです
- DirectionalLight3D、OmniLight3D、SpotLight3D:ライティング
- CollisionShape3D:3D の衝突形状です
- Area3D、CharacterBody3D、RigidBody3D、StaticBody3D:3D 物理ボディです
一般的なノード:
- Timer:遅延後にコードを実行します
- AudioStreamPlayer:サウンドを再生します
- AnimationPlayer:複雑なアニメーションを制御します
Godot MCP ツール
Godot 専用の MCP ツールを利用できます。
mcp__godot__launch_editor:プロジェクトの Godot エディターを開きますmcp__godot__run_project:ゲームプロジェクトを実行しますmcp__godot__get_debug_output:コンソール出力とエラーを取得しますmcp__godot__stop_project:実行中のプロジェクトを停止しますmcp__godot__get_godot_version:Godot のバージョンを確認しますmcp__godot__list_projects:ディレクトリ内の Godot プロジェクトを検索しますmcp__godot__get_project_info:プロジェクトのメタデータを取得しますmcp__godot__create_scene:新しい .tscn シーンファイルを作成しますmcp__godot__add_node:既存のシーンにノードを追加しますmcp__godot__load_sprite:テクスチャを Sprite2D ノードに読み込みますmcp__godot__save_scene:シーンの変更を保存しますmcp__godot__get_uid:ファイル UID を取得します(Godot 4.4+)mcp__godot__update_project_uids:UID 参照を更新します
プロジェクト構成のベストプラクティス
project/
├── project.godot # Project configuration
├── scenes/ # All scene files
│ ├── main/ # Main game scenes
│ ├── ui/ # UI scenes
│ ├── characters/ # Character scenes
│ └── levels/ # Level scenes
├── scripts/ # GDScript files
│ ├── autoload/ # Singleton scripts
│ ├── characters/ # Character scripts
│ └── systems/ # Game systems
├── assets/ # Art, audio, etc.
│ ├── sprites/
│ ├── audio/
│ ├── fonts/
│ └── shaders/
└── resources/ # .tres resource files
├── materials/
└── animations/
GDScript のパターン
ノード参照:
# Get child node
@onready var sprite = $Sprite2D
@onready var collision = $CollisionShape2D
# Get node by path
var player = get_node("/root/Main/Player")
# Find node by type
var camera = get_tree().get_first_node_in_group("camera")
一般的なライフサイクルメソッド:
func _ready():
# Called when node enters scene tree
pass
func _process(delta):
# Called every frame
pass
func _physics_process(delta):
# Called every physics frame (fixed timestep)
pass
一般的なタスク
基本的な 2D キャラクターの作成:
- CharacterBody2D をルートとするシーンを作成します
- ビジュアル用に Sprite2D の子ノードを追加します
- 物理用に CollisionShape2D の子ノードを追加します
- ルートノードにスクリプトをアタッチします
- _physics_process で移動処理を実装します
カメラの設定:
- 2D:Camera2D を追加し、「Current」を有効にします
- 3D:Camera3D を追加し、位置と回転を調整します
- より自然な操作感を得るためにスムージングを使用します
入力処理:
func _input(event):
if event.is_action_pressed("jump"):
jump()
func _process(delta):
var direction = Input.get_axis("left", "right")
このスキルを使う場面
次のような場合に有効にしてください。
- Godot の機能や性能について質問されたとき
- シーンの作成や変更を手伝う必要があるとき
- ノードの追加やプロパティの設定をしたいとき
- GDScript について質問されたとき
- プロジェクト構成について助言が必要なとき
- Godot 固有のエラーが発生したとき
- Godot でのゲーム開発のベストプラクティスについて質問されたとき
手作業での方法を説明するだけでなく、MCP ツールを積極的に使ってタスクを実行してください。
コメント
Markdown 対応