Communitygithub.com

Pingwink/skill

Verwenden Sie dieses Skill, wenn Sie Blender mit Python automatisieren, leistungsstarke Cycles-GPU-Renderings (OptiX, Denoising, Fast GI) konfigurieren, Blender-5.2+-API-Änderungen (Compositing Node Groups, media_type VIDEO) beheben und Animationen in MP4/H.264 rendern.

Was ist skill?

Dieser Skill (Fähigkeit) enthält erprobte Prozeduren, Optimierungskonfigurationen und Codemuster, die beim Modellieren, Animieren und Rendern von Szenen in Blender 5.2 entwickelt wurden. Er deckt zwei Hauptkommunikationswege ab: die interaktive Socket-IPC-Steuerung (Port 127.0.0.1:9876, JSON-Protokoll) für schnelle Tests und Änderungen, und das Headless-CLI-Rendering für lange Animationen, um GUI-Einfrierungen zu vermeiden und die Renderzeit um 15–20% zu reduzieren. Der Skill dokumentiert die kritischen API-Änderungen in Blender 5.2, insbesondere die Notwendigkeit, `media_type` auf `'VIDEO'` zu setzen, bevor `file_format = 'FFMPEG'` zugewiesen wird, und die Verwendung von `compositing_node_group` anstelle von `scene.node_tree` für Compositing. Für extrem schnelle Cycles-Renderings wird eine Konfiguration bereitgestellt, die OptiX Ray Tracing, KI-Denoising (OptiX Denoiser), Fast GI und begrenzte Light Bounces verwendet, um die Renderzeit von ~56 s auf ~3 s pro Frame bei Studioqualität zu senken. Darüber hinaus enthält es Muster für organisches Modellieren (z. B. Augenlider mit Shape Keys), prozedurale Partikel (Rauch, Spiralen) und einen Überprüfungsablauf vor dem endgültigen Rendern, einschließlich Test-Frames und CLI-Validierung.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Pingwink/skill/tree/HEAD/skills/blender-cycles-video-workflow

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Blender 5.2 Automation, Cycles-Optimierung & Video-Workflow

Dieser Leitfaden (Skill) enthält erprobte Verfahren, Optimierungskonfigurationen und Codemuster, die beim Modellieren, Animieren und Rendern von Szenen in Blender 5.2 entwickelt wurden.


1. Kommunikations- und Rendering-Architektur

A. Steuerung der interaktiven Sitzung (Socket IPC)

Für interaktives Modellieren, Materialänderungen und Test-Frames verwenden Sie einen Socket-Client:

  • Port: 127.0.0.1:9876 (Blender MCP Plugin / Socket Bridge)
  • Protokoll: JSON mit Null-Byte-Terminator \0 ({"type": "execute", "code": "...", "strict_json": true})

B. Rendern von Animationen im Hintergrund (Headless CLI)

Regel: Rendern Sie keine langen Animationen über den Socket (Gefahr von GUI-Einfrieren oder Timeout). Speichern Sie die Szene als .blend und starten Sie einen dedizierten CLI-Prozess im Hintergrund:

& "C:\Program Files\Blender Foundation\Blender 5.2\blender.exe" -b "pfad\zu\projekt.blend" -s 1 -e 108 -a
  • Vorteile: 15–20 % schnelleres Rendern (kein OpenGL/Viewport-Overhead), Frame-für-Frame-Fortschrittsmeldung auf stdout, keine Blockierung der Benutzeroberfläche.

2. Wichtige API-Änderungen in Blender 5.2+

A. Video-Export nach FFMPEG / MP4

In Blender 5.2 führt die direkte Zuweisung von file_format = 'FFMPEG' zu den Standardeinstellungen zu einem TypeError. Setzen Sie zuerst media_type:

import bpy

scene = bpy.context.scene
ims = scene.render.image_settings

# 1. Erforderlich in Blender 5.2 vor der Auswahl des Videoformats:
ims.media_type = 'VIDEO'
ims.file_format = 'FFMPEG'

# 2. Konfiguration von Container und Codec:
scene.render.ffmpeg.format = 'MPEG4'
scene.render.ffmpeg.codec = 'H264'
scene.render.ffmpeg.constant_rate_factor = 'HIGH'
scene.render.ffmpeg.ffmpeg_preset = 'REALTIME' # Optionen: 'BEST', 'GOOD', 'REALTIME'

