Roblox: Nachbau aus Referenzvideo
Das Ziel ist "genau wie im Video". Der Benutzer lehnt erfundene Effekte oder Mechaniken, steife Animationen und Verzierungen ab, die nicht im Clip vorkommen. Alles hier hält dich am Referenzmaterial fest und zwingt dich, dagegen zu verifizieren – nicht gegen deine Erinnerung.
Werkzeuge: Roblox Studio MCP (execute_luau, search_asset, insert_asset, upload_image, screen_capture, start_stop_play, user_keyboard_input, user_mouse_input, get_console_output, multi_edit), Blender MCP (execute_blender_code – Bildextraktion und VFX-Erstellung), PowerShell/Bash.
0. Grundregeln
- Baue nur das nach, was das Video zeigt. Unklar? Schau dir mehr Frames an; immer noch unklar? Frage nach – fülle keine Lücken mit eigenen Ideen.
- Texturen/Bilder: Zeichne keine eigenen. Nutze zuerst den Creator Store. Wenn nichts annähernd passt, erstelle das Asset in Blender aus der Referenz (§4) und teile dem Benutzer mit, dass du das getan hast.
- Standard-Auslöser ist ein Tastendruck (frage nach, wenn nicht angegeben).
- Keine unaufgeforderten Verzierungen (Drehungen, cartoony Überschläge). Der Benutzer hat sie explizit abgelehnt.
- Kopiere Mechaniken, Feeling und Effekte – nicht das Branding, die Namen, UI-Kunstwerke oder geklaute Assets eines anderen Spiels, und klone kein komplettes bestehendes Spiel. Wenn du gebeten wirst, ein Spiel identisch zu einem anderen zu machen, erstelle die spezifischen gezeigten Mechaniken/Effekte nach und sage das.
1. Extrahiere und studiere die Einzelbilder
- Rendere Einzelbilder durch Blender (ffmpeg fehlt meist): Sende
scripts/extract_frames.pyanexecute_blender_codemit gesetztemVIDEO/OUT. Es verwendet eine temporäre Szene und lässt die .blend des Benutzers unberührt. Unter Windows halteOUTkurz (MAX_PATH). scripts/contact_sheet.ps1 -Dir <OUT>→ 4×4 beschriftete Kontaktbögen. Lies alle Bögen, öffne dann einzelne Frames bei jedem Schnitt, Aufprall, UI-Wechsel und Input. Für schnelle Mechaniken verwendeSTEP = 1um den zu messenden Moment herum.- Entscheide, was du baust: VFX/Zwischensequenz, Spielsystem oder beides (die meisten Kampfbewegungen sind beides: ein System, das entscheidet, was passiert + VFX, das es zeigt).
- Schreibe die Spezifikation vor dem Bau – sie ist das, wogegen du später verifizierst:
- Beat-Tabelle (VFX): eine Zeile pro Beat mit Zeit (Frame/fps), Kamera, jedem Effekt (Form, Farbe, Textur, Größe, Lebensdauer, Anzahl), Pose jeder Figur, Nachbearbeitung.
- System-Spezifikation (Mechaniken): Eingaben, Zustände und Übergänge, Zeitsteuerung (Vorbereitungs-/Aktiv-/Erholungs-/Abklingzeit in Frames), Distanzen und Geschwindigkeiten (gemessen am ~5-Stud-R15-Körper), auf dem Bildschirm angezeigte Zahlen, UI und dessen Animationen, was andere Spieler sehen. Siehe
references/systems.md.
2. Untersuche den Ort
search_game_tree + schnelle Dumps von Lighting, StarterPlayer, ReplicatedStorage, ServerScriptService. Verwende die vorhandenen Frameworks des Benutzers (Kampfmodule, Remotes, Datenspeicher, UI-Kits) wieder, anstatt parallele zu bauen; passe dich ihrem Codestil an.
3. Assets aus dem Creator Store
search_asset(scopecreator_store,priceFilter: free) mit 3–5 Formulierungen pro Element. Vergleiche Kandidaten visuell:scripts/asset_sheet.ps1erstellt ein beschriftetes Thumbnail-Blatt, das du neben den Referenzbildern lesen kannst.- Eine Decal-Asset-ID ist nicht die Bild-ID: Löse sie mit
game:GetObjects("rbxassetid://"..id)[1].Texture(Edit-Datenmodell) auf, bevor du sie in Partikeln/GUIs verwendest. - Kostenlose Modelle enthalten oft Hintertüren. Liste nach dem Einfügen eines Modells jeden
LuaSourceContainerauf; behalte nur, was du brauchst, und zerstöre den Rest. - Echte Avatare als Dummies/Gegner:
Players:CreateHumanoidModelFromUserId(Players:GetUserIdFromNameAsync(name))funktioniert aus Edit. Verankere das HRP, setze die Füße auf den Boden, entferne Skripte bis auf Animate.
4. Wann VFX in Blender erstellt werden
Standardmäßig native Roblox-Effekte (Partikel, Balken, Spuren, Teile, GUIs) – günstig, anpassbar, live gerendert. Gehe zu Blender, wenn die Referenz etwas zeigt, das Native nicht gut annähern können:
| Referenz zeigt | Blender-Ausgabe | Nach Roblox via |
|---|---|---|
| dicke 3D-Schlitz-Halbmonde, gedrehte Spiralen, Schockwellen-Kuppeln, Stacheln, Bodenbrüche mit Tiefe | Mesh mit UVs (+ Gradient/Noise-Textur) | EditableMesh aus exportierten Daten erstellt, oder 3D Importeur |
| handgezeichnete/anime Rauch, Feuer, Explosionen, Energieausbrüche, Impact-Frames | gerendertes Flipbook-Spritesheet (transparentes PNG) | upload_image → ParticleEmitter-Flipbook / ImageLabel |
| komplexe Texturen (Noise-Spuren, Gradienten-Rampen, Wirbelkarten) | gerendertes PNG | upload_image → Beam/Trail/Texture |
Lies references/blender_vfx.md für die Pipeline (Szeneneinrichtung, Flipbook-Render + Gitterpackung, Mesh-Export nach Luau, Localhost-Upload, EditableMesh-Builder, Animieren von Meshes in der Timeline).
5. Bauen
- VFX / Zwischensequenzen: ein clientseitiges ModuleScript, gesteuert von einer Timeline (Ereignisse, Kameraeinstellungen, aktualisierende Pro-Frame-Funktionen, Timeline-Zeitverzögerungen, Warp-Zonen, Pause) mit einem Bereinigungs-Stack, plus eingefügte Körper für Zauberer und Ziel. Kopiere das Grundgerüst in
references/engine.md. - Systeme: server-autoritativ – der Client sendet eine Absicht über ein RemoteEvent, der Server validiert (Abklingzeit, Zustand, Reichweite, Ratenbegrenzung) und wendet das Ergebnis an, Clients rendern Feedback. Ordnerstruktur und systembezogene Rezepte in
references/systems.md. - Beides: Der Server entscheidet über Treffer/Schaden/Zustand und feuert Clients; jeder Client spielt das VFX-Modul ab. Halte Zeitsteuerungen in einer gemeinsamen Konfiguration, damit Mechaniken und Visuals synchron bleiben.
6. Animation, die lebendig wirkt
Statische Posen wirken wie "Buns". Was funktioniert:
- Keyframe-Spuren, nicht Posen – Dutzende Keys pro Charakter; jeder Key = Pose + Überschreibungen + Easing hinein.
- Jeder Angriff: Antizipation (Quad.In) → Schlag (Exponential.Out, 40–70 ms) → Überschwingen (Quad) → Einpendeln (Sine.InOut). Jeder Treffer auf ein Ziel: Rückstoß-Key + abklingender Schüttel-Impuls.
- Additives Leben jeden Frame: Atmen, langsames Noise-Driften aller Gelenke, Treffer-Schütteln, Zittern.
- Gib Zielen eine Performance (Erschrecken, Rückstoß, Taumeln, Bodenkollaps: Knie, Hände, Seite). Keine Saltos, es sei denn, der Clip zeigt sie.
- Passe die Story-Beats an die Schnitte des Clips an; frage nach dem Tempo und verwende
TimeWarp-Zonen, um Abschnitte zu verlangsamen.
7. Gegen die Referenz verifizieren
- Testspiel. Zeitachsen: Schrittweise mit
PauseAtund mache Screenshots von jedem Beat neben dem passenden Referenzframe. Systeme: Steuere Eingaben mituser_keyboard_input/user_mouse_input, lese den Zustand sowohl ausClient- als auchServer-Datenmodellen aus und messe Zeitsteuerungen (os.clock) und Distanzen gegen die Spezifikation – Zahlen, nicht Eindrücke. - Debug-Kamera bei
Enum.RenderPriority.Last.Value; lösche Partikel/deaktiviere Balken und GUIs während des Pausierens, um Körper zu sehen. execute_luauläuft in seiner eigenen VM:requiregibt eine separate Modulinstanz zurück – beobachte den Spielzustand (Attribute, Verankerung, CameraType), nicht Modulfelder.- Beende mit einem echten Input, bestätige dann die Bereinigung/Wiederherstellung und eine saubere
get_console_output.
8. Fallstricke
Lies references/gotchas.md vor dem Bau – unsichtbare 1-Segment-Balken, dunkle Hof-Fackeln, DepthOfField-Verschmierung, Expo vs Exponential, Gelenktransformationen, die nur in PreSimulation gerendert werden, AnimationConstraint-Rigs, Körpergrößen-Skalierung + Bodenklammerung, Geländewassertiefe, Overlays, die im Wasser reflektiert werden, Netzwerkfallen und mehr.
9. Bericht
Was jeder Beat/Mechanik jetzt tut (mit Zeitstempel oder pro Zustand), welche Assets verwendet wurden (Store-IDs, in Blender erstellte Assets und deren hochgeladene IDs), was nicht angeglichen werden konnte und warum, wo die einstellbaren Parameter leben (Konfigurationsmodule, Cutscene.Poses/Tracks, TimeWarp), und eine Erinnerung, den Ort zu speichern (Strg+S).