Zurück   PSD-Tutorials.de > 3D > CINEMA 4D > C4D - Texturing, Beleuchtung, Rendering


Antwort
 
Themen-Optionen
Alt 29.05.2012, 09:00   #1 Nach oben scrollen
Oldtimer-Stift
MemberMember
 
Benutzerbild von smart88
 

Registriert seit: 04.10.2010
Beiträge: 168
Kamera: Canon 400D
Verwendet: Corel X6 / Cinema 4D R13

Problem beim Rendern mit Coffee


Hallo zusammen.

Ich habe eine Pyramiden-Uhr modelliert und sie mittels Coffee animiert. Wenn ich die Animation in der Zeitleiste starte funktioniert alles einwandfrei.

Aus der Animation wollte ich ein Video rendern. Aber die Objekte bewegen sich im Video nicht. Was mache ich falsch?

Danke euch im voraus.
__________________
Nur wer seine Nase immer ganz vorne dran hat, bietet anderen die Chance, einem in den Hintern zu treten.
  Mit Zitat antworten


Alt 29.05.2012, 15:40   #2 Nach oben scrollen
KBB Männlich KBB ist offline
Blaubär
Premium-SupporterPremium-SupporterPremium-SupporterPremium-SupporterPremium-Supporter
 

Registriert seit: 18.03.2009
Beiträge: 6.433
Verwendet: C4D ... | 12 | 13 | 14 | VRay | CS Production Premium 5.5 ...

Wie startet das Script denn, ist es Teil eines Xpresso Nodes? Und wie sieht der Header vom Script aus bzw. wie sprichst Du das aktive Dokument an?
__________________
"Nein, das möschte isch nischt" - Gisela
"How to use the HELP" - Ernst zu nehmendes Tutorial, wie die Hilfe in C4D zu nutzen ist
  Mit Zitat antworten
Alt 29.05.2012, 16:16   #3 Nach oben scrollen
Oldtimer-Stift
MemberMember
Themenstarter
 
Benutzerbild von smart88
 

Registriert seit: 04.10.2010
Beiträge: 168
Kamera: Canon 400D
Verwendet: Corel X6 / Cinema 4D R13

Hallo KBB.

So schnell sieht man sich wieder.

Die Uhr hat ein C.O.F.F.E.E-Tag. Das Programm sieht wie folgt aus:

// Uhrzeit zum Start festlegen
var stunden=2.0;
var minuten=35.0;
var sekunden=56;
var last_sekunde=56;

// Subroutine Zeiger drehen
drehen(doc,obj_name,drehung)
{ var obj = doc->FindObject(obj_name);
if (obj == NULL)
{ return; }
var rotation = obj->GetRotation();
rotation.x = drehung;
obj->SetRotation(rotation);
}

// Subroutine Zeit um eine Sekunde hochzählen
SetUhrzeit()
// { if (sekunden == last_sekunde)
// { return; }
{ var doc = GetActiveDocument();
sekunden = sekunden + 1;
if (sekunden > 59)
{ sekunden = 0;
minuten = minuten + 1;
}
if (minuten > 59)
{ minuten = 0;
stunden = stunden + 1;
}
if (stunden > 11)
{ stunden = 0;
}
//var last_sekunde = sekunden;
var drehung_h = -2 * 3.1415926 / 12 * stunden + (-3.1415926 / 360 * minuten);
var drehung_m = -2 * 3.1415926 / 60 * minuten;
var drehung_s = -2 * 3.1415926 / 60 * sekunden;

drehen(doc,"Zeiger_Sekunden",drehung_s);
drehen(doc,"Zeiger_Minuten",drehung_m);
drehen(doc,"Zeiger_Stunden",drehung_h);
}

main(doc,op)
{ var doc = GetActiveDocument();
var akt_frame = doc ->GetTime()->GetFrame(doc->GetFps());
var flag_set = int(Modulo(akt_frame,10));
if(flag_set == 0)
{ SetUhrzeit();
}
}