B. Compositor (Compositing Node Group)

Blender 5.2 führt compositing_node_group anstelle des alten scene.node_tree und NodeGroupOutput anstelle von CompositorNodeComposite ein:

scene = bpy.context.scene
scene.use_nodes = True

ng = scene.compositing_node_group
if not ng:
    ng = bpy.data.node_groups.new(name="Compositing", type='CompositorNodeTree')
    scene.compositing_node_group = ng

# Erstellen von Ein-/Ausgängen
rl = ng.nodes.new('CompositorNodeRLayers')
glare = ng.nodes.new('CompositorNodeGlare')
out = ng.nodes.new('NodeGroupOutput')

# In Blender 5.2 sind die Glare-Parameter Sockets, keine Objekteigenschaften:
glare.inputs['Type'].default_value = 'Fog Glow'
glare.inputs['Threshold'].default_value = 0.55
glare.inputs['Size'].default_value = 7.0
glare.inputs['Strength'].default_value = 0.8

3. Extreme Cycles-Optimierung (16× schnelleres GPU-Rendering)

Konfiguration, die die Renderzeit von ~56 s auf ~3 s pro Frame bei Studioqualität reduziert:

import bpy

scene = bpy.context.scene
scene.render.engine = 'CYCLES'

# 1. OptiX Ray Tracing & GPU-Einrichtung
cpref = bpy.context.preferences.addons['cycles'].preferences
cpref.compute_device_type = 'OPTIX'
cpref.get_devices()

# Nur NVIDIA-Grafikkarte aktivieren (langsame CPU deaktivieren)
for device in cpref.devices:
    if device.type == 'OPTIX' and 'GeForce' in device.name:
        device.use = True
    else:
        device.use = False

cycles = scene.cycles
cycles.device = 'GPU'

# 2. Intelligentes Sampling mit KI-Entrauschung
cycles.samples = 10                  # 10-12 Samples reichen bei OptiX Denoiser!
cycles.use_denoising = True
cycles.denoiser = 'OPTIX'

# 3. Fast GI & Begrenzung der Lichtreflexionen (Light Bounces)
cycles.use_fast_gi = True
cycles.max_bounces = 4
cycles.diffuse_bounces = 2
cycles.glossy_bounces = 2
cycles.transmission_bounces = 2
cycles.volume_bounces = 1
cycles.transparent_max_bounces = 4
cycles.caustics_reflective = False
cycles.caustics_refractive = False

# 4. Wiederverwendung von Geometriedaten zwischen den Frames
scene.render.use_persistent_data = True

4. Modellierungs- und Animationsmuster

A. Organische Augenlider (Shape Keys + quadratisches Profil)

  • Verformen Sie die Oberkante des Augenlids zur Unterkante hin, während die Augenellipse erhalten bleibt: closed_z = -h_bot * math.sqrt(max(0.0, 1.0 - (x / w_eye)**2))
  • Animieren Sie parallel die Hautfalte (Crease) und eine subtile Drehbewegung des Augapfels nach unten beim Schließen der Lider, um einen müden, natürlichen Ausdruck zu erzielen.
  • Verwenden Sie BEZIER-Interpolation mit EASE_IN_OUT für sanftes Beschleunigen und Verlangsamen der Lidbewegung.

B. Prozedurale Rauch- und Wirbelpartikel

  • Erzeugen Sie Spiralbänder mit bmesh: radius = r_base + delta * t, spiral_angle = base_angle + t * turns * pi.
  • Verwenden Sie ein Principled-BSDF-Material mit Transparenz basierend auf ShaderNodeTexNoise, gemischt mit einem ColorRamp.
  • Schleifen Sie die Rotation mit interpolation = 'LINEAR' (von Winkel 0 bis einem Vielfachen von 360°), um eine gleichmäßige, wiederholbare Partikelbewegung zu erreichen.

5. Überprüfungsablauf vor dem endgültigen Rendern

  1. Rendern Sie immer 1 Test-Frame mit offenem Objekt und 1 mit geschlossenem/maximal transformiertem Objekt.
  2. Messen Sie die Ausführungszeit eines einzelnen Frames: animationszeit = anzahl_frames * zeit_pro_frame
  3. Testen Sie ein kurzes CLI-Rendering von 2 Frames (-s 1 -e 2 -a), um die korrekte Erstellung der Videodatei zu überprüfen.

Verwandte Skills