Antworten auf deine Fragen:
Neues Thema erstellen

Python für Cinema 4D

NT2005

Von dannen.

Hallo 3Dler,



Seit dem 8. April ist es offiziell: Python wird in Cinema 4D integriert und als ein weiterer Interpreter bald in einer neuen Version vorhanden sein.


Vorab könnt ihr eine Betaversion testen.


Mit Py4D kann man Scripts oder Plug-ins für Cinema 4D schreiben. Es ist eine einfach zu erlernende Sprache, ich rede aus Erfahrung. ;)

Die Fragen zu Py4D kommen in diese Forenkategorie. Ebenfalls könnt ihr auch auf Fragen stellen.
 
Zuletzt bearbeitet:

Nova_Flow

Aktives Mitglied

AW: Phyton für Cinema 4D

schade ich hab die 11.5er version noch nicht zum ausprobieren...
versteh ich das richtig, dass man die scrips, die man schreibt auch abspeichern und zum download etc anbieten kann?

sieht aber echt klasse aus und >wirkt< einfach ^^
 
B

barri

Guest

AW: Phyton für Cinema 4D

Jau! Endlich wird Phyton auch in C4D integriert!
Wird sofort ausprobiert. ;)

Schöne Grüße
Barri
 

Nova_Flow

Aktives Mitglied

AW: Phyton für Cinema 4D

oh das ist ja schön.
besonders wenn die programmierung einfacher ist als es meistens der Fall ist.

vielleicht hab ich es überlesen aber gibt es schon einen ungefären Preis für das ganze wenn es mal fertig ist?
 

NT2005

Von dannen.

AW: Phyton für Cinema 4D

Hallo Nova_Flow,

Ich denke, wenn Python in Cinema 4D vollständig integriert wird, wird es wohl im Preis von Cinema 4D enthalten sein.
 

seecretum

Aktives Mitglied

AW: Phyton für Cinema 4D

Einfach? Für mich wirkt das alles sehr abstrakt, ein Beispiel wenn jemand wüsste welches mich erleuchtet?
 

NT2005

Von dannen.

AW: Phyton für Cinema 4D

Hallo seecretum,

Ok, wenn man nichts mit programmieren am Hut hat, muss man erst einmal die Grundkenntnisse lernen. Hier ein Beispiel Code:

Code:
#module werden geladen
import c4d

#Diese main-Funktion wird als erstes ausgeführt
def main():
 #Das Objekt mit den Python Tag wird in Variable obj gespeichert
 obj = op.GetObject();

 #Die Position des Objektes wird ausgelesen
 position = obj.GetPos();

 #Die Position wird in der Console ausgegeben
 print position;

 #Es wird eine neue Position erstellt, aus der alten Position plus den Koordinaten XYZ = (0, 50, 50)
 newposition = position + c4d.Vector(0, 50, 50);

 #Die neue Position wird in der Console ausgegeben
 print neueposition;

 #Die neue Position wird auf das Objekt übertragen
 obj.SetPos(newposition);
 

KBB

Mod 3D | Blaubaer

Teammitglied
AW: Phyton für Cinema 4D

Jap ich freu mich wie hulli dass Phyton endlich in Cinema integriert wird.
Py4D Beta gibt es ja schon eine ganze Weile (irgendwas Anfang 2009), die kann man natürlich noch ausgiebig testen bis irgend ein nächstes Cinema inkl. Py rauskommt.

Man sollte unbedingt ergänzen, dass mit Python u.a. Ein-/Ausgabe mit Dateien sehr einfach wird, wo C nicht so glänzt und man erst umständlich Dateien öffnen oder erstellen muss ode der Zugriff nicht so einfach ist.
Ich hoffe aber vor allem, dass das C4D-Interne Mapping dann richtig eingebunden wird und man nicht erst jeden Befehl oder Objekt.Eigenschaften per ID irgendwo auslesen muss. Im Moment ist das ja leider noch so, s.u.