Wie gesagt, wenn ich die Zeitleiste laufen lasse, funktioniert es. Nur wenn ich das Video rendern lasse, passiert nix. Soll ich dir die Datei eventuell mal zukommen lassen?
__________________
Nur wer seine Nase immer ganz vorne dran hat, bietet anderen die Chance, einem in den Hintern zu treten.
  Mit Zitat antworten
Alt 29.05.2012, 17:34   #4 Nach oben scrollen
KBB Männlich KBB ist offline
Blaubär
Premium-SupporterPremium-SupporterPremium-SupporterPremium-SupporterPremium-Supporter
 

Registriert seit: 18.03.2009
Beiträge: 6.433
Verwendet: C4D ... | 12 | 13 | 14 | VRay | CS Production Premium 5.5 ...

Nein lass mal, so gut ist mein Coffee nicht

Ich bin mir nicht sicher, ob
Code:
{ var doc = GetActiveDocument();
deutlich genug die aktuelle Szene ist und/oder am Ende von main bzw SetUhrzeit nicht noch ein Aktualisierungsbefehl (EventAdd et al) erfolgen sollte. Finde aber gerade weder das eine noch das andere, hatte erst vor kurzem irgendwo drüber gelesen. Wie gesagt, ich spreche nicht fließend Coffee..
__________________
"Nein, das möschte isch nischt" - Gisela
"How to use the HELP" - Ernst zu nehmendes Tutorial, wie die Hilfe in C4D zu nutzen ist

Geändert von KBB (29.05.2012 um 17:51 Uhr).
  Mit Zitat antworten
Alt 29.05.2012, 18:21   #5 Nach oben scrollen
Oldtimer-Stift
MemberMember
Themenstarter
 
Benutzerbild von smart88
 

Registriert seit: 04.10.2010
Beiträge: 168
Kamera: Canon 400D
Verwendet: Corel X6 / Cinema 4D R13

Hallo KBB.

Meinst Du EventAdd(); am Schluss?

Wenn ja, werde ich es morgen früh testen, da momentan der Grill gerendert wird. Dauert etwa 16 h für 600 Frames.

Gruss
smart88
__________________
Nur wer seine Nase immer ganz vorne dran hat, bietet anderen die Chance, einem in den Hintern zu treten.
  Mit Zitat antworten
Alt 29.05.2012, 19:29   #6 Nach oben scrollen
KBB Männlich KBB ist offline
Blaubär
Premium-SupporterPremium-SupporterPremium-SupporterPremium-SupporterPremium-Supporter
 

Registriert seit: 18.03.2009
Beiträge: 6.433
Verwendet: C4D ... | 12 | 13 | 14 | VRay | CS Production Premium 5.5 ...

Ja das war der eine Gedanke, s.o., hatte ich schon nachgetragen.
Aber irgendwas mit der Ebene auf der das Coffee arbeitet gabs m.E. noch. Da Deine Szene im Editor richtig arbeitet, beim Rendern jedoch nicht, weist das imo darauf hin. Ich finds aber nicht mehr, vllt. ist GetActive... auch das einzig richtige dafür.
__________________
"Nein, das möschte isch nischt" - Gisela
"How to use the HELP" - Ernst zu nehmendes Tutorial, wie die Hilfe in C4D zu nutzen ist
  Mit Zitat antworten
Alt 31.05.2012, 07:01   #7 Nach oben scrollen
Oldtimer-Stift
MemberMember
Themenstarter
 
Benutzerbild von smart88
 

Registriert seit: 04.10.2010
Beiträge: 168
Kamera: Canon 400D
Verwendet: Corel X6 / Cinema 4D R13

Moin, Moin.

So, nachdem der animierte Grill sage und schreibe 26 h gerendert hat, konnte ich nun die Pyramide testen. Leider ohne Erfolg.
__________________
Nur wer seine Nase immer ganz vorne dran hat, bietet anderen die Chance, einem in den Hintern zu treten.
  Mit Zitat antworten
Alt 03.07.2012, 11:28   #8 Nach oben scrollen
Oldtimer-Stift
MemberMember
Themenstarter
 
Benutzerbild von smart88
 

Registriert seit: 04.10.2010
Beiträge: 168
Kamera: Canon 400D
Verwendet: Corel X6 / Cinema 4D R13

Hallo zusammen.

Jetzt habe ich endlich mal wieder Zeit für die Uhr gefunden. Die Steuerung habe ich komplett geändert. An dem Null-Objekt hängt nun ein XPresso-Node, dass wie folgt aufgebaut ist:



Die Berechnung im Coffee-Node sieht wie folgt aus:

main(doc,op)
{ var Startwert=84789;
var Startframe=0;
var frame = int(IstZeit*FPS);
var Stdges = int(frame/25)+Startwert;
var Stdges = Modulo(Stdges,3600);
var Stunden = Modulo(Stdges,12);
var Restzeit = Stdges - (Stdges * 3600);
var Minuten = Modulo (Restzeit,60);
var Sekunden = Restzeit - (Minuten * 60);

var Dreh_Std = Stunden * PI / 6;
var Dreh_Min = Minuten * PI / 30;
var Dreh_Sek = Sekunden * PI / 30;
}

Die Objekte bleiben aber still stehen.
Weiss jemand, wo mein Fehler liegt?

Danke im voraus
__________________
Nur wer seine Nase immer ganz vorne dran hat, bietet anderen die Chance, einem in den Hintern zu treten.
  Mit Zitat antworten
Alt 03.07.2012, 11:39   #9 Nach oben scrollen
KBB Männlich KBB ist offline
Blaubär
Premium-SupporterPremium-SupporterPremium-SupporterPremium-SupporterPremium-Supporter
 

Registriert seit: 18.03.2009
Beiträge: 6.433
Verwendet: C4D ... | 12 | 13 | 14 | VRay | CS Production Premium 5.5 ...

Ohne in das Script zu schauen (pack das doch bitte in ein Code-Tag - das ist das Symbol # hier in der Mini-Menueleiste oben drüber), fällt auf, dass Dein Coffee Node gelb ist. Was heißt, dass da was nicht stimmt.

Ruf den Coffee-Node auf, so dass der Inhalt im Coffee-Editor angezeigt wird und klicke oben auf "Kompilieren...", dann wird Dir vermutlich schon ein Syntax- oder Logikfehler samt Zeile angezeigt. Die Funktion ist die gleiche wie im Coffee-Tag.

Standardmäßig steht im Header eines Xpresso-Coffee-nodes jedenfalls nur
Code:
main()
, k.A. ob das Sinn macht, hier op und doc mit zu übergeben wie im Coffee-Tag. Bedenke, dass beide, Tag und Node, etwas unterschiedlich arbeiten!
Zweitens fällt mir die doppelte Angabe der var Stdges auf. Sicher dass das geht? Da stößts schon an meine C-Grenzen, vllt. wirds durch die Nacheinander-Abarbeitung ja auch so toleriert
__________________
"Nein, das möschte isch nischt" - Gisela
"How to use the HELP" - Ernst zu nehmendes Tutorial, wie die Hilfe in C4D zu nutzen ist
  Mit Zitat antworten
Alt 03.07.2012, 16:05   #10 Nach oben scrollen
Oldtimer-Stift
MemberMember
Themenstarter
 
Benutzerbild von smart88
 

Registriert seit: 04.10.2010
Beiträge: 168
Kamera: Canon 400D
Verwendet: Corel X6 / Cinema 4D R13

HURRA! Sie läuft.

Ich hatte zur Kontrolle der Werte einen Output in Benutzerdaten gemacht. Beim Umbenennen hat er mir die Variable umbenannt. Daher der doppelte Namen. Habe ich jetzt geändert.

Mein Fehler war, dass ich bei den Ausgabewerten var davorgeschrieben habe.

DAnke für eure Hilfe
__________________
Nur wer seine Nase immer ganz vorne dran hat, bietet anderen die Chance, einem in den Hintern zu treten.
  Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen