Skript-Manager
Rufen Sie den Skript-Manager über Erweiterungen / Skript-Manager auf.
Mit dem Skript-Manager sind Sie in der Lage Python-Skripte zu erstellen, zu verwalten und sogar Icons zuzuweisen, um sie später bequem aus dem Erweiterungen-Menü unter Benutzer-Skripte aufrufen zu können. Es ist damit nicht mehr nötig, Plug-ins zu erzeugen.
Mit dem Skript-Manager erstellte Skripte werden im Verzeichnis library / scripts des Voreinstellungsverzeichnisses dauerhaft abgelegt.
Bedienelemente
Bedienung innerhalb des Skripteingabefeld
Folgende Dinge funktionieren innerhalb des Eingabefeldes:
- Doppelklick auf ein Wort selektiert dieses (bei weiterhin gedrückter Taste kann mehr Text selektiert werden).
- Klick auf eine Zeilennummer selektiert die ganze Zeile (bei weiterhin gedrückter Taste und vertikaler Bewegung können weitere Zeilen selektiert werden).
- Bei sinnvollen Zeichen (Anführungszeichen, Klammern etc.) werden diese gleich im Doppel mit zwischenstehendem Cursor erstellt, sodass Sie direkt lostippen können und sich um das Schließen dann nicht mehr kümmern müssen. Gleiches gilt für selektierten Text: die Eingabe eines solchen Zeichens schließt den Block mit den oben erwähnten Zeichen ein.
- Markierter Text wird durch Eingabe von * (Sternchen) im Block auskommentiert.
- Markierter Text kann mit der Maus verschoben (mit gleichzeitig gedrückter Ctrl/Cmd-Taste dupliziert) werden, wobei ein Cursor die neue Einfügeposition anzeigt.
- Rückgängig/Wiederherstellen funktioniert mit Texten.
- Zwischen Text und Zeilennummer wird eine farbige Markierung mit folgenden Bedeutungen eingeblendet: gelb (neu), grün (kompiliert), blau (gespeichert, aber nicht kompiliert). Diese Farbkodierungen wirken aber nur für neu geschriebenen Text, sobald Sie die Datei gespeichert haben, werden diese entfernt.
-
Um die IDs von Parametern zu erhalten, können alle im Attribute-Manager aufgeführten Parameter (auch für den Node-Editor) per Drag&Drop in das Skripteingabefeld gezogen werden. Das funktioniert ebenfalls für die Python-Konsole.
Dateimenü
Es wird ein neues unbenanntes und ungespeichertes Skript erzeugt (allerdings werden ungespeicherte Skripte im Voreinstellungsverzeichnis unter "prefs/_last_script" mit Dateiendung *.py (Python) abgelegt; sollte ein Skript einen Programmabsturz hervorrufen, so ist das Skript nicht verloren).
Laden Sie hiermit ungeschützte (unverschlüsselte) Python-Skripte (*.py). Der Dateiauswahldialog springt direkt in das passende Voreinstellungsverzeichnis.
Sie können hiermit Code in den Skript-Manager importieren. Es sind folgende Dateiformate möglich: *.py (Python).
Speichern Sie hiermit das gerade bei Skript ausgewählte Skript (ungespeicherte Skripts haben ein * im Namen). Mit Speichere Skript als kann ein neuer Name vergeben werden. Gespeichert wird voreinstellungsgemäß in Ihrem Voreinstellungsverzeichnis unter "library/scripts”.
Hiermit werden alle neu erstellten bzw. geänderten Skripte gespeichert.
Hiermit löschen Sie nach einer Sicherheitsabfrage das gerade bei Skripte ausgewählte Skript.
Dieser Befehl dupliziert das gerade bei Skript ausgewählte Skript.
Wenn Sie für Ihr neu kreiertes Skript kein passendes Bild zur Hand haben, ist diese Funktion das Richtige für Sie. Damit wird nämlich die gerade aktuelle CINEMA 4D-Szene gerendert und das Ergebnis als Icon verwendet.
Wählen Sie hierüber eine vornehmlich quadratische Bitmap aus, die dann als Icon für dieses Skript verwendet wird und auch entsprechend im Menü, in der Iconleiste und selbst im Befehls-Manager angezeigt wird. Ein evtl. vorhandener Alpha-Kanal der Bitmap wird berücksichtigt.
Mit diesem Befehl können Sie den Skriptinhalt des aktiven Skripts an alle mit Cinema 4D verbundenen IDEs senden. Dieser Befehl ist auch im Skript-Manager-Layout neben der Schaltfläche Code-Austauscher starten/beenden verfügbar. Beachten Sie hierzu auch die weiteren Code-Austauscher-Voreinstellungen und Befehle im Bearbeiten-Menü des Skript-Managers.
Bearbeiten-Menü
Hiermit können Code-Bearbeitungen zurückgenommen und wiederhergestellt werden.
Schneiden Sie hiermit selektierte Code-Schnipsel aus und kopieren Sie sie in die Zwischenablagen.
Hiermit kopieren Sie selektierte Code-Schnipsel in die Zwischenablage.
Hiermit fügen Sie in der Zwischenablage befindlichen Code an Cursorposition ein.
Mit diesem Befehl löschen Sie selektierten Code.
Selektieren bzw. deselektieren Sie hiermit allen im Fenster angezeigten Code. Alternativ können Sie den Code auch mit einem Klick in einen beliebigen Bereich des Code-Fensters deselektieren.
Mit R26 wurde ein Plugin in Cinema 4D eingeführt, das mit einer Visual Studio Code-Erweiterung kommuniziert. Mit der Version 2023.2 wurde dieses Code-Austauscher-Plugin direkt in Cinema 4D integriert, so dass Sie es nicht mehr manuell installiert werden muss. Die Visual Studio Code-Erweiterung muss jedoch weiterhin manuell installiert werden und ist hier zu finden: https://marketplace.visualstudio.com/items?itemName=maxonc4dsdk.cinema4d-connector.
Die Code-Austauscher-Funktion ermöglicht eine Kommunikation zwischen Cinema 4D und Visual Studio Code, so dass Entwickler ein Python-Skript von Cinema 4D an Visual Studio Code senden und/oder ausführen können und umgekehrt.
Darüber hinaus verbessert die Visual Studio Code-Erweiterung die Entwicklungserfahrung aller Cinema 4D-Entwickler, indem sie die automatische Vervollständigung des `c4d`-Python-Pakets, Debugging-Unterstützung, Syntax-Highlighting für ".*res"- und ".*str"-Dateien oder sogar die Ausgabe der Python-Konsole von Cinema 4D direkt in Visual Studio Code ermöglicht.
Das Ein- oder Ausschalten dieser Funktionalität kann über diesen Befehl oder auch über das </> Icon in der Kopfzeile des Skript-Managers erfolgen. Ein blau unterlegtes Icon zeigt dort einen aktiven Code-Austauscher an.
Sobald die Visual Studio Code-Erweiterung in Visual Studio Code installiert ist, sollten Sie ganz unten links im Fenster in der Statusleiste ein rotes Feld mit "C4D X" sehen. Wenn Sie darauf klicken, wird automatisch eine Verbindung zum zuvor aktivierten Code Exchanger in Cinema 4D hergestellt, so dass sich die Farbe des Kästchens in der Standard-Statusleiste ändert
Code von Cinema 4D an Visual Studio Code senden
Erstellen Sie eine neue Python-Datei im Skript-Manager, oder verwenden Sie eine bestehende. Mit dem Befehl Zu IDE schicken im Datei-Menü des Skript-Managers können Sie den Skriptinhalt des aktiven Skripts an alle mit Cinema 4D verbundenen IDEs senden. Dieser Befehl ist im Skript-Manager-Layout auch oben rechts als Icon zu finden, direkt neben dem Icon für Code-Austauscher starten/beenden.
Visual Studio Code-Funktionen
c4d Python-Paket Autovervollständigung
Die automatische Vervollständigung für das c4d-Paket in Visual Studio Code ermöglicht es Ihnen, schneller zu arbeiten, ohne immer in der Dokumentation nachsehen zu müssen. Damit die Erweiterung funktioniert, muss die Einstellung "c4d.path" definiert sein. Sie wird definiert, wenn Visual Studio Code zum ersten Mal eine Verbindung zu Cinema 4D herstellt.
Befehle
Alle Befehle dieser Erweiterung können durch Drücken von Strg+Umschalt+P und Suche nach C4D gefunden werden. Sie alle erfordern, dass Visual Studio Code mit Cinema 4D verbunden ist.
- Skript im Skript-Manager laden: Laden Sie das aktive Skript aus dem Visual Studio Code-Editor in den Cinema 4D Skript-Manager. Visual Studio Code sollte mit Cinema 4D verbunden sein, um diesen Befehl zu verwenden.
- Datei auf dem Datenträger speichern: Funktioniert wie erwartet, das Speichern der Datei aktualisiert den Skriptinhalt sowohl in der IDE als auch in Cinema 4D.
- Unbenanntes Skript aus Visual Studio Code: Es wird eine neue temporäre Datei in Cinema 4D erstellt. Diese Datei wird wieder zu Visual Studio Code hinzugefügt und für die Kommunikation mit Cinema 4D sollten Sie diese Datei anstelle der vorherigen unbenannten Datei verwenden.
- Temporäres Skript von Cinema 4D: Funktioniert wie erwartet, Ctrl+S sendet den Inhalt an Cinema 4D. Die Autovervollständigung funktioniert nicht.
- Ausführen in Cinema 4D als Skript im Skript-Manager: Führen Sie ein Skript direkt in Cinema 4D aus. Visual Studio Code sollte mit Cinema 4D verbunden sein, um diesen Befehl zu verwenden.
- Auf der Festplatte gespeicherte Datei oder Skript aus einem temporären Cinema 4D-Skript: Aktualisieren Sie den Inhalt des Skripts in Cinema 4D und führen Sie es aus.
- Unbenanntes Skript aus Visual Studio Code: Erstellen Sie ein neues temporäres Python-Skript in Cinema 4D. Führen Sie es aus und löschen Sie es aus Cinema 4D.
- Debuggen in Cinema 4D als Skript im Skript-Manager: Starten Sie eine Debugging-Sitzung für das angegebene Skript in Cinema 4D. Verschlüsselte Python-Dateien (.pypv, .pype) werden ignoriert und können nicht debuggt werden. Visual Studio Code sollte mit Cinema 4D verbunden sein, um diesen Befehl zu verwenden.
- Die Datei wird auf der Festplatte gespeichert: Funktioniert wie erwartet.
- Skript aus einem temporären Cinema 4D-Skript: Wird nicht unterstützt.
- Unbenanntes Skript aus Visual Studio Code: Wird nicht unterstützt.
- Verbindung mit Cinema 4D umschalten: Schaltet die aktuelle Verbindung zwischen Cinema 4D und Visual Studio Code um. Dies ist vergleichbar mit einem Klick auf die C4D-Statusleiste in der linken unteren Ecke von Visual Studio Code.
Ausgabe in der Python-Konsole
Sobald Visual Studio Code mit Cinema 4D verbunden ist, wird ein neuer Inhalt aus der Python-Konsole auch in der Visual Studio Code-Konsole "Cinema 4D" angezeigt.
Syntaxhervorhebung für *.res- und *.str-Dateien
Damit die Erweiterung funktioniert, muss die Einstellung "c4d.path" definiert werden. Sie wird definiert, wenn Visual Studio Code zum ersten Mal eine Verbindung zu Cinema 4D herstellt.
Einstellungen der Erweiterung
Diese Erweiterung bringt die folgenden Einstellungen mit:
- c4d.path: Pfad zum Cinema 4D-Verzeichnis. Dies wird für die automatische Vervollständigung verwendet. Wenn er nicht definiert oder ungültig ist, wird er automatisch bei der ersten Verbindung von Visual Studio Code und Cinema 4D definiert.
- c4d.ip: IP-Adresse, die für die Verbindung mit Cinema 4D verwendet wird.
- c4d.port: Port, der für die Verbindung mit Cinema 4D verwendet wird.
Bekannte Probleme
- Die automatische Vervollständigung funktioniert nicht bei temporären Skripten aus Cinema 4D, die einen Pfad haben, der wie Root@12345678/Scripts@12345678/untilted.py aussieht.
- Wenn der Befehl "Skript im Skript-Manager laden" für eine unbenannte Datei verwendet wird, wird eine neue temporäre Datei in Cinema 4D erstellt und diese an Visual Studio Code zurückgegeben. Diese Datei sollte für den Datenaustausch von/zu Cinema 4D verwendet werden.
- In der ersten Debugging-Sitzung wird eine Meldung über die veraltete Verwendung von ptvsd angezeigt; dies ist ein Fehlalarm und kann ignoriert werden.
Über diesen Dialog geben Sie vor, welcher Code-Austauscher verwendet werden soll und über welchen Port die Kommunikation erfolgen soll.
Dialog
Icon
Hier sehen Sie das dem aktuellen Skript zugeordnete Icon. Mit Icon laden bzw. Icon rendern können Sie eigene Icons zuordnen.
Durch einfaches Drag&Drop können Sie dieses Icon in eine vorhandene Iconleiste, eine neu angelegte Befehlspalette oder auch in den Menü-Manager ziehen.
Skript
Hier werden alle im Ordner library / scripts des Benutzer-Verzeichnisses liegende Scripts mit dem Dateinamen angezeigt. Sollten Skripte mit einem kleinen x markiert sein, sind diese Skripte noch nicht gespeichert worden.
Tastaturkürzel
Klicken Sie auf diesen Button, um den Befehls-Manager aufzurufen, wo das aktuelle Skript schon markiert ist und nur darauf wartet, von Ihnen mit einem Tastaturkürzel versehen zu werden.
Ausführen
Ein beherzter Klick auf diesen Button wird das Skript ausführen. Eventuelle Fehlermeldungen werden in der Konsole (Hauptmenü: Erweiterungen/Konsole) ausgegeben.