Seecretum ein nettes Beispiel (eines von vielen) kommt mit der Beta. Die Datei enthält neben etwa 30 Kugeln auf einer Linie nur die paar Zeilen Script hier (die uninteressanten, nur für Python wichtigen Imports zu Anfang habe ich rausgenommen). Alles hinter dem # ist Kommentar

ACHTUNG! Alte API!
Code:
def make_sinus():
    frame = doc.get_time().get_frame(doc.get_fps()) #[B]Holt die aktuelle Framezahl des Dokuments[/B]

    group =op[ID_USERDATA, 1] #[B]Meldet die Gruppe "Kugelgruppe" mit 33 Kugeln[/B]
    objects = group.get_childs() #[B]Meldet alle Unterobjekte der Gruppe als geordnete Elemente[/B]

    i = 0
    for obj in objects:
       obj.set_pos(Vector(i*300, sin(0.25*(i+frame))*500, 0))  #[B]Festlegen der Position im Raum[/B]
       obj[908] = Vector(obj.get_pos().y/500, 0, 0)   #[B]Festlegen der Farbe: je weiter oben desto Rot[/B]
       i += 1

def main():
    make_sinus() #[B]Aufruf der Funktion[/B]
In den 5 unkommentierten Zeilen in der Mitte werden die Kugeln simpel anhand ihrer Position in Form einer Sinuswelle auf und ab geschickt und - ganz nebenbei - anhand ihrer Höhe unterschiedlich eingefärbt.
Ich habe am Anfang gedacht, das geht garnicht, weil die Kugeln kein Material haben. Mittels obj[908] wird hier aber anscheinend das Default-Material angesprochen, das alle Cinemaobjekte bei ihrer Erzeugung haben. Einfaches Script mit nur 5 Zeilen und doller Wirkung ;)
 
Zuletzt bearbeitet von einem Moderator:

NT2005

Von dannen.

AW: Phyton für Cinema 4D

Hallo KBB,

Ich hoffe aber vor allem, dass das C4D-Interne Mapping dann richtig eingebunden wird und man nicht erst jeden Befehl oder Objekt.Eigenschaften per ID irgendwo auslesen muss. Im Moment ist das ja leider noch so, s.u.
Das gehört der Vergangenheit an. Die API ist nun weitgehend identisch mit der C4D SDK.
Man kann also jetzt die Farbe statt die ID-Nummer zu verwenden mit obj[ID_BASEOBJECT_COLOR] ansprechen.
 

NT2005

Von dannen.

AW: Phyton für Cinema 4D

Hallo KBB,

Dein oben gezeigtes Script von dir funktioniert nicht mehr mit der neusten Version. Die API ist komplett identisch mit der von Cinema 4D SDK.
 

seecretum

Aktives Mitglied

AW: Phyton für Cinema 4D

@NT2005 hmmm du hast wahrscheinens Informatik studiert? Hmm ich glaub da bleib ich lieber bei xpresso :p was ich allerdings auch noch nicht kann!
 

NT2005

Von dannen.

AW: Phyton für Cinema 4D

Hallo seecretum,

Ich habe noch nicht einmal mein Abitur. ;)
Die ganzen Sachen mit Programmieren habe ich mir im Informatikunterricht angeeignet, jedoch nur die Grundlagen. Wenn man einmal dahinter gestiegen ist, ist es fast überall das gleiche. Bisschen Selbststudium muss man schon machen.
 

VirusX

Aktives Mitglied

AW: Phyton für Cinema 4D

Ich wollte sowieso schon anfangen, mir das Programmieren mit Python beizubringen, jetzt gibt es ja noch einen Anreiz mehr, wenn C4D auch bald Python als Scriptsprache unterstützt.

@NT2005:

Es dauert ja Monate bis Jahre, bis man eine Programmiersprache so drauf hat, dass man damit auch anständige, nützliche Programme erstellen kann - Wie lange hat es denn bei dir gedauert?

Und warum ist Python "einfacher" zu lernen als so manche andere Sprache?
 

NT2005

Von dannen.

