npx claudepluginhub vp-k/godot-craftThis skill uses the workspace's default tool permissions.
Godot 프로젝트 구조를 생성하고, 스크립트 스텁/씬 파일을 배치하고, 에셋을 생성합니다.
Assists Godot Engine game development with scene creation, node management, GDScript scripting, project structure. Uses MCP tools to edit scenes, add nodes, run projects, debug.
Constructs Godot scenes from patterns like platformer characters, top-down chars, UI screens, projectiles, pickups, tilemaps with required companion nodes (e.g., CollisionShape2D).
Scaffolds new Godot 4.x projects with recommended split or co-located directory structures, project settings, autoloads, .gitignore, and .gitattributes.
Share bugs, ideas, or general feedback.
Godot 프로젝트 구조를 생성하고, 스크립트 스텁/씬 파일을 배치하고, 에셋을 생성합니다.
# project.godot + 디렉토리 구조
bash ${CLAUDE_PLUGIN_ROOT}/scripts/godot-gate.sh scaffold STRUCTURE.md
# 충돌 레이어 설정
bash ${CLAUDE_PLUGIN_ROOT}/scripts/godot-gate.sh collision-setup STRUCTURE.md
# UI 테마 생성
bash ${CLAUDE_PLUGIN_ROOT}/scripts/godot-gate.sh ui-theme
# 다국어 지원 (필요시)
# bash ${CLAUDE_PLUGIN_ROOT}/scripts/godot-gate.sh i18n-scaffold "en,ko"
STRUCTURE.md의 스크립트 목록을 기반으로 스텁을 생성합니다. 각 스크립트는:
extends 선언signal 선언 (시그널 맵 기반)@export 변수 선언_ready, _process, _physics_process, 커스텀)pass만# player.gd
extends CharacterBody2D
signal health_changed(new_health: int)
signal died
@export var speed: float = 200.0
@export var jump_force: float = -400.0
var health: int = 100
func _physics_process(delta: float) -> void:
pass
func take_damage(amount: int) -> void:
pass
STRUCTURE.md의 씬 트리를 기반으로 .tscn 파일을 생성합니다.
빌드 순서 결정:
bash ${CLAUDE_PLUGIN_ROOT}/scripts/godot-gate.sh build-order STRUCTURE.md
씬 파일은 Godot의 텍스트 씬 형식:
[gd_scene load_steps=3 format=3 uid="uid://xxxxx"]
[ext_resource type="Script" path="res://scripts/player.gd" id="1"]
[ext_resource type="Texture2D" path="res://assets/sprites/player.png" id="2"]
[node name="Player" type="CharacterBody2D"]
script = ExtResource("1")
speed = 200.0
[node name="Sprite2D" type="Sprite2D" parent="."]
texture = ExtResource("2")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("RectangleShape2D_xxxxx")
주의: uid는 Godot가 자동 생성하므로, 처음에는 uid 없이 작성해도 됩니다.
bash ${CLAUDE_PLUGIN_ROOT}/scripts/godot-gate.sh compile-check
에러가 있으면 수정합니다. compile-check는 scaffold-gate 이전에 반드시 통과해야 합니다.
ASSETS.md의 각 에셋에 대해 구체적인 생성 프롬프트를 작성합니다.
프롬프트 작성 원칙:
# 각 이미지 에셋 생성
python3 ${CLAUDE_PLUGIN_ROOT}/tools/asset_gen.py \
--type image \
--prompt "<프롬프트>" \
--size "64x64" \
--output "<game_name>/assets/sprites/<name>.png"
# 배경 제거 (필요시)
python3 ${CLAUDE_PLUGIN_ROOT}/tools/rembg_matting.py \
--input "<game_name>/assets/sprites/<name>.png" \
--output "<game_name>/assets/sprites/<name>.png"
스프라이트시트로 생성된 에셋은 슬라이싱:
python3 ${CLAUDE_PLUGIN_ROOT}/tools/spritesheet.py \
--input "<spritesheet>.png" \
--cols 4 --rows 4 \
--output-dir "<game_name>/assets/sprites/"
python3 ${CLAUDE_PLUGIN_ROOT}/tools/asset_gen.py \
--type sound \
--prompt "<효과음 설명>" \
--duration 0.5 \
--output "<game_name>/assets/audio/sfx/<name>.wav"
python3 ${CLAUDE_PLUGIN_ROOT}/tools/asset_gen.py \
--type music \
--prompt "<음악 설명>" \
--duration 30 \
--genre "<장르>" \
--output "<game_name>/assets/audio/bgm/<name>.ogg"
bash ${CLAUDE_PLUGIN_ROOT}/scripts/godot-gate.sh asset-integrity
bash ${CLAUDE_PLUGIN_ROOT}/scripts/godot-gate.sh scaffold-gate
상세한 가이드는 다음 파일을 참조:
Read ${CLAUDE_PLUGIN_ROOT}/skills/scaffold-assets/scaffold.md — 프로젝트 구조 상세Read ${CLAUDE_PLUGIN_ROOT}/skills/scaffold-assets/asset-planner.md — 에셋 계획 전략Read ${CLAUDE_PLUGIN_ROOT}/skills/scaffold-assets/asset-gen.md — 에셋 생성 도구 사용법