Andy Geschrieben 27. September 2022 Geschrieben 27. September 2022 (bearbeitet) Hallo @Neo, ich möchte noch über ein Problem berichten, dass ich schon eine Weile habe, bislang noch nicht berichtet habe. In meiner Anlage benutze ich im Ablauf eine Kamera mit angehängtem Textfeld ("ACam") um alles als 'Video mit Untertitel' darzustellen. Hierzu wird zu einem bestimmten Zeitpunkt aus einer Tabelle die Position einer platzierten Kamera und ein Text ausgelesen. Die so stationierte Kamera zeigt selbst das Bild nicht, es ist nur die ACam, die praktisch 'hüpft'. Das funktioniert soweit auch wunderbar, leider nicht in allen Fällen. In den problematischen Fällen übernimmt die Kamera zwar die Position, aber die Rotation ist falsch! Noch einmal: eine 'platzierte' Kamera ändert ihren Standpunkt nie, nur die Acam. Setze ich die gleichen Daten noch einmal dahinter in die Tabelle und führe die Operation noch einmal identisch durch, stimmen die Winkel!!! Für's debuggen: Ich habe die Anlage mal kurz vor der Zuweisung gestoppt und als Entwurf abgespeichert (5 Sekunden vorher): ID ist 08ABAC09-E2EA-4110-8A7A-55FD50033462 Der Screenshot zeigt die Situation kurz danach, nach dem Kamerasprung (und vor der Wiederholung!). Als Vergleich habe ich die zugehörige 'platzierte Kamera' mal selektiert. Um wieviel der Winkel verdreht ist, kann man dem kleinen Bildchen entnehmen, da die Kamera so das Textfeld der ACam mit zeigt. Die zugehörige Tabelle findet sich in der EV unter dem Ordner 'Movie', das Skript für's 'Hüpfen' der Kamera in Ereignis 'tick Movie'. Etwas wild dort, weil ich oft genug versucht habe, dem Fehler näher zu kommen (bzw. s.u.=. Aber das muß vom System kommen. Der Fehler ist reproduzierbar, es findet sich außerdem später in der Tabelle noch ein zweites solch problematisches Ereignis. Jeder Versuch das Problem im Kleinen nachzustellen ist bislang aber gescheitert! Hat das was mit Laufzeiten zu tun?!? Es ist nicht so, dass mich der Fehler sonderlich stört, die zweite Zuweisung danach funktioniert ja. Aber melden wollte ich das schon. Der zweite Screenshot zeigt die Situation nach jener zweiten Zuweisung. Nun stimmen Acam (im Window) und Cam Zeppelin überein. Gruß Andy edit: relevanter Teil des Kameraskripts o = MovieTable[i][3] -- Objekt $("CamText").text = "" -- Textfeld löschen, Anm.: wohl nicht zwingend nötig $("ACam").transformation.position = o.transformation.position $("ACam").transformation.rotation = o.transformation.rotation layout.activeCameras[1] = $("ACam") -- Anm. eigentlich überflüssig, bis auf den allerersten Eintrag. Diese Kamera bleibt die Aktive. $("CamText").text = MovieTable[i][4] relevanter Teil der Tabelle: { 500, false, $("Cam Zeppelin"), "\n\n\nLangsam wachen alle auf..." }, { 505, false, $("Cam Zeppelin"), "" }, Bearbeitet 27. September 2022 von Andy
Andy Geschrieben 27. September 2022 Autor Geschrieben 27. September 2022 (bearbeitet) Ich habe dann nochmal die Rotationswerte im skript printen lassen. Also, bei der ersten (fehlerhaften) Operation sieht es schon sehr merkwürdig aus. Was geht da ab? Ach ja - der Zeppelin bewegt sich ja leicht und die Kamera ist da angehängt... Aber der Unterschied ist doch ziemlich grob. Die Wiederholung zeigt sich stark verbessert. Und im dem späteren zweiten Problemfall in der Tabelle ist die Kamera nirgendwo angehängt. Notfalls hole ich deren Daten auch nochmal raus. [07:50:38] obj x-0.21969597041607 [07:50:38] obj y-0.0091502983123064 [07:50:38] obj z0.040597103536129 [07:50:38] ACam x-0.12135223299265 [07:50:38] ACam y0.065209858119488 [07:50:38] ACam z-0.46883425116539 bei der Wiederholung des Kommandos nur noch geringe Unterschiede durch die Bewegung des Zeppelins, das wäre korrekt: [07:52:43] obj x-0.21985968947411 [07:52:43] obj y-0.0034269373863935 [07:52:43] obj z0.015205532312393 [07:52:43] ACam x-0.21985965967178 [07:52:43] ACam y-0.003426933195442 [07:52:43] ACam z0.015205529518425 Bearbeitet 27. September 2022 von Andy
Neo Geschrieben 27. September 2022 Geschrieben 27. September 2022 Hallo Andy, ich habe deine Anlage noch nicht im Detail untersucht, aber ich habe vor der Zuweisung der Transformation folgende Zeile hinzugefügt: $("ACam").target = nil Damit wird die Kamera erst "befreit", so wie du es schon mit der Verknüpfung (link) tust, bevor die Transformation angepasst wird. Ich habe noch keine weiteren Tests durchgeführt, aber wenn nur die Position übernommen wird, nicht aber die Rotation, dann deutet das darauf hin, dass die Kamera die Rotation anderweitig bestimmt, zum Beispiel durch eine noch gesetzte Verfolgung. Diese muss also wie die Verknüpfung zuerst gelöst werden. Viele Grüße, Neo
Andy Geschrieben 27. September 2022 Autor Geschrieben 27. September 2022 Hallo @Neo, vielen Dank, in der Tat, das hilft! Da wäre ich alleine aber nicht drauf gekommen. Gruß Andy
Andy Geschrieben 27. September 2022 Autor Geschrieben 27. September 2022 Auch der zweite Fall löst sich damit auf. In beiden Fällen wurde vorher auf eine Kamera im Verfolgungsmodus zugegriffen!
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto besitzen, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen.
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden