Was macht Xiaolin Shuo Erklärungs-Paket?
Verwandle eine Reihe von A-Roll-Clips (Sprecher-Aufnahmen) und zugehörige Skripttexte in ein vollständiges Erklärvideo im Stil von Xiaolin Shuo. Die A-Roll-Clips werden entweder von anderen Tools generiert oder aufgezeichnet. Dieses Skill ist verantwortlich für die Recherche der benötigten Materialien, die Erstellung der Erklärgrafiken, Untertitel, Übergänge und die Audio-Abmischung.
Falls in der Umgebung design-aesthetic-standard gesetzt ist, richten sich alle visuellen und auditiven kreativen Entscheidungen auch danach. Falls video-generation gesetzt ist, wird die Erstellung und Bearbeitung der A-Roll-Clips von diesem Skill übernommen.
Referenzdokumente (bei Bedarf lesen)
references/style-bible.md: Ihr grafischer Stil, die 6 harten Regeln, Farbpalette, Schriftarten, Bild-in-Bild, Übergangsstatistiken, Audio-Pegel. Vor der Szenenplanung lesen.references/research.md: Welche Informationen für jedes Layout benötigt werden, Quellenhierarchie, wo suchen, Bildrechte. Bei der Szenenplanung lesen.references/layouts.md: Parameter, Beispielaufrufe und Fallstricke für jede Layout-Komponente. Beim Schreiben des Storyboards lesen.references/storyboard-api.md: Formate vontimeline.jsonundproject.json, Storyboard-API, Keyword-Timing, Review- und Rendering-Befehle. Beim ersten Einrichten des Projekts lesen.
Umgebung
- Node ≥ 18, ffmpeg, python3 (mit numpy und Pillow).
npm installund das erste Rendern erfordern eine Internetverbindung (Remotion lädt Chrome herunter). - Nur auf macOS (Apple Silicon) getestet. Auf anderen Systemen wird standardmäßig der Software-Renderer
swangleverwendet; dies kann mit der UmgebungsvariableREMOTION_GLgeändert werden. - Schriftarten: Die Vorlage enthält 6 SIL OFL-Schriftarten, Lizenzen siehe
templates/engine/public/fonts/LICENSES.txt. Die Schriftart '优设标题黑' (YouShe.ttf) ist möglicherweise nicht im Paket enthalten. Das Skriptnew_project.shsucht zuerst in$YOUSHE_TTFund dann in den üblichen Schriftartenverzeichnissen. Wenn sie nicht gefunden wird, wird der Benutzer aufgefordert, sie von https://www.uisdc.com/uisdc-first-free-font herunterzuladen und alspublic/fonts/YouShe.ttfzu speichern. Fehlt diese Schrift, fallen Titel und Untertitel auf die fetteste Stufe von Source Han Sans (900) zurück, ohne Schrägschnitt, was den Stil deutlich abschwächt. - Remotion-Lizenz: Einzelpersonen, Unternehmen mit bis zu 3 Mitarbeitern und gemeinnützige Organisationen können Remotion kostenlos nutzen, auch kommerziell. Unternehmen mit 4 oder mehr Mitarbeitern benötigen eine Unternehmenslizenz (https://www.remotion.pro/license).
Arbeitsablauf
1. Eingabe vorbereiten
- A-Roll-Clips: Ein MP4 (1920×1080) pro Satz, ablegen in
public/clips/<id>.mp4. - Skript: Für jeden Satz den gesprochenen Text
say(chinesische Schrift) und den Untertiteltextsubangeben. - Fakten-Datei: Aus
templates/facts_template.mdkopieren. Vorhandene Fakten und Quellen eintragen, fehlende werden in Schritt 4 recherchiert. - Optional: Reale Aufnahmen oder KI-Bilder (
public/broll/), Fotos (public/photos/), Musik (public/music/), neue Icons (public/icons/).
2. Projekt einrichten
<skill>/scripts/new_project.sh <Projektverzeichnis> # Mit --demo werden 4 Fake-A-Roll-Clips und ein Beispiel-Storyboard erstellt, ideal für Smoke-Tests
Dann timeline.json schreiben. Jeden A-Roll-Clip transkribieren und tin/tout festlegen, dabei Stille am Anfang und Ende entfernen; Versprecher in der Mitte in cuts eintragen. In project.json die Werte brand und music anpassen.
3. Szenen planen (zuerst Tabelle, dann Code)
Nachdem style-bible.md und research.md gelesen wurden, eine Tabelle erstellen: Szenenname | Welche Sätze werden abgedeckt | Layout | Dunkel oder Weiß (Papier) | Bild-in-Bild-Methode | Benötigte Informationen. Folgende 5 Punkte überprüfen:
- Eine Szene umfasst 2–8 Sätze, nicht einen Satz pro Seite.
- Jede Szene kann entweder "Hauptmotiv wird beschnitten" oder "Hauptmotiv füllt >60% des Bildschirms" nachweisen (R1).
- Zwischen je 2–3 dunklen Szenen gibt es 1 helle (Papier-)Szene (R2).
- Wo Originalzitate verwendet werden, kommt
docpagezum Einsatz, und das Zitat muss wörtlich und korrekt sein. - Der einleitende Haken, die Hauptaussage, der Wendepunkt und das Ende bleiben für Vollbild-A-Roll reserviert; nicht mit Erklärgrafiken überdecken.
4. Recherche durchführen
Die in der Szenentabelle unter "Benötigte Informationen" aufgeführten Punkte einzeln nach den Methoden in research.md recherchieren. Jedes Ergebnis mit Nummer, Originaltext, Quellenlink und Datum in die Fakten-Datei eintragen. Fotos mit dem Skript scripts/commons_photo.py suchen und herunterladen.
Nach der Recherche die Szenentabelle überarbeiten: Wenn kein wörtliches Zitat gefunden wird, docpage nicht verwenden. Wenn keine Daten aus derselben Quelle mit derselben Metrik verfügbar sind, paper nicht verwenden. Wenn die Zahlen im Skript nicht mit der Fakten-Datei übereinstimmen, zuerst das Skript anpassen, dann den Clip neu generieren oder zuschneiden.
5. Storyboard schreiben
Das Format aus templates/scenes_example.py kopieren. Jede Szene muss:
- Elemente an Keywords ausrichten:
S.k('Stichwort', -0.15). - Das aktuell Besprochene hervorheben, den Rest abdunkeln (
focus/hl/lit). Die Kamera folgt dem aktuellen Element (sc.cam/look). - Mit
KF.append((Label, Zeitpunkt))mindestens 1 Review-Frame pro Szene registrieren.
python3 story_core.py timeline.json scenes.py ausführen und prüfen, dass gaps/overlaps [] ausgegeben wird.
6. Keyframe-Review (mindestens 2 Runden)
python3 -c "import json;print(' '.join(str(f) for _,f in json.load(open('keyframes.json'))))" | xargs node render.mjs stills stills/k1
python3 <skill>/scripts/sheet.py stills/k1 keyframes.json 6
Das zusammengesetzte Bild Frame für Frame betrachten, nach der untenstehenden Review-Liste korrigieren, die geänderten Frames neu rendern. Falls Vergleichsmaterial vom Originalkanal vorhanden ist, Screenshots ähnlicher Layouts danebenlegen und vergleichen.
7. Gesamtfilm, Audio-Mixing, Finalisierung, Qualitätskontrolle
<skill>/scripts/render_chunks.sh video.mp4
python3 <skill>/scripts/mix_audio.py timeline.json mix_raw.wav
<skill>/scripts/finalize.sh video.mp4 mix_raw.wav final.mp4
python3 <skill>/scripts/audit.py video.mp4 72 # Frame-für-Frame-Vergleich; 'flagged' muss 0 sein
Mobile Version: ffmpeg -i final.mp4 -c:v libx264 -crf 23 -preset medium -pix_fmt yuv420p -c:a aac -b:a 128k -movflags +faststart final_phone.mp4.
Review-Liste
Überprüfe jeden Keyframe:
- Das Hauptmotiv ist entweder groß genug oder wird vom Bildrand beschnitten. Keine großen leeren Flächen.
- Das aktuell besprochene Element ist am hellsten, die Kamera nahe daran.
- Maximal 2 Labels in einem Frame.
- Nichts wird durch Untertitel (Bildschirm-y 905–960), Bild-in-Bild, Senderlogo oder KI-Hinweise verdeckt.
- Keine leeren Quadrate (fehlende Glyphen), keine Zeilenumbrüche in vertikalen Wörtern, keine überlaufenden Wörter in Karten.
- Zahlen, Einheiten und Zitate stimmen mit der Fakten-Datei überein, Quellenzeile ist vorhanden, CC-BY-Fotos haben Namensnennung.
- Helle (Papier-) und dunkle Szenen wechseln sich ab.
Bekannte Fallstricke
- Steht das Keyword am Satzanfang, liegt
S.k(Wort, -0.3)vor dem Clip-Anfang. Mitmax(S.t0, …)abfangen. formula6: Die Token-Spaltenbreite ist gleichiw.iwmuss ≥ (Anzahl der Zeichen) ×fssein.- Bildschirm-x = (Welt-x − Kamera-x) × s + 960.
piprectbelegt Bildschirm-x 110–560, das Hauptmotiv muss bei ≥ 600 platziert werden. Wenn die Kameraposition geändert wird, verschiebt sich die Position des Hauptmotivs auf dem Bildschirm entsprechend. - Standard-Einheit von
ui-Ergebnissen ist "元/月", mitu=ändern. - Der untere Rand von
paper-Karten muss auf Bildschirm-y ≤ 900 sein. ent6Flaggen sind nur verfügbar für:clcndefrjpus.- Wenn ein Bildpfad nicht existiert, schlägt das Rendern dieses Frames fehl (
FAIL ... Error loading image). Zuerst mitls public/<Pfad>prüfen. - Ein korrekt aussehendes Standbild garantiert noch kein korrektes Video. Nach dem Gesamtfilm muss
audit.pyausgeführt werden. - Gradienten-3D-Text über 600px lässt Chrome einfrieren. Nicht die Schichtanzahl oder den Unschärfe-Limit von
GTextreduzieren.
Nutzungsgrenzen
- Dies ist ein Werkzeug zur Stil-Nachahmung. Die Ausgabe muss den Eintrag
brand.labelmit "AI-generiert · nicht die originale Person" enthalten; dies nicht entfernen. brand.logoist standardmäßig leer. Mit dem eigenen Senderlogo füllen; nicht das Logo von "小Lin说" oder anderen echten Erstellern für die öffentliche Veröffentlichung verwenden.- Keine echten Porträts oder Stimmen von realen Erstellern für die Generierung von A-Roll-Clips verwenden und diese dann veröffentlichen.
- Das finale Video nicht als eigenes Werk des Originals veröffentlichen oder nutzen, um Zuschauer in die Irre zu führen.
- Alle im Video gezeigten Daten, Originalzitate und politischen Bestimmungen müssen auf die Quelle zurückverfolgt werden können.