Zeitanzeige mit Coffee

R

rah

Moin!

Da ich noch nicht C4D V9 habe, und somit auch kein HUD, kann ich nicht zur Übersicht die aktuelle Zeit bei Prerenderings anzeigen.
Ich möchte das mit Coffee und einem Textspline machen.
Soweit mein Code für eine Expression auf dem Spline:

main(doc,op)
{
var t = doc->GetTime();
var sec = t->GetSecond();
var frame = t->GetFrame(doc->GetFps());
var ausgabe = tostring(sec);
var anzeige = op->GetContainer();
anzeige->SetData(PRIM_TEXT_TEXT,ausgabe);
op->SetContainer(anzeige);

}


Jetzt ist aber mein Problem:
Ich muss jedes Mal das Text-Spline öffnen, um die Zeit zu aktualisieren. Kann man das irgenwie automatisieren, sodass sich der Textinhalt von selber aktualisiert?
Außerdem wird nach Aktualisierung nur die Sekunden angezeigt mit etlichen Nachkommastellen. Ich hätte aber gerne das SMPTE-System (also 00:00:00).
Wie kann ich denn die beiden Variablen "sec" und "frame" in der Variable "ausgabe" verbinden?

Gruß
rah

PS Das SDK von V6.1 hilft mir auch nicht mehr weiter!

edit: bei dem Befehl println kann man Variablen und sonstige Inhalte kombinieren:
println(sec,"s",frame,"B");
oder so ähnlich!
 
Zuletzt bearbeitet von einem Moderator:
Hallo rah!

Anbei eine von vielen Möglichkeiten: zuerst wird ein String 00:00:00 gesetzt und anschließend die "00" per strins mit den jeweiligen Werten überschrieben (so braucht man nicht auf die "0" vor einstelligen Werten zu achten ;) ).
Code:
main(doc,op)
{
var t = doc->GetTime();
var sec = t->GetSecond();
var frame = t->GetFrame(doc->GetFps());
 
var anz_frm = tostring(int(frame%doc->GetFps()));
var anz_sec = tostring(int(sec%60));
var anz_min = tostring(int(sec/60));
 
var ausgabe = tostring("00:00:00");
ausgabe = strins(ausgabe,anz_frm,8-sizeof(anz_frm));
ausgabe = strins(ausgabe,anz_sec,5-sizeof(anz_sec));
ausgabe = strins(ausgabe,anz_min,2-sizeof(anz_min));
 
var anzeige = op->GetContainer();
anzeige->SetData(PRIM_TEXT_TEXT,ausgabe);
op->SetContainer(anzeige);
}
Das Coffee-Script sitzt direkt an der Textspline und aktualisiert diese - zumindest bei mir - immer automatisch...

Liebe Grüße,
Mark.
 
Moin!

Bin doch erst gerade eben dazu gekommen.

Der Code ist korrekt, aber trotzdem muss ich immer vorher die Spline Box öffnen.
Das hängt wahrscheinlich mit der Version zusammen, oder?
Ich hätte das gerne, dass es sich im Editor in Echtzeit verändert, je nach Time-Slider Position.

Gruß
rah
 
Hi rah!

Hm, wie geschrieben, bei mir funktioniert's :(

Vielleicht benötigt Deine Version ein "Hinweis auf die Änderungen", probiere doch mal:
op->MultiMessage(MSG_UPDATE);
oder
GeEventAdd(ACTIVE_OBJECT_CHANGED);
(mit doc-> oder op-> ?)
am Ende des Coffee-Scripts...

Viel Glück und liebe Grüße,
Mark.
 
Wie das bei COFFE ist kann ich nur vermuten (zumindest ist's bei PHP und JavaScript so...):
Damit wird der sogenannte Modulo-Wert berechnet. Zum Beispiel: 17%3=2 (3 passt fünfmal in 17, und es bleiben 2 übrig)
Verstanden? Ich bin nicht so gut im Erklären :D

Joe
 
Abend,

mit dem % Zeichen (Modulo) berechnet man den Rest der bei einer Dividation übrig bleibt:
15 % 9 = 6 (die 9 passt einmal in die 15, übrig bleiben 6 )

//Edit: zu spät:(

Grüsse
Tonda
 
Danke, danke jetzt klappt's wunderbar!
Genau, wie ich mir das vorgestellt hatte!

Gruß
rah
 

Neue Beiträge

Zurück