# ๐ŸŽ๏ธ ์‚ฌ์ด๋ฒ„ํฌ๋ฎฌ๋Ÿฌ ๋ ˆ์ด์‹ฑ ๊ฒŒ์ž„ ๋กœ๋ธ”๋ก์Šค ์ŠคํŠœ๋””์˜ค๋กœ ์ œ์ž‘ํ•œ ์‚ฌ์ด๋ฒ„ํฌ๋ฎฌ๋Ÿฌ ์Šคํƒ€์ผ ๋ ˆ์ด์‹ฑ ๊ฒŒ์ž„ --- # ๋กœ๋ธ”๋ก์Šค ํ”„๋กœ์ ํŠธ ์ „์šฉ ์ง€์นจ ## MCP ์„œ๋ฒ„ ์‚ฌ์šฉ ๊ทœ์น™ **๐Ÿ”ด ํ•„์ˆ˜**: ์ด ํ”„๋กœ์ ํŠธ์—์„œ๋Š” **Roblox Studio MCP ์„œ๋ฒ„**๋ฅผ ํ•ญ์ƒ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ### Roblox Studio MCP ์‚ฌ์šฉ - **๋ชจ๋“  ๋กœ๋ธ”๋ก์Šค ์ž‘์—…**์— `mcp__Roblox_Studio__run_code` ๋˜๋Š” `mcp__Roblox_Studio__insert_model` ์‚ฌ์šฉ - **์ ˆ๋Œ€ ๊ธˆ์ง€**: ์ผ๋ฐ˜ ํŒŒ์ผ ์‹œ์Šคํ…œ ์ ‘๊ทผ์œผ๋กœ `.rbxl` ํŒŒ์ผ ์ฝ๊ธฐ/์“ฐ๊ธฐ - **Lua ์Šคํฌ๋ฆฝํŠธ ํ™•์ธ/์ˆ˜์ •**: MCP๋ฅผ ํ†ตํ•œ `run_code` ์‚ฌ์šฉ ### ์ฃผ์š” ์ž‘์—… ํŒจํ„ด #### ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ ํ™•์ธ ```lua mcp__Roblox_Studio__run_code: -- Workspace, StarterPlayer, ReplicatedStorage ๋“ฑ ํ™•์ธ for _, obj in pairs(game.Workspace:GetChildren()) do print(obj.Name) end ``` #### ์Šคํฌ๋ฆฝํŠธ ๋ถ„์„ ```lua mcp__Roblox_Studio__run_code: -- ์Šคํฌ๋ฆฝํŠธ ์†Œ์Šค ํ™•์ธ local script = game.StarterPlayer.StarterCharacterScripts.VehicleControl print(script.Source) ``` #### ์˜ค๋ธŒ์ ํŠธ ์ƒ์„ฑ/์ˆ˜์ • ```lua mcp__Roblox_Studio__run_code: -- ์ƒˆ ํŒŒํŠธ, ์Šคํฌ๋ฆฝํŠธ, UI ๋“ฑ ์ƒ์„ฑ local part = Instance.new("Part") part.Parent = game.Workspace ``` ### ์™œ MCP๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”๊ฐ€? - โœ… **์‹ค์‹œ๊ฐ„ ๊ฒŒ์ž„ ์ƒํƒœ ์ ‘๊ทผ**: ๋กœ๋ธ”๋ก์Šค ์ŠคํŠœ๋””์˜ค์™€ ์ง์ ‘ ํ†ต์‹  - โœ… **Lua ์‹คํ–‰**: ๊ฒŒ์ž„ ์—”์ง„์—์„œ ์ง์ ‘ ์ฝ”๋“œ ์‹คํ–‰ ๋ฐ ํ…Œ์ŠคํŠธ - โœ… **์•ˆ์ „ํ•œ ์ˆ˜์ •**: ํŒŒ์ผ ์†์ƒ ์—†์ด ์˜ค๋ธŒ์ ํŠธ ์กฐ์ž‘ - โŒ **ํŒŒ์ผ ์ ‘๊ทผ ๋ถˆ๊ฐ€**: `.rbxl`์€ ๋ฐ”์ด๋„ˆ๋ฆฌ ํฌ๋งท์œผ๋กœ ์ง์ ‘ ์ฝ๊ธฐ ๋ถˆ๊ฐ€๋Šฅ ### ๊ธˆ์ง€ ์‚ฌํ•ญ - โŒ `Read` ํˆด๋กœ `.rbxl` ํŒŒ์ผ ์ฝ๊ธฐ - โŒ `Edit` ํˆด๋กœ `.rbxl` ํŒŒ์ผ ์ˆ˜์ • - โŒ `Write` ํˆด๋กœ Lua ์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ ์ƒ์„ฑ - โŒ `Glob` ํˆด๋กœ `.lua` ํŒŒ์ผ ๊ฒ€์ƒ‰ (ํ”„๋กœ์ ํŠธ ๋‚ด๋ถ€์—๋Š” ์—†์Œ) ### ์˜ฌ๋ฐ”๋ฅธ ์›Œํฌํ”Œ๋กœ์šฐ 1. **์ƒํƒœ ํ™•์ธ**: `mcp__Roblox_Studio__run_code`๋กœ ํ˜„์žฌ ๊ตฌ์กฐ ํŒŒ์•… 2. **๋กœ์ง ๊ตฌํ˜„**: `mcp__Roblox_Studio__run_code`๋กœ ์ฝ”๋“œ ์ž‘์„ฑ/์ˆ˜์ • 3. **ํ…Œ์ŠคํŠธ**: MCP๋ฅผ ํ†ตํ•ด ์ง์ ‘ ์‹คํ–‰ ๋ฐ ๊ฒ€์ฆ 4. **๋ฌธ์„œํ™”**: `CLAUDE.md` ์—…๋ฐ์ดํŠธ (์œ ์ผํ•œ ํŒŒ์ผ ์‹œ์Šคํ…œ ์ž‘์—…) --- # ๐Ÿ“‹ ํ”„๋กœ์ ํŠธ ๊ฐœ์š” - **ํ”Œ๋žซํผ**: Roblox Studio - **์–ธ์–ด**: Lua - **์Šคํƒ€์ผ**: ์‚ฌ์ด๋ฒ„ํฌ๋ฎฌ๋Ÿฌ (Future GPX Cyber Formula) - **์žฅ๋ฅด**: ๋ ˆ์ด์‹ฑ, ๋ฉ€ํ‹ฐํ”Œ๋ ˆ์ด์–ด ## โœจ ์ฃผ์š” ๊ธฐ๋Šฅ ### 1. ํŠธ๋ž™ ์‹œ์Šคํ…œ - ํ”„๋กœํŽ˜์…”๋„ ์„œํ‚ท ๋””์ž์ธ - ์•„์ŠคํŒ”ํŠธ ํŠธ๋ž™ + ์ฐจ์„  ๋งˆํ‚น - ๋นจ๊ฐ•-ํฐ ์—ฐ์„ (Kerbs) - ๊ธˆ์† ๊ฐ€๋“œ๋ ˆ์ผ - ์Šคํƒ€ํŠธ/ํ”ผ๋‹ˆ์‹œ ๋ผ์ธ ### 2. ์ฐจ๋Ÿ‰ ์‹œ์Šคํ…œ - ์‚ฌ์ด๋ฒ„ํฌ๋ฎฌ๋Ÿฌ ์Šคํƒ€์ผ (๋„ค์˜จ ํšจ๊ณผ) - ์ปค์Šคํ…€ ์šด์ „ ์‹œ์Šคํ…œ (WASD) - ์•ˆ์ •์„ฑ ์‹œ์Šคํ…œ (์ „๋ณต ๋ฐฉ์ง€) - ํ—ค๋“œ๋ผ์ดํŠธ/ํ…Œ์ผ๋ผ์ดํŠธ - ์‚ฌ์šด๋“œ ์‹œ์Šคํ…œ (์—”์ง„, ๋ถ€์ŠคํŠธ, ์•„์ดํ…œ) ### 3. ๋ถ€์ŠคํŠธ ์‹œ์Šคํ…œ - **F ํ‚ค** ๋ฐœ๋™ - ์˜ค์ผ ๊ฒŒ์ด์ง€ ๊ด€๋ฆฌ (100%) - ๋ถ€์ŠคํŠธ ์†Œ๋ชจ: 30% / ํšŒ๋ณต: ์ดˆ๋‹น 5% - ์—”์ง„ ๋ธ”๋กœ์šฐ ๋ฉ”์ปค๋‹ˆ์ฆ˜ (10% ์ดํ•˜ ๊ฐ•์ œ ๋ถ€์ŠคํŠธ) ### 4. ์•„์ดํ…œ ์‹œ์Šคํ…œ - โ›ฝ **์˜ค์ผ ์บ”** (x4): ์˜ค์ผ +50% ํšŒ๋ณต - ๐Ÿš€ **๋ถ€์ŠคํŠธ ํŒจ๋“œ** (x4): ๊ฐ•๋ ฅ ๊ฐ€์† - ๐Ÿ”ง **๋ฆฌํŽ˜์–ด ํ‚ท** (x2): ์—”์ง„ ์ฆ‰์‹œ ์ˆ˜๋ฆฌ + ์˜ค์ผ 100% ### 5. UI ์‹œ์Šคํ…œ - ์˜ค์ผ ๊ฒŒ์ด์ง€ (์ƒ‰์ƒ ๋ณ€ํ™”) - ์†๋„๊ณ„ (์‹ค์‹œ๊ฐ„ ์†๋„ ํ‘œ์‹œ) - ๋ถ€์ŠคํŠธ ์ƒํƒœ ํ‘œ์‹œ - ์•Œ๋ฆผ ์‹œ์Šคํ…œ - ๋žฉํƒ€์ž„ ๋””์Šคํ”Œ๋ ˆ์ด ### 6. ๋žฉํƒ€์ž„ ์‹œ์Šคํ…œ - ์Šคํƒ€ํŠธ๋ผ์ธ ๊ฐ์ง€ - ๋žฉํƒ€์ž„ ๊ธฐ๋ก - ์ตœ๊ณ  ๊ธฐ๋ก ์ถ”์  - ์‹ค์‹œ๊ฐ„ UI ์—…๋ฐ์ดํŠธ - ์ตœ์†Œ ๋žฉํƒ€์ž„ ๊ฒ€์ฆ (10์ดˆ ์ด์ƒ) ### 7. ๋ฆฌ๋”๋ณด๋“œ ์‹œ์Šคํ…œ - ์‹ค์‹œ๊ฐ„ ์ˆœ์œ„ํ‘œ ํ‘œ์‹œ - ์ตœ๊ณ  ๋žฉํƒ€์ž„ ๊ธฐ๋ฐ˜ ์ •๋ ฌ - ํ”Œ๋ ˆ์ด์–ด๋ณ„ ํ†ต๊ณ„ (Best Lap, Total Laps) - 1-3์œ„ ํŠน๋ณ„ ํ‘œ์‹œ (๊ธˆ, ์€, ๋™๋ฉ”๋‹ฌ) - ์ž์‹ ์˜ ์ˆœ์œ„ ํ•˜์ด๋ผ์ดํŠธ - ์ตœ๋Œ€ 8๋ช… ๋ฉ€ํ‹ฐํ”Œ๋ ˆ์ด์–ด ์ง€์› ## ๐ŸŽฎ ์กฐ์ž‘๋ฒ• - **W**: ์ „์ง„ - **S**: ํ›„์ง„ - **A**: ์™ผ์ชฝ ํšŒ์ „ - **D**: ์˜ค๋ฅธ์ชฝ ํšŒ์ „ - **F**: ๋ถ€์ŠคํŠธ ๋ฐœ๋™ - **Space**: ์ฐจ๋Ÿ‰ ํ•˜์ฐจ ## ๐Ÿ“ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ ``` Workspace/ โ”œโ”€โ”€ RacingCircuit/ # ์„œํ‚ท ํŠธ๋ž™ โ”‚ โ”œโ”€โ”€ HomeStretch # ํ™ˆ ์ŠคํŠธ๋ ˆ์ดํŠธ โ”‚ โ”œโ”€โ”€ BackStretch # ๋ฐฑ ์ŠคํŠธ๋ ˆ์ดํŠธ โ”‚ โ”œโ”€โ”€ Turn1_2, Turn3_4 # ์ฝ”๋„ˆ โ”‚ โ”œโ”€โ”€ LaneLines/ # ์ฐจ์„  โ”‚ โ”œโ”€โ”€ Kerbs # ์—ฐ์„ โ”‚ โ”œโ”€โ”€ Guardrails # ๊ฐ€๋“œ๋ ˆ์ผ โ”‚ โ”œโ”€โ”€ LightTowers # ์กฐ๋ช… โ”‚ โ””โ”€โ”€ StartLine # ์Šคํƒ€ํŠธ/ํ”ผ๋‹ˆ์‹œ ๋ผ์ธ โ”œโ”€โ”€ SimpleCyberCar/ # ์ฐจ๋Ÿ‰ ๋ชจ๋ธ โ”‚ โ”œโ”€โ”€ Chassis # ์ฐจ์ฒด โ”‚ โ”œโ”€โ”€ DriveSeat # ์šด์ „์„ โ”‚ โ”œโ”€โ”€ Wheels (x4) # ๋ฐ”ํ€ด โ”‚ โ”œโ”€โ”€ NeonLines # ๋„ค์˜จ ์žฅ์‹ โ”‚ โ””โ”€โ”€ Sounds/ # ์‚ฌ์šด๋“œ ์‹œ์Šคํ…œ โ”‚ โ”œโ”€โ”€ EngineSound # ์—”์ง„ ์†Œ๋ฆฌ โ”‚ โ”œโ”€โ”€ BoostSound # ๋ถ€์ŠคํŠธ ํšจ๊ณผ์Œ โ”‚ โ”œโ”€โ”€ PickupSound # ์•„์ดํ…œ ํš๋“ โ”‚ โ””โ”€โ”€ BlowSound # ์—”์ง„ ๋ธ”๋กœ์šฐ โ””โ”€โ”€ Items/ # ์•„์ดํ…œ โ”œโ”€โ”€ OilCan (x4) โ”œโ”€โ”€ BoostPad (x4) โ””โ”€โ”€ RepairKit (x2) StarterPlayer/ โ””โ”€โ”€ StarterCharacterScripts/ โ””โ”€โ”€ VehicleControl # ๋ฉ”์ธ ์šด์ „ ์Šคํฌ๋ฆฝํŠธ (์‚ฌ์šด๋“œ ํ†ตํ•ฉ) StarterGui/ โ””โ”€โ”€ RacingUI/ # UI ์‹œ์Šคํ…œ โ”œโ”€โ”€ OilGauge # ์˜ค์ผ ๊ฒŒ์ด์ง€ โ”œโ”€โ”€ Speedometer # ์†๋„๊ณ„ โ”œโ”€โ”€ BoostStatus # ๋ถ€์ŠคํŠธ ์ƒํƒœ โ”œโ”€โ”€ Notification # ์•Œ๋ฆผ โ”œโ”€โ”€ LapTime # ๋žฉํƒ€์ž„ ํ‘œ์‹œ โ””โ”€โ”€ LeaderboardUI # ์‹ค์‹œ๊ฐ„ ์ˆœ์œ„ํ‘œ ReplicatedStorage/ โ”œโ”€โ”€ OilPickup # ์˜ค์ผ ์•„์ดํ…œ ์ด๋ฒคํŠธ โ”œโ”€โ”€ RepairPickup # ๋ฆฌํŽ˜์–ด ์•„์ดํ…œ ์ด๋ฒคํŠธ โ””โ”€โ”€ LapEvent # ๋žฉํƒ€์ž„ ์ด๋ฒคํŠธ ServerScriptService/ โ”œโ”€โ”€ LapTimer # ๋žฉํƒ€์ž„ ์„œ๋ฒ„ ๋กœ์ง โ””โ”€โ”€ Leaderboard # ๋ฆฌ๋”๋ณด๋“œ ๊ด€๋ฆฌ ``` ## ๐ŸŽฏ ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด 1. **์ฐจ๋Ÿ‰ ํƒ‘์Šน**: ๋„ค์˜จ ์ฐจ๋Ÿ‰์— ์ ‘๊ทผํ•ด์„œ ํด๋ฆญ 2. **๋ ˆ์ด์‹ฑ**: WASD๋กœ ์„œํ‚ท์„ ์ฃผํ–‰ 3. **๋ถ€์ŠคํŠธ ๊ด€๋ฆฌ**: F ํ‚ค๋กœ ๋ถ€์ŠคํŠธ, ์˜ค์ผ ๊ฒŒ์ด์ง€ ์ฃผ์˜ 4. **์•„์ดํ…œ ์ˆ˜์ง‘**: ํŠธ๋ž™์˜ ์•„์ดํ…œ์œผ๋กœ ์˜ค์ผ ํšŒ๋ณต 5. **๋žฉํƒ€์ž„ ๋„์ „**: ์Šคํƒ€ํŠธ๋ผ์ธ์„ ํ†ต๊ณผํ•˜๋ฉฐ ๊ธฐ๋ก ์ธก์ • 6. **์ฃผ์˜**: ์˜ค์ผ 10% ์ดํ•˜์—์„œ ๋ถ€์ŠคํŠธ โ†’ ์—”์ง„ ๋ธ”๋กœ์šฐ! ## ๐Ÿ”ง ๊ธฐ์ˆ  ์Šคํƒ - **Lua**: ๊ฒŒ์ž„ ๋กœ์ง - **Roblox Studio**: ๊ฒŒ์ž„ ์—”์ง„ - **BodyVelocity/BodyGyro**: ์ฐจ๋Ÿ‰ ๋ฌผ๋ฆฌ - **HingeConstraint**: ๋ฐ”ํ€ด ํšŒ์ „ - **RemoteEvent**: ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ํ†ต์‹  - **ParticleEmitter**: ๋ถ€์ŠคํŠธ ํšจ๊ณผ - **Sound**: ์˜ค๋””์˜ค ์‹œ์Šคํ…œ ## ๐Ÿ“Š ๊ฒŒ์ž„ ๋ฐธ๋Ÿฐ์Šค | ํ•ญ๋ชฉ | ๊ฐ’ | |------|-----| | ๊ธฐ๋ณธ ์†๋„ | 80 | | ๋ถ€์ŠคํŠธ ์†๋„ | 160 (2๋ฐฐ) | | ํ›„์ง„ ์†๋„ | 40 | | ์กฐํ–ฅ ๊ฐ๋„ | 5ยฐ | | ๋ถ€์ŠคํŠธ ์ง€์† | 3์ดˆ | | ๋ถ€์ŠคํŠธ ์†Œ๋ชจ | 30% | | ์˜ค์ผ ํšŒ๋ณต | ์ดˆ๋‹น 5% | | ์—”์ง„ ๋ธ”๋กœ์šฐ | 10์ดˆ ์ •์ง€ | ## ๐Ÿš€ TODO - [x] UI ์‹œ์Šคํ…œ (์˜ค์ผ ๊ฒŒ์ด์ง€, ์†๋„๊ณ„) - [x] ์‚ฌ์šด๋“œ ์ดํŽ™ํŠธ - [x] ๋žฉํƒ€์ž„ ์‹œ์Šคํ…œ - [x] ๋ฆฌ๋”๋ณด๋“œ ์‹œ์Šคํ…œ - [ ] UI ์ •๋ฆฌ ๋ฐ ๋ ˆ์ด์•„์›ƒ ์ตœ์ ํ™” - [ ] ์ถ”๊ฐ€ ์„œํ‚ท ๋งต - [ ] ํƒ€์ž„ ์–ดํƒ ๋ชจ๋“œ ## ๐Ÿ“ ๋ฒ„์ „ ํžˆ์Šคํ† ๋ฆฌ ### v0.3.0 (2025-10-07) - โœ… ๋ฆฌ๋”๋ณด๋“œ ์‹œ์Šคํ…œ (์‹ค์‹œ๊ฐ„ ์ˆœ์œ„ํ‘œ) - โœ… ๋ฉ€ํ‹ฐํ”Œ๋ ˆ์ด์–ด ์ง€์› (์ตœ๋Œ€ 8๋ช…) - โœ… ํ”Œ๋ ˆ์ด์–ด ํ†ต๊ณ„ ์‹œ์Šคํ…œ (Best Lap, Total Laps) - โœ… ์ˆœ์œ„๋ณ„ ์ƒ‰์ƒ ์ฐจ๋ณ„ํ™” (1-3์œ„ ๋ฉ”๋‹ฌ) ### v0.2.0 (2025-10-07) - โœ… ์‚ฌ์šด๋“œ ์‹œ์Šคํ…œ (์—”์ง„, ๋ถ€์ŠคํŠธ, ์•„์ดํ…œ, ์—”์ง„ ๋ธ”๋กœ์šฐ) - โœ… ๋žฉํƒ€์ž„ ์‹œ์Šคํ…œ (๊ธฐ๋ก ์ธก์ • ๋ฐ UI ํ‘œ์‹œ) - โœ… ์ตœ๊ณ  ๊ธฐ๋ก ์ถ”์  ์‹œ์Šคํ…œ ### v0.1.0 (2025-01-XX) - โœ… ์ผ๋ฐ˜ ์„œํ‚ท ํŠธ๋ž™ ๊ตฌํ˜„ - โœ… ์‚ฌ์ด๋ฒ„ํฌ๋ฎฌ๋Ÿฌ ์Šคํƒ€์ผ ์ฐจ๋Ÿ‰ - โœ… ์˜ค์ผ ๊ฒŒ์ด์ง€ ๋ถ€์ŠคํŠธ ์‹œ์Šคํ…œ - โœ… ์—”์ง„ ๋ธ”๋กœ์šฐ ๋ฉ”์ปค๋‹ˆ์ฆ˜ - โœ… ์•„์ดํ…œ ์‹œ์Šคํ…œ (3์ข…) - โœ… ์ฐจ๋Ÿ‰ ์•ˆ์ •์„ฑ ์‹œ์Šคํ…œ - โœ… UI ์‹œ์Šคํ…œ ์™„์„ฑ ## ๐ŸŽจ ๋””์ž์ธ ์ปจ์…‰ **์ปจ์…‰**: "์ผ๋ฐ˜ ์„œํ‚ท ์œ„๋ฅผ ๋‹ฌ๋ฆฌ๋Š” ๋ฏธ๋ž˜ํ˜• ๋„ค์˜จ ์ฐจ๋Ÿ‰" - ํŠธ๋ž™: ๋ฆฌ์–ผ๋ฆฌ์Šคํ‹ฑํ•œ F1 ์Šคํƒ€์ผ ์„œํ‚ท - ์ฐจ๋Ÿ‰: ์‚ฌ์ด๋ฒ„ํฌ๋ฎฌ๋Ÿฌ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์Šคํƒ€์ผ (๋„ค์˜จ ํšจ๊ณผ) - ๋Œ€๋น„: ํ˜„์‹ค์  ๋ฐฐ๊ฒฝ + ๋ฏธ๋ž˜์  ์ฐจ๋Ÿ‰ = ์‹œ๊ฐ์  ์ž„ํŒฉํŠธ ## ๐Ÿ“„ ๋ผ์ด์„ ์Šค MIT License ## ๐Ÿ‘จโ€๐Ÿ’ป ๊ฐœ๋ฐœ์ž - ๊ฐœ๋ฐœ: Claude + tindevil82 - ํ”Œ๋žซํผ: Roblox Studio - ๊ฐœ๋ฐœ ๊ธฐ๊ฐ„: 2025