AW: Python für Cinema 4D

Hallo VirusX,

In Python (danke für den Hinweis) programmiere ich erst seit einen Monat. Kannte diese Sprache vorher gar nicht.

Weiß nicht wieso jetzt genau einfacher. Python ist die erste Sprache, die ich objektorientiert anwende und es ist nicht sehr schwierig. Für den Datenaustausch zwischen Programmen soll es sehr gut, sagen mir viele. :p
 

c4dJack

Entwickler

AW: Phyton für Cinema 4D

Und warum ist Python "einfacher" zu lernen als so manche andere Sprache?
Naja, also erstmal gibt es für Python enorm viel Literatur, sowie Tutorials im Internet. Es existiert eine große Python-Community, so dass es nicht an Erklärungen und Beispielcode mangelt.

Weiterhin bietet Python interessante Sachen, wie das einfache Iterieren über ganze Gruppen von Datensätzen (z.B. Objekte in Cinema). Das geht da mit viel weniger Schreibarbeit als in C++.

Python muss nicht compiliert werden; dadurch ist es nicht nur plattformunabhängig, sondern man spart sich auch die Zeit, die man sonst mit den verschiedenen Compilern verbracht hätte.

Python ist einfach lesbar, und sieht sehr viel weniger "kryptisch" aus als C++.

Python erzieht einen dazu, sauberen Code zu schreiben, da Scopes durch Einrückung des Codes erzeugt werden. In C++ (und Coffee) sind es geschweifte Klammern, und man ist völlig frei mit den Einrückungen, was die Einarbeitung in Fremdcode nicht unbedingt erleichtert.

Zu guter Letzt ist das gesamte Speichermanagement in Python einfacher. Sprich: man muss sich nicht wirklich drum kümmern. Es gibt keine Pointer, und Du musst Dich nicht darum kümmern, den Speicher aufzuräumen (allokierte Objekte müssen nicht gefreet werden). Py4D kümmert sich um alles.

Wenn Du also bisher noch nicht wirklich was programmiert hast, dann ist Python schon ein guter Einstieg. Gibt Dir den Freiraum, Dich um das Entwickeln von Algorithmen und Funktionen zu kümmern, und nimmt Dir die Drecksarbeit ab.

Grüße,
Jack
 

VirusX

Aktives Mitglied

AW: Phyton für Cinema 4D

Naja, also erstmal gibt es für Python enorm viel Literatur, sowie Tutorials im Internet. Es existiert eine große Python-Community, so dass es nicht an Erklärungen und Beispielcode mangelt.

...

Grüße,
Jack

Danke dir für die ausführliche Erklärung! :)

Welche Literatur kannst du denn für den Einstieg empfehlen?

Was hälst du z.B. von diesem Buch? Es scheint ja die ganzen Grundlagen abzudecken. (Allerdings sind 13 Seiten für OOP vllt etwas zu kurz bemessen)
 
Zuletzt bearbeitet:

c4dJack

Entwickler

Da muss ich leider passen, habe mich selber aus Zeitgründen noch nicht ernsthaft mit Python beschäftigt, stecke momentan zu tief in C++ ;-) Werde mich aber später dieses Jahr bestimmt mal damit auseinander setzen.

Nachtrag:

Habe gerade Sebastian (den Entwickler) gefragt. Er sagt, das genannte Buch bezieht sich auf Python3. Py4D basiert aber momentan auf Python 2.6. Also ist das Buch jetzt schonmal nicht die erste Wahl.

Eine Empfehlung (zumal kostenlos) wäre aber das hier:
Galileo Computing :: Python
Ab Kapitel 5 wird es richtig interessant, aber Anfänger sollten ruhig alles lesen ;-)
Wer lieber gedrucktes liest, kann das Buch auch in gebundener Form kaufen.

Grüße,
Jack
 
Zuletzt bearbeitet von einem Moderator:
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.611
Beiträge
1.538.341
Mitglieder
67.524
Neuestes Mitglied
BSKGA
Oben