Blender-Film mit Claude
Der Workflow hinter einem 10-Sekunden-Nacht-FPV-Drohnenflug durch eine Stadt: ein Storyboard, eine echte physikalische Flugbahn, ein Wendepunkt (der erste Held funktionierte nicht), Nachtbeleuchtung, Sound aus der Bewegung, ein 3,5-stündiger Render und eine Clay-Build-Up-Enthüllung. Jeder Schritt unten ist ein Skript in scripts/, das für diesen Shot tatsächlich ausgeführt wurde; die darin enthaltenen Namen (Drone Empty, Street Asphalt, Building_1...) stammen aus dieser Szene – benenne sie für deine Szene um.
0. Einrichtung
- Blender 4.4+ (erstellt auf 5.2), eine GPU für Cycles, Python 3 +
ffmpegim Pfad (+numpy,scipyfür den Sound-Schritt). - Live-Bridge (Claude steuert den geöffneten Blender, du siehst zu): Führe in Blenders Text-Editor
tools/bridge.pyaus (hört auf 127.0.0.1:9876). Dann von einem Terminal:python tools/send.py scripts/06_night.pyoderpython tools/send.py -c "print(bpy.data.filepath)". - Setze
FILM_ROOTauf deinen Projektordner (Standard:~/blender-film):scene/,render/,audio/,research/befinden sich dort.tools/lib.pywird von jedem Skript geladen (Hilfsfunktionen:coll(),save(),snap()...). - Arbeite auf Kopien. Bevor du ein Skript erneut abspielst oder ausführst, das Materialien bearbeitet, kopiere die .blend-Datei – mehrere Durchläufe sind nicht idempotent, wenn ein Lauf in der Mitte abstürzt (erneutes Ausführen hinterlässt verwaiste Node-Links einmal).
1. Zuerst das Storyboard
Bitte Claude um ein 10-Sekunden-Storyboard, bevor du Blender öffnest: Shot-Liste mit Zeitangaben, Kamera pro Shot, wo der Held ist, was der Betrachter fühlt. Verwandle es in ein einziges Bildblatt (jedes Bildmodell) und behalte es offen – jede spätere Entscheidung wird daran überprüft.
2. Stadt
Verwende ein eigenes Stadt-Asset-Paket (Gebäude, Straßen, Requisiten) oder kostenlose CC0-Assets (Poly Haven). Lass Claude eine Allee + eine Kreuzung entlang +X aus einer Draufsicht anlegen (halte den Weg des Helden frei von Requisiten), und dekoriere sie dann: Autos (geparkt / fahrend / stehend), Lampen, Bäume, Hydranten. Backe jedes externe Asset in die .blend-Datei ein.
3. Bewegung aus der Physik, nicht handgetakteten Kurven
scripts/01_swing_sim.py simuliert die Bewegung (Schwerkraft, Luftwiderstand, ein Seil, das sich nicht dehnen kann, Web-Anker aus dem Storyboard) und durchsucht die Anker-Zeitpunkte, bis der Weg die Straße durchquert. 02_path_empty.py verwandelt es in eine Pfadkurve + ein Empty auf Follow Path mit dem Offset, das pro Frame getaktet ist (echte Geschwindigkeit, nicht linear). Der Held ist an das Empty parented, die Kamera folgt ihrem eigenen Pfad (03_camera.py, + 03b_camera_noise.py für subtiles Wackeln).
4. Der Held – und wann man umschwenken sollte
Der erste Held war ein rigger Spider-Man, animiert mit Mixamo-Clips. Es scheiterte: Motion-Capture ist am Boden aufgezeichnet, also hing er in der Luft wie eine Puppe, die Posen waren steif, und er war winzig im Bild. Wenn die Figur mit Gliedmaßen falsch aussieht, tausche den Helden aus – behalte die Stadt, die Kamera und den Weg. Frage Claude nach Optionen (wir bekamen: Falke, Supercar, manuelle Korrektur, FPV-Drohne).
Die FPV-Drohne funktioniert, weil nichts steif aussehen kann. 04_drone_attitude.py fliegt sie wie ein echtes Quad:
- Haltung aus der Physik: Schubachse = Beschleunigung + Schwerkraft, Nase entlang der Geschwindigkeit → sie neigt sich in Beschleunigungen, legt sich in schnellen Kurven hart in die Kurve, hebt die Nase beim Bremsen;
- Gas weg, wo der Weg ballistisch ist → Freestyle-Tricks werden darauf gelegt: Power Flip, Barrel Roll, Backflip;
- Bremsen mit Nase hoch in einen Schwebeflug, dann ein langsames Gieren, um ins Objektiv zu starren; sich drehende Propeller + cyan/magenta LED-Streifen.
5. Realismus-Pass (05_realism.py)
Die kleinen Dinge, die niemand bemerkt, bis sie fehlen: AgX-Belichtung (kein Grading), ein dünner Dunst-Volumen, Asphalt mit unterbrochener Texturwiederholung, Reifenspuren, eine Ölspur pro Fahrspur, Reparaturflicken, abgenutzte Farbe und Schmutz am Fuß jeder Wand + schwache Ablaufspuren.
6. Nacht, die wie Nacht aussieht (06_night.py)
Regel: Nachts beleuchtet der Himmel die Szene nicht – praktische Lichtquellen tun es. Dunkler Verlaufshimmel mit Stadtglühen, LED-Straßenlaternen, beleuchteten Fenstern, Auto-Scheinwerfern/Rücklichtern, roten Ampeln, blau getöntem Nebel mit einem Hauch Emission, nassem Asphalt mit Pfützen.
- Erster Versuch scheiterte (orangefarbener Nebel überall, leuchtende Blöcke statt Fenster).
- Die Lösung: die Fassadentexturen wissen bereits, wo das Glas ist – Glas ist glatt, Wände sind rau. Verwende die Rauigkeitskarte als Fenstermaske (
roughness < 0.3), dann beleuchte eine zufällige Teilmenge pro Fensterzelle: warm, kalt, aus.
7. Kamera wie ein echter Operator (07_shakify_cams.py)
Ersetze prozedurales Rauschen durch Shakify (kostenloses Add-on mit echten aufgezeichneten Kamerabewegungen) auf jeder Kamera des Shots. Füge Nahaufnahmen hinzu: eine Straßenkamera ~0,45 m über der nassen Straße, die Drohne taucht auf die Linse zu und stoppt direkt davor. 08_lens_look.py: Bloom um Lichter, leichte tonnenförmige Verzerrung + Dispersion – kein Farbgrading, der Look ist die Beleuchtung.
8. Sounddesign aus der Bewegung
Kostenlose CC0-Aufnahmen (BigSoundBank: DJI-Drohne, Stadt bei Nacht, nasser Straßenverkehr, Hupen, entfernte Sirene, Wind, Regen auf einer Pfütze, eine Klimaanlage). 11_motion_data.py liest die Animation pro Frame (Drohnenentfernung / Radialgeschwindigkeit / Seite / Gas, nahe Autos) in audio/motion.json; 12_build_sfx.py steuert den Mix daraus:
- Gas -> Motor-Drehzahl -> Tonhöhe; Radialgeschwindigkeit -> Doppler (Tonhöhe fällt beim Passieren der Linse); Seite -> Equal-Power-Pan;
- Entfernungsverstärkung + Luftabsorption, Propeller-Windleistung bei Gasschüben, Spritzer, wenn sie tief über der nassen Straße schwebt, die Dach-Klimaanlage nur im Dach-Shot, vorbeifahrende Autos bei ihrer nächsten Annäherung, Straßenschlucht-Hall;
- Erstelle zwei Versionen (ruhige Nacht / volles Stadt-Chaos) und wähle nach Gehör. Ruhig gewann: Lass den Helden der Star sein. Lautstärke -14 LUFS.
9. Über Nacht rendern – sicher
09_render_opt.py: Entferne versteckte doppelte Geometrie (das Baum-Asset trug zusätzliche Kopien), verwende einen leichteren LOD für alles, was weit von jeder Shot-Kamera entfernt ist, GPU-Denoiser. Keine sichtbare Änderung.- Rendere zuerst sechs Test-Stills in Endqualität und überprüfe sie.
10_render_edit.pyrendert nur die Frames, die der Schnitt verwendet (Shot-Liste = Kamera + Framenummer), fortsetzbar, und schreibtrender/status.json;tools/render_window.ps1(Windows) zeigt ein sauberes Fortschrittsfeld: %, verbleibende Zeit, letzter fertiger Frame.- Nach dem Rendern: Überprüfe, ob jeder Frame existiert, keine schwarzen / defekten Frames vorhanden sind (Helligkeit pro Frame, Sprünge nur an geplanten Schnitten), Sound mit der genehmigten Mischung übereinstimmt, Lautstärke YouTube-bereit ist. Erst dann codieren + (wenn du danach gefragt hast) den PC herunterfahren.
10. Die Clay-Build-Up-Enthüllung (Beweis, dass es echtes 3D ist)
13_aerial_cam.py fügt eine hohe Kamera über der Allee hinzu. Auf einer neuen Kopie der Szene verwandelt 14_clay_build.py alles in weißen Ton, friert die Kamera + den Verkehr in einem Frame ein und versteckt jedes Teil bis zu seiner Reihe, dann lässt es es vom Himmel fallen: zuerst Autos, dann die Gebäude, die der Kamera am nächsten sind, dann die ferne Stadt, dann Laternen und Hydranten (~500 Teile). Jeder Fall beschleunigt und hüpft bei der Landung ein wenig. tools/clay_assemble.sh: Nacht | harter Schnitt | Clay-Build | ein 0,25 s Wisch | Nacht, gleiche Kamera, gleicher Frame. Clay- vs. Nacht-Split-Stills ergeben großartige Thumbnails.
Lektionen, die Zeit gekostet haben
- Bildschirmrekorder nehmen schwarz auf, wenn die Fensterspezifikation falsch ist – überprüfe den ersten aufgezeichneten Frame, bevor du weggehst.
- Viewport-Aufnahmen: Materialvorschau benötigt Bewegungsunschärfe ausgeschaltet und Volumen nicht verknüpft, sonst verschmiert es; der Cycles-Viewport benötigt einen Denoiser.
- Relative Ausgabepfade in
blender -blösen auf das Laufwerksverzeichnis auf – gib immer absolute Pfade an. - Frage vor jeder langen GPU-Aufgabe; teste zuerst in niedriger Qualität, Endqualität zuletzt.
Lizenz: MIT. Wird ausschließlich von Abdullah Formuli gepflegt. Keine externen Beiträge werden akzeptiert.