Klartexter Geschrieben Freitag um 19:32 Uhr Geschrieben Freitag um 19:32 Uhr Ich beschäftige mich schon eine ganze Weile mit diesem Thema, aber so richtig weitergekommen bin ich bisher damit nicht. Mir ist das so richtig bewusst geworden, als ich mich mit einer Animation für eine Rolltreppe beschäftigt habe. @kdlamann war so freundlich und hat mir eine skp-Datei nebst der x-Datei inklusive Animation zur Verfügung gestellt. Mir helfen solche Dateien, um Vorgänge besser zu verstehen. Aber bei der Animationsdatei wurde mir bewusst, dass ich wenig über die Ermittlung der Werte weiß. Bei meiner Suche nach Informationen hier im Forum bin ich auch auf diesen Beitrag von @BahnLand aufmerksam: Die dort angebotene Hilfedatei hat mir zumindest schon bestätigt, dass ich bei meiner Suche nach den Werten richtig lag. Auch die AnimationKey-Typen sind mir bereits bekannt, aber dann ist ziemlich Ende Gelände angesagt. Ich versuche mal, mein Problem näher zu erklären, deshalb hier mal eine Animationsdatei als Beispiel: ----------------------------------------------- Die Datenquelle ------------------------------------------------ Frame Treppe { FrameTransformMatrix { 1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 5.500000, 0.000000, 1.000000;; } # <frametransformmatrix> ------------------------------------------------ Hier die Animationsdatei ------------------------------------------------ Animation { { Treppe } AnimationKey { 2; 3; 0;3;0.00000,5.00000,0.00000;;, 1;3;20.00000,15.00000,0.00000;;, 2;3;40.00000,25.00000,0.00000;;; } Wie man unschwer erkennen kann, findet sich keine einzige Übereinstimmung bei den Werten. Also frage ich jetzt einfach mal in die Runde, woher kommen diese Werte im AnimationsKey: Zeile 3 - woher kommt der y-Wert 5.00000? Zeile 4 - woher kommen der x-Wert und der y-Wert? Zeile 5 - woher kommen der x-Wert und der y-Wert? Wenn ich @BahnLands Hilfedatei richtig verstanden habe, dann bezeichnen die Zeilen 3 bis 5 die Werte Rotation (Zeile 3), Scale (Zeile 4) und Position (Zeile 5). Aber woher bekomme ich die Werte, bzw. wie kann ich sie ermitteln? Mathematische Formeln wie Sinus oder Cosinus helfen mir da wenig, weil ich damit keine Ahnung habe, besser wären Tipps, was ich wo im Taschenrechner (Wissenschaftlich) eingeben muss. @Goetz hat mir ja vor längerer Zeit schon den Tipp gegeben, dass ich in Windows bereits so ein Modul habe. Bisher bin ich davon ausgegangen, dass ich, wenn ich etwas bewegen will, die Positions-Koordinaten aus der FrameTransformMatrix in Zeile 3 des AnimationsKey eintrage, und dann die Werte entsprechend der Bewegung dann ändere. Ich habe das bisher mit der Methode Versuch macht kluch ermittelt, weil mir andere Wege nicht bekannt sind. Bisher hat das auch immer funktioniert, auch wenn es zugegeben recht zeitaufwendig war. Aber ich will auch verstehen, warum etwas passiert, und nicht einfach eine Lösung, die jemand anders gefunden hat, kopieren. Deshalb würde es mich freuen, wenn ihr mir mit Tipps weiterhelfen könntet. In diesem Sinne wünsche ich euch jetzt noch einen schönen Abend. Walter
BahnLand Geschrieben Freitag um 22:33 Uhr Geschrieben Freitag um 22:33 Uhr Hallo Walter, wenn ich für ein Bauteil eines Modells eine Animation definiere, lege ich meistens die Postion den Bauteils in der skp-Datei als Ausgangsposition für die Animation fest. Damit kann ich dann die Koordinaten aus der 4. Zeile der FrameTransformmatrix (im obigen Beispiel die Werte x=0. z=5,5 und y=0) direkt als Ausgangsdaten (Zustand 0 im AnimationKey) übernehmen. Bei der x-Datei von @kdlamann, aus der das oben aufgeführte Beispiel stammt, scheint die Ausgangsposition der Animation nicht mit der Position des Bauteils "Treppe" übereinzustimmen. Denn hier ist als z-Koordinate es Ausgangszustands 0 nicht der z-Wert 5,5 aus der FrameTransformMatrix, sondern der Wert 5,0 eingetragen. Die Animation des Bauteils "Treppe" beginnt also an einer anderen Position als im skp-Modell verbaut. Die Werte x=20 und z=15 im Zustand 1 sowie x=40 und y=25 im Zustand 2 des AnimationKeys zeigen die Koordinaten an, an die das Bauteil im Zwischenzustand 1 und Endzustand 2 der Animation verschoben werden soll. Durch diese Werte wurde also der Animationsweg für das Bauteil "Treppe" von @kdlamann festgelegt. Beachte bitte, dass die Reihenfolge im amerikanischen Koordinatensystem, nachdem sich die DirectX-Syntax richtet, "x,z,y" ist. Die y- und z-Koordinate sind also gegenüber dem deutschen Koordinatensystem vertauscht. Grundsätzlich besteht die FrameTransformMatrix aus Rotationskoordinaten (Matrixzeilen 1-3) und Positionskoordinaten (Matrixzeile 4) welche die Verdrehung des Bauteils (Frames) und seine Position (die Position von dessen lokalem Nullpunkt) relativ zur übergeordneten Baugruppe des Modells (dem übergeordneten Frame) definieren. Für eine Verschiebungs-Animation (AnimationKey-Typ 2=Position) ist hierbei nur die 4. Zeile (Positionskoordinaten) relevant. Animierte Skalierungen und Rotationen (AnimationKey-Typen 1 und 0) greifen nicht auf Informationen aus der FrameTransformMatrix zurück. Viele Grüße BahnLand
kdlamann Geschrieben vor 22 Stunden Geschrieben vor 22 Stunden (bearbeitet) vor 13 Stunden schrieb BahnLand: Bei der x-Datei von kdlamann Hallo! mittlerweile (11.7.25 um 12:06 Uhr) hat mir Walter geschrieben, wo etwas schief gelaufen ist. Zur Ergänzung hier Auszüge aus der Original-Datei: Frame Treppe { FrameTransformMatrix { 1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 80.000000, 5.000000, -40.000000, 1.000000;; } # <frametransformmatrix> und AnimTicksPerSecond { 1; } AnimationSet Rollen{ Animation { { Treppe } AnimationKey { 2; 2; 1;3;120.00000,5.00000,-40.00000;;, 2;3;160.00000,25.00000,-40.00000;;; } } Animation { { StufeUnten } AnimationKey { 1; 2; 1;3;1.00000,0.00000,1.00000;;, 2;3;1.00000,1.00000,1.00000;;; } AnimationKey { 2; 2; 1;3;80.00000,5.00000,-40.00000;;, 2;3;120.00000,5.00000,-40.00000;;; } } Das ist die Datei, welche für die funktionierende Rolltreppe im Katalog verwendet wurde. Viele Grüße kdlamann Bearbeitet vor 22 Stunden von kdlamann
Klartexter Geschrieben vor 8 Minuten Autor Geschrieben vor 8 Minuten Erst einmal herzlichen Dank an @kdlamann und @BahnLand für euere Informationen. Aber ich bin offenbar zu dumm, um die zu begreifen, denn meine erstellte Rolltreppe ähnelt in der Animation eher einem Flakgeschütz als einer Rolltreppe. Ihr könnt euch das gerne unter BD90CA7B-6ECE-45C7-9CCB-5901FFDA8977 mal ansehen. Egal, wo ich die Daten aus der FrameTransformMatrix eintrage, entweder bohrt sich die Treppe in den Boden oder sie schießt in die Luft. Das Modell ist ja in H0 abgespeichert, deshalb habe ich die jeweils vierte Zeile der Frames als Datenbasis in die Animationsdatei übernommen. Aber damit komme ich nicht viel weiter, weil mir einfach die Kenntnisse fehlen, wie man Animationen berechnet. Inzwischen ist bei mir so viel Frust aufgebaut - auch über meine scheinbare Begriffsstutzigkeit - dass ich am liebsten den Kram hinwerfen würde. Wenn Blender einfacher zu bedienen wäre, dann wäre das vielleicht die bessere Lösung, denn da erledigt das Programm die Animationen. Aber mit fast 75 Jahren will ich nicht noch ein weiteres Programm erlernen. Und für Sketchup fehlt so ein Tool, denn nicht jeder ist mit solchen Berechnungen vertraut, ich auf jeden Fall nicht. Dann beschränke ich mich eben künftig auf nicht animierte Modelle oder ich lasse es gleich ganz sein. In diesem Sinne wünsche ich euch trotzdem einen schönen Restsonntag. Euer gefrusteter Walter Rolltreppe.zip
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