Illustriertes Schritt-für-Schritt-Video (Guide-Layout)
Ein Schritt der Anleitung = eine Szene. Synchron zum Sprechrhythmus werden Werkzeuge genommen, gegossen, geöffnet, getippt und montiert. Zeichnung, Audio und Export erfolgen vollständig in Swift (CoreGraphics, AVFoundation). Die CLI jgv übernimmt die Erstellung von Skript, Audio, Untertiteln, Standbildern und Video.
<skill>ist das Verzeichnis dieser SKILL.md (${CLAUDE_SKILL_DIR}. Falls nicht verfügbar: bei Plugin-Installation${CLAUDE_PLUGIN_ROOT}/.claude/skills/j-guide-video, sonst~/.claude/skills/j-guide-videooder.claude/skills/j-guide-video, je nachdem, was existiert)- Im Folgenden bezeichnet
jgvimmer<skill>/bin/jgv. Beim ersten Aufruf und nach jedem Update des Skills wirdjgvselbst sowie das Kit (Zeichen-DSL und Komponenten) in Swift kompiliert. Das kann einige zehn Sekunden bis Minuten dauern. Der Build wird im Cache (~/Library/Caches/j-guide-video/) abgelegt. Das Videoprojekt enthält nur projektspezifische Dateien (Skript, Binding, Cues, SVG-Material). Die genaue Struktur ist in reference/environment.md beschrieben. Wenn der Nutzer den Cache löschen möchte, verwenden Siejgv clean --stale --dry-run(nur zur Ansicht) und dannjgv clean --stale. Für eine vollständige Löschung:rm -rf ~/Library/Caches/j-guide-video(der Cache wird beim nächsten Build neu erstellt). Falls die UmgebungsvariableJ_GUIDE_VIDEO_CACHEgesetzt ist, löschen Sie innerhalb des Ordners nur die Verzeichnissebuild-*,shared-*,projectsundavtts– niemals den gesamten Ordner, da er nicht ausschließlich für dieses Tool vorgesehen sein könnte. - Argumente und Optionen zeigt
jgv help <Unterbefehl>an. Unbekannte Optionen führen zu einem Fehler. <library>ist das Benutzerverzeichnis (UmgebungsvariableJ_GUIDE_VIDEO_LIBRARY, falls nicht gesetzt:~/.config/j-guide-video, bei gesetzterXDG_CONFIG_HOMEentsprechend darunter). Es enthält selbst erstellte Werkzeuge und Bewegungen (parts/) sowie benutzerspezifische Einstellungen (defaults.json). Diese werden auch nach einem Skill-Update nicht gelöscht (siehe reference/library.md).
procedure.md ─(jgv new = init・md2script --stubs・tts・timing)→ script.json・Cue- und Binding-Gerüste・Audio・Timeline・Untertitel・Zeittabelle
visuals/bind.swift (Darstellung und Namen von Werkzeugen/UI) + cues/<Schritt>.cue (Bewegungen pro Phrase) ─(jgv check → jgv dev → jgv render → jgv overview)→ out/video.mp4
Zu Beginn zu prüfen
Systemvoraussetzungen
- Ausschließlich für Claude Code unter macOS (aktuelles Xcode erforderlich; nur auf Apple Silicon getestet – Intel Macs nicht bestätigt). Nicht nutzbar unter Linux, Windows (auch nicht via WSL2), Claude Code im Web oder Claude.ai. Informieren Sie den Nutzer und brechen Sie ab.
- Benötigt wird die neueste Version von Xcode bzw. der Command Line Tools (
swift, Installation mitxcode-select --install; ältere Versionen wurden nicht getestet). Fallsjgvaufgrund fehlender oder veralteter Tools stoppt, teilen Sie dem Nutzer die Installation mit (führen Sie keinesudo-Befehle ohne Absprache aus). Nur beim ersten Build vonjgvwird eine Netzwerkverbindung benötigt. - Standardmäßig wird die macOS-Systemstimme verwendet (bei
"voice": "auto"die hochwertigste Stimme des Skript-OS; Liste mitjgv voices). - Für die kommerzielle Nutzung stehen integrierte Cloud-TTS-Dienste sowie ein
command-Modus (beliebiger externer Befehl) zur Verfügung. Die Cloud-TTS werden über Umgebungsvariablen aktiviert:google(GOOGLE_TTS_API_KEYoderGOOGLE_APPLICATION_CREDENTIALS),azure(AZURE_SPEECH_KEY+AZURE_SPEECH_REGION),amazon(AWS_ACCESS_KEY_ID+AWS_SECRET_ACCESS_KEY+AWS_REGION),openai(OPENAI_API_KEY; Modell wird voraussichtlich am 06.01.2027 eingestellt – daher nicht für langlebige Videos empfohlen). - API-Schlüssel und Skripte stellt der Nutzer bereit. Claude gibt keine Schlüssel ein oder zeigt sie an, öffnet keine Service-Account-Key-Dateien (
GOOGLE_APPLICATION_CREDENTIALS) und ruft keine kostenpflichtigen APIs ohne Erlaubnis auf. - Beim Umgang mit fremden Videoprojekten (ZIPs, Repositories anderer, fremde Skripte via
--base) prüfen Sie vor dem Ausführen vonjgvdem Nutzer die Inhalte vonscript.jsonund allenscript.<Sprache>.json(speziell dastts-Feld: ob ein kostenpflichtiger Cloud-Dienst oder eincommandgesetzt ist) sowie die Swift-Dateien invisuals/,parts/undkit/. Die Befehlejgv tts/timing/dev/check/snapshots/still/preview/catalog/render/build-langs(also alle, die Audio erzeugen oder Visuals kompilieren und zeichnen) führen die angegebenen Befehle und deren Code unverändert aus. - Kostenpflichtige Cloud-TTS werden erst nach expliziter Bestätigung pro Projekt und Engine mit
jgv tts --allow-cloudausgeführt (jgv ttszeigt vorher die Zeilen- und Zeichenanzahl und stoppt). Verwenden Sie--allow-cloudnur, nachdem Sie den Nutzer über die Engine und die anfallenden Kosten informiert und seine Zustimmung eingeholt haben. (Beijgv new --tts …sowie bei Skripten, die über die indefaults.jsoneingestellte Engine erstellt wurden, ist die Zustimmung automatisch erteilt. Wennjgv new --basedie Cloud-Engine eines fremden Skripts übernimmt, stopptjgv newund fordert den Nutzer auf, eine Engine über--ttszu wählen.) - Details zu Stimmen, Geschwindigkeit, TTS-Konfiguration, Festplatten- und Cache-Mechanismen finden Sie in reference/environment.md.
Nutzungsbedingungen der erstellten Videos
- macOS-Sprachausgabe (Standard
apple): Gemäß Apples macOS-Lizenz (Abschnitt „Voices“) dürfen die Systemstimmen nur für die persönliche, nicht-kommerzielle Erstellung eigener, originärer Werke verwendet werden. Exportierte Videos sind daher auf den privaten, nicht-kommerziellen Gebrauch beschränkt. Eine Veröffentlichung auf sozialen Medien/Video-Plattformen oder die Nutzung im beruflichen/unternehmerischen Kontext (inklusive interner Anleitungen) ist nicht gestattet (Zusammenfassung – der Wortlaut der macOS-Lizenz ist maßgeblich). google/azure/amazon/openai/ percommandangebundene TTS: Es gelten die jeweiligen Nutzungsbedingungen des TTS-Dienstes. Kommerziell nutzbare TTS erlauben auch die Veröffentlichung und den geschäftlichen Einsatz. Falls der Dienst eine Nennung der Quelle oder einen Hinweis auf KI-Sprache verlangt, tragen Sie dies im Feldcreditderscript.jsonein.- Wenn ein Auftrag erkennbar auf eine Veröffentlichung in sozialen Medien/Video-Plattformen oder eine geschäftliche/unternehmerische Nutzung abzielt, informieren Sie den Nutzer vor Arbeitsbeginn über diese Einschränkung und bieten Sie an, auf einen kommerziell nutzbaren TTS-Dienst umzustellen. Nehmen Sie keine rechtliche Bewertung vor – verweisen Sie den Nutzer auf die macOS-Lizenz bzw. die Nutzungsbedingungen des gewählten TTS-Dienstes.
0. Layout wählen
Wählen Sie basierend auf dem Thema ein Layout aus und teilen Sie es dem Nutzer kurz mit (nur bei Unsicherheit nachfragen). Geben Sie dabei auch das Zielverzeichnis für das Projekt (Punkt 2 <dir>) an.
| Layout | --layout | Aussehen | Geeignet für | Beispiele (examples/) |
|---|---|---|---|---|
| Raum | guide (Standard) | Gleiche Person im Raum, hält Werkzeuge. Nahaufnahmen per Vergrößerungskarte. | Getränke, Haushalt, Gerätepflege – „Mensch mit Werkzeug“ | room-microwave-rice, room-mug-wash |
| Bildschirmbedienung | guide-screen | Keine Person. Tap/Klick/Eingabe auf Smartphone-/Browser-UI. Rechts Notizen, Bereich außerhalb des Fokus abgedunkelt. | App-/Webservice-Anleitungen | screen-alarm (Smartphone) |
| Draufsicht | guide-topdown | Hände von oben auf Arbeitsfläche. | Kochen, Basteln, Verpacken – reine Handarbeit | topdown-cucumber |
| Bauanleitung | guide-manual | Weißes Millimeterpapier, isometrische Linienzeichnungen, gepunktete Pfeile, Schraubensymbole, Teileliste. | Möbelaufbau, Geräteinstallation, Austausch von Komponenten | manual-smallbox |
| Vertikal | Eines der obigen + --vertical | 1080×1920. Beim Raum-Layout: Person oben, Vergrößerungskarte ständig unterhalb der Arbeitsfläche (nur für Raum-Layout getestet). | Kurze Life-Hacks, Rezepte für vertikale Smartphone-Ansicht | vertical-coffee |
Erstellen Sie zuerst eine Einzelsprachenversion vollständig, bevor Sie unter „6. Mehrsprachige Version erstellen“ weitere Sprachen hinzufügen.
1. Anleitung vorbereiten
Fassen Sie den Text des Nutzers im folgenden Markdown-Format zusammen und speichern Sie ihn als <dir>/procedure.md (falls er bereits in diesem Format vorliegt, verwenden Sie ihn direkt).
# How to Brew Drip Bag Coffee
## Get ready [prepare]
Prepare a mug, a drip coffee bag and a kettle. Boil the water and let it cool to about ninety degrees Celsius.
## Open the bag [open]
Hold the bag with both hands, tear off the top strip along the marked line. Open it gently to avoid spilling the coffee.
# Titel,## Schrittname [tag], der Text wird direkt vorgelesen. Dertagist optional und wird zum Visual-Namen (z. B.open→Open). Erlaubt sind nur alphanumerische Zeichen (beginnend mit einem Buchstaben),-und_. Bei ungültigen Zeichen wird der Tag ignoriert und durchStep01o. Ä. ersetzt.- Aufzählungen/nummerierte Listen: Ein Eintrag = ein Satz. Fettungen, Links, Inline-Code werden entfernt vorgelesen (HTML-Tags, Kommentare und Codeblöcke werden nicht gelesen; spitze Klammern in Tastenbezeichnungen wie
<Enter>oder Platzhaltern<URL>bleiben erhalten). Bei Japanisch und Chinesisch gelten Zeilenumbrüche als Satztrenner (eine Zeile, die mit einem Komma endet, wird mit der nächsten verbunden). Bei Englisch etc. sind Leerzeilen Abschnittstrenner. Fehlende Satzzeichen am Satzende werden ergänzt. Tabellen (| … |-Zeilen) und Codeblöcke werden nicht vorgelesen (wenn eine Tabelle ausgeschlossen wird, erscheint eine Warnung). - Ein Projekt sollte 4–8 Schritte umfassen, jeder Schritt 1–3 Sätze. Ein Satz = ein Animationsabschnitt; ein Komma (
,) = ein noch feinerer Abschnitt. Formulieren Sie die Sätze daher so, dass „Was → Wie“ durch Satzzeichen getrennt ist (z. B. „Spread the paper hooks, attach them to the rim of your mug.“). - Reale Wartezeiten (Ziehzeit, Trocknung etc.) werden im Video grundsätzlich als verkürzt dargestellt.
- Falls der Text des Nutzers in freier Form (Notizen, Handbuchauszüge) vorliegt, überarbeiten Sie ihn gemäß den Kriterien in reference/rewriting.md in das obige Format.
2. Projekt anlegen und in ein Skript umwandeln
jgv new <dir> --kicker "DAILY RITUAL / COFFEE GUIDE" --layout guide
jgv new führt in einem Schritt aus: Projekt anlegen (jgv init), Skript- und Cue-Gerüste erstellen (jgv md2script procedure.md -o script.json --stubs visuals), Audio und Timeline generieren (jgv tts), sowie die Zeittabelle der Cues (jgv timing – zeigt pro Schritt die Zeile.Phrase und die Sekunden ab Schrittbeginn). Die Anleitung wird aus <dir>/procedure.md gelesen (falls sie woanders liegt, übergeben Sie den Pfad zusätzlich: jgv new <dir> <Anleitung>; sie wird dann kopiert). Die Optionen entsprechen denen von jgv md2script. Alle folgenden Befehle werden nach einem cd <dir> ausgeführt.
<dir>: Wenn der Nutzer einen Pfad angibt, verwenden Sie diesen. Andernfalls fragen Sie nicht nach, sondern legen das Projekt außerhalb des Skills und des zugehörigen Repositories an (z. B.~/Movies/jgv/<Thema>). Geben Sie den vollständigen Pfad vor der Erstellung bekannt (z. B. „Ich erstelle das Projekt unter~/Movies/jgv/shoulder-massage. Sagen Sie Bescheid, wenn Sie einen anderen Ort wünschen.“). Ein Anlegen im aktuellen Verzeichnis könnte zu generiertenout/- und.jgv/-Ordnern innerhalb des Repositories führen.--layoutentspricht dem in Schritt 0 gewählten Layout. Für vertikale Videos fügen Sie--verticalhinzu.--kickerist der Serienname oben links.- Das Aussehen der Person (
--presenter), der Zusammenhang mit derdefaults.jsonder Bibliothek, Cloud-TTS (--tts), Textausblendung (--no-textetc.) und die Migration von Projekten älterer Formate (jgv migrate) sind in reference/options.md unter „jgv new Optionen“ beschrieben. Wenndefaults.jsonbereits Werte fürkicker/layoutenthält, fügen Sie--kicker/--layoutnur dann hinzu, wenn der Nutzer explizit abweichende Angaben macht oder das in Schritt 0 gewählte Layout davon abweicht. - Falls
jgv newmit einem Fehler abbricht, bereinigtjgv newautomatisch die selbst erstellten Dateien (bereits vorhandene Dateien bleiben unberührt). Beheben Sie die Fehlerursache und führen Sie denselbenjgv new-Befehl erneut aus (bei einem Abbruch zwischendurch siehe reference/tips.md zur Fehlerbehebung).
Ergebnisse (zu diesem Zeitpunkt bereits vollständig und lauffähig): script.json, cues/<Visual>.cue (mit Zeile.Phrase-Nummern und Satzkommentaren), visuals/<Visual>.swift (einzeiliger Aufruf der Cues, nicht anfassen), visuals/bind.swift (Binding-Gerüst), .jgv/timeline.json, out/subtitles.srt.
Japanische Lesung korrigieren
- Bei japanischem Skript kann die Lesung (
speak) von Ziffern, englischen Zeichen oder schwer lesbaren Wörtern imscript.jsonpro Zeile korrigiert werden. Verwenden Sie für Lesungshilfen Katakana (Hiragana kann in der Verbindung mit umgebenden Hiragana zu falschen Trennungen führen. Z. B. „食欲やはいせつぶつ“ wird als „や/は/いせつ…“ gelesen; „ハイセツブツ“ ist eindeutig). - Mit
jgv yomisehen Sie die Lesung pro Wort sowie Warnungen und korrigieren abweichende Lesungen.jgv yominutzt unabhängig von der TTS-Engine die macOS-Analyse – bei Cloud-TTS dient dies als Orientierung (die Korrektur in Katakana wirkt engine-übergreifend). (Arten von Warnungen und Korrekturmethoden siehe reference/tips.md unter „Japanische Lesung“). - Nach der Korrektur von
speakführen Siejgv tts(liest nur korrigierte Zeilen neu ein) und dannjgv timing(aktualisiert die Zeittabelle) aus. - Wenn der Nutzer auf eine falsche Lesung hinweist, fragen Sie nach der Korrektur in Schritt 7, ob die Lesung zu den
readingsin derdefaults.jsonder Bibliothek hinzugefügt werden soll.
3. Werkzeuge und Bildschirme festlegen (Binding)
Legen Sie für jeden Schritt die benötigten Objekte (Werkzeuge, Geräte, Bildschirme), deren Position und die Berührungspunkte fest. Schreiben Sie dies als Binding in visuals/bind.swift (das Gerüst wird von jgv new erstellt). Es gibt ein gemeinsames Binding für alle Schritte. Die Syntax ist in reference/cue.md unter „Binding“ beschrieben.
- Lesen Sie vor dem Schreiben ein fertiges Beispiel des gleichen Layouts (wählen Sie aus der Liste examples/README.md und lesen Sie dessen
visuals/bind.swiftsowiecues/*.cue). Ähnliche Bewegungen und Objektplatzierungen können Sie daraus übernehmen. - Bevorzugen Sie Komponenten aus dem Kit sowie aus dem projekteigenen
parts/-Verzeichnis (bzw. der Bibliothek). Eine visuelle Übersicht bietet reference/props-catalog.png; die vollständige Liste finden Sie in reference/visual-kit.md unter „Werkzeuge“. Parameter und Haltepunkte (z. B.KETTLE_PARTS) ermitteln Sie mitjgv api <Name>(sucht nach Name, japanischem Namen oder Beschreibung;jgv apiallein listet alle Namen inkl. projekteigenerparts/auf). Greifen Sie nicht in die Kit-Quellen. - Nicht vorhandene Objekte zeichnen Sie nach den Regeln in reference/prop-style.md in
visuals/props.swiftund prüfen die Darstellung mit einer Vorschau (PROPS_PREVIEW) viajgv preview. SVG-Dateien des Nutzers legen Sie inassets/und zeichnen sie mitSvg("Name")(siehe visual-kit.md unter „SVG-Material (assets)“). - Definieren Sie feste Positionen und Skalierungen als benannte Konstanten (z. B.
let MW = Pt(1080, GUIDE.counterY); für vertikale LayoutsLAYOUT_PORTRAIT.counterY). So sind Korrekturen an einer Stelle möglich. - Werkzeuge/Geräte, die die Person mit den Händen berührt, müssen in Reichweite (etwa bis x 1150 bei Querformat) platziert werden (
jgv checkwarnt bei zu großer Distanz). - Für Schritte wie „Benötigte Dinge“, „Hinweise“, „Vorher/Nachher“ oder „Zusammenfassung“ können Sie die entsprechenden Szenentypen des Kits (
PrepareItems,NoteCards,BeforeAfter,SummaryList) im Binding verwenden. - Die wichtigsten gestalterischen Besonderheiten pro Layout finden Sie in reference/implementation.md unter „Layout-spezifische Hinweise“.
4. Bewegungen pro Schritt als Cues schreiben
Schreiben Sie für jeden Schritt eine Datei cues/<Visual>.cue. Die Zeitstempel Zeile.Phrase entnehmen Sie den Kopfkommentaren der Gerüste (z. B. # 0.0 Gefrorener Reis, 0.1 im Frischhaltefolie, …) sowie der Zeittabelle aus jgv new / jgv timing. Die Syntax ist in reference/cue.md beschrieben. Ähnliche Bewegungen übernehmen Sie aus den Cues der fertigen Beispiele (examples/). Ein Cue umfasst nur wenige bis einige Zeilen; schreiben Sie daher alle Schritte direkt im Hauptdurchlauf, ohne einen Sub-Agenten pro Schritt zu verwenden.
init <Load
0.0+.3 H>mw.handle~.45
0.0+.35 mw.open=0~.6
0.2+.45 P mw.start;mw.on=1~.2;mw.disp=cd 2:00 0:[email protected];timer timer 2分@1.0
1.1+.7 H>dish.gripL~.4;dish.in=0
1.1+.77 dish@PLATE~.5;steam dish.top
- Pro Phrase eine Zeile: „Was → Wie“ wird zur angegebenen Zeit ausgeführt. Wartezeiten werden durch einen Kreis-Timer (
timer) und den Hinweis „Wartezeit verkürzt dargestellt“ visualisiert. - Hände (
H>C>P) geben den „Ankunftszeitpunkt“ an; alle anderen Werte geben den „Startzeitpunkt“ an. Wenn Werte an Handbewegungen angepasst werden sollen, setzen Sie den Wert um die Dauer der Handbewegung früher. - Beginnen Sie ab dem zweiten Schritt mit
init <Vorheriger Schritt(übernimmt den Endzustand). Wenn eine Vergrößerungskarte über mehrere Schritte hinweg geöffnet bleiben soll, setzen Sie im vorherigen Schrittcard.exit=0und im nächsten Schrittcard.enter=0. - Verwenden Sie für feinmotorische Aktionen (Öffnen, Schöpfen, Reiben, Drehen) die Vergrößerungskarte (
card,C>). Die Person zeigt von links auf die Karte (H>gesture). Der letzte Schritt endet mit dem fertigen Produkt, einemcheck-Haken und einer nachhallenden Bewegung (Dampf, Glitzern). - Vermeiden Sie statische Bilder: Während der Sprachausgabe sollte ständig eine Bewegung sichtbar sein (Dampf, Welle (
wave), Wasserringe o. Ä.).
cd <dir> && jgv check
Korrigieren Sie Cues und Binding, bis keine !-Zeilen mehr erscheinen (diese zeigen: Namensfehler, Hand zu weit, Objekt wird losgelassen während es noch bewegt wird, Bewegung nach <0,5 s vor Ende, Überlappung von Text/Rahmen etc.). Die H/C-Zeilen zeigen eine Handzeit-Tabelle. Die S1→S2-Zeilen zeigen abweichende Werte an Schrittgrenzen (sollten nur die beabsichtigten Änderungen enthalten). Nach reinen Cue-Korrekturen ist kein erneuter Build nötig – die Prüfung kann sofort wiederholt werden. Details zu den Zeilen und Korrekturmethoden finden Sie in cue.md unter „jgv check“.
Wenn Sie eine spezielle Bewegung benötigen, die sich nicht in Cues abbilden lässt, schreiben Sie die Logik in Swift im Binding und steuern Sie sie über Werte aus den Cues (siehe cue.md „Swift-Schreiben“). Sie können auch ganze Schritte komplett in Swift als Visual umsetzen (Storyboard → parallele Implementierung pro Schritt – siehe reference/implementation.md).
5. Gesamtprüfung → Export
cd <dir> && jgv dev
jgv dev führt mehrere Prüfschritte in einem Befehl zusammen: jgv tts (liest nur geänderte Zeilen neu) → Build → jgv check (stoppt bei !-Fehlern) → jgv snapshots (nur für seit dem letzten jgv dev geänderte Schritte).
- Kompilierungsfehler (Binding etc.) werden mit Dateiname und Zeilennummer ausgegeben, z. B.
visuals/bind.swift:12:5: error: …. - Die letzte Zeile „Zu prüfende Bilder:“ listet die zu lesenden Bilder. Beim ersten Durchlauf sowie bei Änderungen an Swift-Dateien,
assets/, Farbschema etc. und wenn alle Schritte geändert wurden: das Gesamtbildout/snapshots/sheet.png. Bei reinen Cue-Änderungen: die Bilder der geänderten Schritte unterout/snapshots/scene-N/sheet.png(inklusive Schritte, die überinit <Vorheriger Schrittden Zustand übernehmen). Änderungen am Skript verändern meist die Videolänge und den Fortschrittsbalken, sodass ein neues Gesamtbild erstellt wird. Für eine vollständige Neuaufnahme aller Schritte verwenden Siejgv dev --all. - Öffnen Sie die aufgelisteten Bilder zwingend per Read, korrigieren Sie bei Bedarf und wiederholen Sie
jgv dev(bei erneuter Aufnahme nur geänderter Schritte bleibt das alte Gesamtbildout/snapshots/sheet.pngbestehen – Verwechslungsgefahr!). Zeitliche Abweichungen der Hände erkennen Sie schneller in derjgv check-Handzeit-Tabelle als in den Bildern. - Wenn Details auf den Übersichtsbildern zu klein sind (gestrichelte Linien, Beschriftungstext, Position von Hand und Griff), lesen Sie die Einzelbilder im selben Ordner (jeweils in halber Auflösung des Videos; Dateiname entspricht der vor dem Export angezeigten Schrittzahl, z. B.
03.png. Für Phrasen-Snapshots mitjgv snapshots --scene=N --phraseserhalten Sie Dateien wie02-04.png.jgv devunterstützt--phrasesnicht.)
Prüfpunkte in den Bildern:
- Greift die Hand den Griff des Werkzeugs? Schwebt oder überlappt ein Werkzeug?
- Stimmt die Bildaktion mit dem Inhalt der Phrase überein? (Wird z. B. bei „tear off“ tatsächlich ein Streifen abgerissen?)
- Ist die Beschriftung der Vergrößerungskarte (Teilschritt-Label, Notizen) lesbar? Überlappungen von Text, Notizen und Rahmen sowie über den Bildrand hinausragende Elemente werden von
jgv checkals! Sek-Sek:-Zeilen gemeldet. Prüfen Sie in den Bildern daher auf Überlappungen von Objekten, doppelt gezeichnete Objekte und ob die Binding-Zeichnung die Titel- oder Untertitel-Leiste überlappt (letzteres wird vonjgv checknicht erkannt). Bei--no-text/--no-notesprüfen Sie, ob dennoch Erklärungstext eingeblendet wird.
Wenn alles in Ordnung ist, exportieren Sie das Video und erstellen die Übersichtsseite:
cd <dir> && jgv render && jgv overview
out/overview.html enthält für jeden Schritt den Sprechtext, die Visual-Dateien, Standbilder und SVG-Material auf einer Seite (im Browser öffnen). Teilen Sie dem Nutzer die Speicherorte von out/video.mp4, out/subtitles.srt und out/overview.html mit. Falls möglich, senden Sie das Video direkt. Fahren Sie anschließend mit „7. In der Bibliothek speichern“ fort.
Anpassungen von Farbschema, Stimme etc., Fehlerbehandlung und vollständige Swift-Beispiele (im Repository unter demo/) finden Sie in reference/tips.md.
6. Mehrsprachige Version erstellen
Erstellen Sie zunächst eine vollständige Version in einer Sprache. Fügen Sie dann gemäß der Anleitung in reference/multilang.md eine script.<Sprache>.json hinzu und exportieren Sie alle Sprachen gleichzeitig mit jgv build-langs (das Bildmaterial ist identisch; nur Skript und Bildschirmtexte werden ausgetauscht).
7. In der Bibliothek speichern
Nach dem Exportieren fragen Sie den Nutzer, ob die in diesem Video erstellten Objekte und Bewegungen (visuals/props.swift, shared.swift, im Binding definierte Zeichnungen), die vom Nutzer gewählten Einstellungen (Farbschema, Stimme, Geschwindigkeit – nicht jedoch der themenspezifische Kicker) sowie die auf Hinweis des Nutzers korrigierten Lesungen (readings) in der Bibliothek gespeichert werden sollen. Listen Sie die Kandidaten auf (nur wenn es tatsächlich Neues gibt und nicht bereits alles in der Bibliothek vorhanden ist). Die Speicherung erfolgt gemäß reference/library.md unter „Nach Fertigstellung des Videos speichern“ in <library>/parts/ und <library>/defaults.json. So reduzieren Sie den Aufwand für Zeichnung und Konfiguration in zukünftigen Videos.