Hallo Mark,
klingt wirklich spannend, als ob es klappen könnte... leider weiß ich gar nicht, wo und wie ich diese Befehle einsetze :-/
Ich habe es ja nun mit einem ganz einfachen (dachte ich) Skript versucht, da sich wirklich nur die Z-Position schlagartig von 0 auf -1 ändern sollte, und dann in 0,2-Schritten wieder zurück auf 0. Die Werte, wann denn auf -1 gesprungen werden soll, kommen per Spline-Punkten. Nun habe ich mir folgendes ins Coffee-Node geschrieben:
main()
{
if (!SplineList) return FALSE;
{
if (!instanceof(SplineList, PointObject)) return FALSE;
var pcnt = SplineList->GetPointCount();
Output1 = 0;
var i;
var j;
j = 0;
for(i=0; i<pcnt; i++) {
var p = SplineList->GetPoint(i);
for(j=0; j<=5; j++) {
if (p.x+(0.04*j) == Value)
Output1 = (-0.2)*(5-j);
}
}
}
}
Die Werte kommen über den Input SplineList, die Zeit über Value. Keine Ahnung, ob das nach Pfusch aussieht, aber beim ersten Wert 0.28 funktioniert es gut: Bild 7 produziert den Wert -1, Bild 8 -0.8, Bild 9 -0.6, Bild 10 -0.4, Bild 11 -0.2 und zu guter Letzt Bild 12 den Wert 0.
Aber dann passiert folgendes: bei verschiedenen Werten erzeugt das Coffee-Skript nicht immer die Folge -1, -0.8, -0.6, -0.4, -0.2, -0 sondern manchmal einfach
-1, -0.8, 0, -0.4, 0, 0
-1, -0.8, 0, 0, -0.2, 0
0, -0.8, -0.6, 0, -0.2, 0
und so weiter... sprich, scheinbar beliebige Werte der Folge werden durch 0 ersetzt, nachfolgende Werte aber durchaus wieder richtig berechnet. Wie kommt das? Wie kann ich das beheben? Ich habe einfach mal verschiedene Werte ausprobiert und ein paar herausgefunden, die fehlerfrei arbeiten. Aber eigentlich wollte ich da auch mal nach Belieben welche einsetzen und nicht nur die, die dem Programm genehm sind ;-)