Jump to content

Kettenantrieb


Empfohlene Beiträge

Hallo Zusammen,

die super Anleitung von @BahnLand zum Bau eines Kettenantriebs, hat mich motiviert, so etwas auch mal mit dem "Blender" zu versuchen.

Herausgekommen ist dabei so was:

Kettenantrieb.thumb.jpg.5fbed0739cf923e6eb88877b914a2bbb.jpg

Das "Zucken" das @BahnLand in seinem Beitrag beschreibt, tritt auch bei meinem Modell auf.
Da die Animation bei beiden Modellen auf der gleichen Idee basieren, könnte (muss aber nicht) da die Ursache für das "Zucken" liegen.

Bei höheren Geschwindigkeiten ( > 4km/h) fällt das "Zucken" nicht mehr auf.

Vielleicht kann @Neo etwas zur Klärung des Sachverhaltes beitragen?

Wer den Entwurf einmal selber ausprobieren möchte, hier die Modell-ID 7B3DFD7E-9DCC-4120-AFE8-1A2272C53E0E.

Schöne Grüße
SualokinK

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

vor 33 Minuten schrieb SualokinK:

Vielleicht kann Neo etwas zur Klärung des Sachverhaltes beitragen?

ohne Beispieldaten kann ich dazu wenig sagen, wirkt auf mich so, als wäre die Animation keine 100%ig saubere Schleife.

Viele Grüße,

Neo

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

vor 5 Stunden schrieb SualokinK:

Wer den Entwurf einmal selber ausprobieren möchte...

 Ich habe eine gerade Teststrecke mit einem Schalter gebaut. Mit dem Schalter kann ich die Fahrtrichtung umkehren. Geschwindigkeit +- 0,5.
Wenn es "zuckt" schalte ich die Fahrtrichtung um und es zuckt wieder wenn die Kette die Position vom 1. Zuck erreicht hat (hier müße auch die Animation ihre vorhergehende Position wieder erreicht haben)...
(...mehr Analyse kann ich ohne die Blenderdatei nicht machen...)

Gruß
EASY

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo @SualokinK

Ich habe das Modell von SualokinK nicht als Fahrzeug sondern als normales animiertes Modell ins MBS genommen. (So wie die Animation dann läuft entspricht das einer Fahrzeuggeschwindigkeit von ca. 0,05). Bei der laufenden Animation ist jeder Rücksprung der Elemente deutlich zu sehen.
Ich würde meine Beobachtung so interpretieren, daß das MBS für die Animation des Rücksprungs immer noch Zwischenwerte berechnet und diese dann anzeigt.
Dies hatte @BahnLand in seinem Beitrag ja auch so angedeutet und deshalb das Verhältnis Vorwärtsanimation zu Rücksprung relativ hoch angesetzt (SualokinK 270:1).
Ich befürchte, daß sich das MBS dadurch unbeeindruckt zeigt und "trotzdem" eigene Zwischenwerte errechnet und diese dann auch anzeigt. Wenn ich beim MBS von einen Berechnung von Frame zu Frame ausgehe, wäre es aus meiner Sicht logisch, daß die Wahrscheinlichkeit der Darstellung eigener Zwischenwerte bei der Animation für den Rücksprung mit steigender Geschwindigkeit des Fahrzeuges einfach nur abnimmt und deshalb immer seltener wird....
... soweit meine Situationsanalyse...
@Neo sollte meine Theorie nicht so ganz den Gegebenheiten entsprechen, gerne korrigieren.

Gruß
EASY

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

EASYs Beobachtungen sind soweit korrekt. Da das Studio mit mehr FPS läuft als die Animation (60 vs 24), werden zwischen den Keyframes Zwischenwerte berechnet. Es gibt daher keine echten Sprünge zwischen Keyframes, weshalb man das Zurücksetzen der Kettenglieder sieht. Einzig am Ende der Animation gibt es einen Sprung, da das letzte Frame = das erste Frame ist.

Das ist auch deine beste Option, das Zittern zu vermeiden. Anstatt die Kettenglieder ständig zurückzusetzen, sollten sie sich ganz normal die gesamte Animation lang fortbewegen, sodass es erst am Ende der Gesamtanimation ein Zurücksetzen gibt. Blender besitzt ja viele Animationsmöglichkeiten, und man kann solche Kettenglieder auch leicht einem Pfad entlang bewegen, siehe z.B. bei diesem Video hier:

Viele Grüße,

Neo

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo @Neo,

das ist sicher ein sehr interessantes Video, nur verstehe ich absolut nicht, was der Herr da in sehr schnellem englisch (?) erzählt.

Das Ketten entlang einer Kurve animiert werden können, habe ich schon in anderen (mir besser verständlichen) Videos gesehen, aber es ist mir bisher noch nicht gelungen, daraus eine Animation passend für das MBS zu erzeugen. Deshalb schien mir der Ansatz von @BahnLand einfacher und habe ihn deshalb versucht.
Das dass MBS damit nicht zurecht kommt, ist sehr schade und deshalb werde ich den Kettenantrieb (vorerst) mal wieder "begraben".

Danke für Eure Mühe ( @Neo, @EASY), aber das war es (vorerst) für mich mit dem Kettenantrieb :$.

Schöne Grüße
SualokinK

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Zusammen,

im Blender funktioniert der Kettenantrieb jetzt, zumindest bewegen sich die Kettenglieder, wenn ich die Kugel in y-Richtung drehe.

bild296.thumb.jpg.cad3d24b9c03fd8a79c490b1a25506f6.jpg

Wird dieser Kettenantrieb ins MBS konvertiert, dann "fährt" das Gebilde (Fahrzeug) zwar entlang eines Fahrwegs, aber die Kettenglieder bewegen sich nicht.
Wahrscheinlich werden die Objektbeschränkungen bei der Konvertierung nicht mitgenommen, oder was auch immer.

Vielleicht kann mir da einer der Blender-Spezialisten auf die Sprünge helfen.

Hier der Blender-File: Kettenantrieb.zip

Schönen Dank im Vorraus
SualokinK

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo @SualokinK,

vor 5 Stunden schrieb SualokinK:

Wird dieser Kettenantrieb ins MBS konvertiert, dann "fährt" das Gebilde (Fahrzeug) zwar entlang eines Fahrwegs, aber die Kettenglieder bewegen sich nicht.
Wahrscheinlich werden die Objektbeschränkungen bei der Konvertierung nicht mitgenommen

Ist ja ein interessantes Projekt!

Klar ist, dass sich die Kettenglieder nicht bewegen, weil ihnen noch keine Bewegung zugeordnet ist (Keyframes). In diesem Sinne muss also die komplett beabsichtigte Animation in Keyframes umgewandelt werden. Also Start-Frame setzen, End-Frame setzen und dann die gesamte Animation "baken" - dabei wird jeder einzelne Keyframe der Animation geschrieben. In diesem Arbeitsschritt (Bake Action) solltest du die möglichen Häkchen setzen, dabei wird dann die Objektabhängigkeit (von der _Wheel_Kugel) gelöst und auch alle Unterordnungen (Elternbeziehungen "Clear Parents") werden beseitigt. Dann sollte die Animation auch im 3D-M>BS laufen.

Gruß
Reinhard

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

Am 8.8.2023 um 17:37 schrieb Reinhard:

Also Start-Frame setzen, End-Frame setzen und dann die gesamte Animation "baken" - dabei wird jeder einzelne Keyframe der Animation geschrieben. In diesem Arbeitsschritt (Bake Action) solltest du die möglichen Häkchen setzen, dabei wird dann die Objektabhängigkeit (von der _Wheel_Kugel) gelöst und auch alle Unterordnungen (Elternbeziehungen "Clear Parents") werden beseitigt. Dann sollte die Animation auch im 3D-M>BS laufen.

... ich möchte kein Spielverderber sein, aber so wie im Video beschrieben geht es zwar in Blender, führt aber zu keiner Animation für das MBS.

Da das MBS Keyframe-Animationen verarbeitet, muß das Ergebnis für alle bewegten Objekte jeweils eine Keyframe-Animationen haben. Das Beispiel im Video keine "echte" Animation, sondern nur das Ergebnis eines Arrays das einem Pfad folgt. Wenn das ursprüngliche Element bewegt wird (Objektbeschränkung Transformation Rotation "_Wheel_Kugel" zu linearer Bewegung von "Kettenglied_LO.002" ) bewegt sich das Array entlang der Kurve. Man muß dabei bedenken, daß nur "Kettenglied_LO.002" "real" ist, alle anderen Kettenglieder sind nur eine Vorschau wie das Array aussieht.  Wird diese Objektbeschränkung "gebacken" führt dies zu einer linearer Bewegung von "Kettenglied_LO.002" Wird nun noch der Modifikator "Array" und der Modifikator "Kurve" aufgelöst wird "Kettenglied_LO.002" und die angezeigten anderen Kettenglieder zu einem Objekt. Die gebackene Animation führt also zu zu einem Objekt (gesamte Kette), das sich in x-Richtung bewegt... sorry für diese etwas nüchterne Analyse.
P.S. Die Objektnamen beziehen sich auf die Blenderdatei von @SualokinK (siehe in seinem Beitrag)

 Wenn Ihr ein paar Tage Geduld habt, möchte ich eine Möglichkeit zur Realisierung in Blender aufzeigen (Schlagwort Objektbeschränkung "Pfad folgen").

Gruß
EASY

Bearbeitet von EASY
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo @EASY, hallo @SualokinK,

sehe ich auch so. War ein bisschen voreilig und oberflächlich mein Beitrag.

Ich würde folgendermaßen vorgehen: Mit einem einzigen Kettenglied die gesamte Animation durchspielen und entsprechende Keyframes setzen. Mit "gesamte Animation" meine ich wirklich einmal komplett rum. Diese Animation kann dann auf alle weiteren Kettenglieder kopiert werden, natürlich jeweils um die Frames verschoben, die sich das nächste Kettenglied entfernt befindet. - ich sag ja: ein interessantes Projekt!

Gruß
Reinhard

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

das Problem wird weiterhin sein, wie man das mit der zeitlichen Periode von _AnimWheel synchronisiert. Denn die Animationslänge von _AnimWheel entspricht immer genau einer Rad-Umdrehung von 360° und gleichzeitig einer zurückgelegten Streckenlänge von 6,28 cm im Maßstab H0 oder 5,46 m im Maßstab 1:1 (jeweils gerundet). Eine Animationsperiode (Animationslänge) der Kette ist aber größer (die "geraden" Kettenteile zwischen den Rädern kommen hinzu). Da eine Geschwindigkeits-abhängige Ketten-Animation hier nur mit _AnimWheel realisiert werden kann, sehe ich (zumindest für Sketchup-Modelle) nicht, wie die "Rundum-Animation" der Kettenglieder mit den _AnimWheel-Radumdrehungen synchronisiert werden soll. Das war ja der Hauptgrund dafür, dass ich die Animationskette in Teilstücke aufgespalten habe, die sich nach dem "Vorschub" um ein Kettenglied wiederholen lassen.

Frage an @Neo: Habe ich da irgendwo einen Denkfehler?

Viele Grüße
BahnLand

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo BahnLand,

es ist korrekt, dass sich die Animationslänge von _AnimWheel auf ein Rad mit Radius von 1 cm (in H0) bezieht, ich sehe aber dennoch kein Problem, was gegen den Kettenantrieb spricht. Das Zurückspringen der Ketten nach einer Radumdrehung ist auch weiterhin möglich, solange es am Ende der Gesamtanimation geschieht, und nicht mehrmals mitten drin. Damit alles exakt passt, muss ein Abstand zwischen den Mittelpunkten zweier benachbarter Kettenglieder eingehalten werden, der ein ganzer Teiler von 2 * Pi ist, denn dann befindet sich ein Kettenglied am Anfang der Animation genau auf der Position eines anderen Kettenglieds am Ende der Animation, und man sieht das Zurücksetzen nicht (egal wie lang die Kette ist).

Soweit zumindest die theoretischen Überlegungen, bezüglich des Backens von Animationen in Blender müssen sich die Blender-Experten äußern, hier habe ich bisher nur grundlegende Erfahrungen sammeln können.

Viele Grüße,

Neo

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

vor 8 Stunden schrieb BahnLand:

das Problem wird weiterhin sein, wie man das mit der zeitlichen Periode von _AnimWheel synchronisiert. Denn die Animationslänge von _AnimWheel entspricht immer genau einer Rad-Umdrehung von 360° und gleichzeitig einer zurückgelegten Streckenlänge von 6,28 cm im Maßstab H0 oder 5,46 m im Maßstab 1:1 (jeweils gerundet). Eine Animationsperiode (Animationslänge) der Kette ist aber größer (die "geraden" Kettenteile zwischen den Rädern kommen hinzu). Da eine Geschwindigkeits-abhängige Ketten-Animation hier nur mit _AnimWheel realisiert werden kann, sehe ich (zumindest für Sketchup-Modelle) nicht, wie die "Rundum-Animation" der Kettenglieder mit den _AnimWheel-Radumdrehungen synchronisiert werden soll. Das war ja der Hauptgrund dafür, dass ich die Animationskette in Teilstücke aufgespalten habe, die sich nach dem "Vorschub" um ein Kettenglied wiederholen lassen.

... es ist im Prinzip das gleiche, wie die "richitge" Animation für ein Rad mit einem größeren Durchmesser, bei dem die Abrolllänge mehr als die 5,46m beträgt. Dies läßt sich dadurch lösen, daß die Animation keine 360° ist sondern beispielsweise nur 270° ist. Wenn nun die Aufteilung der Speichen so ist, daß optisch gesehen 0° und 270° identisch sind, ist das "Zurückspringen" des Rades nicht sichtbar (Das MBS interpoliert nicht beim Übergang von letzten zum ersten Frame.) Wenn bei der Kette diese optische Gleichheit zwischen erstem und letzten Frame gegeben ist, ist auch kein "Sprung" sichtbar, wenn die Kette keine ganze Umdrehung macht. (siehe Beitrag von @Neo).

Gruß
EASY
 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo @Neo und @EASY,

Danke für Eure Erklärungen. Auf mein Beispiel aus diesem Beitrag bezogen bedeutet dies:

Anstatt die 4 Teilketten in jeder Animation 12-mal um ein Kettenglied zu verschieben (entspricht einer kompletten Umrundung direkt am Rad) und dazwischen jedes Mal zurück springen zu lassen, wird jedes Kettenglied einmal um 12 Kettenglieder verschoben. Die Zusammenfassung mehrerer Kettenglieder zu einem Animationsobjekt ist hier aber nicht mehr möglich, da jedes Kettenglied abhängig von seiner Startposition eine andere Aufteilung von Dreh- und Schiebebewegungen durchläuft (erst wenn die Anzahl n horizontal hintereinander angeordneter Kettenglieder die Zahl 12 (allgemein die Anzahl Kettenglieder für eine vollständige Rad-Umschließung) überschreitet, können einmal (n-12) Kettenglieder zu einer zu animierenden Teilkette zusammengefasst werden). Da die komplette Kette im genannten Beispiel 24 Glieder umfasst, bräuchte man hier also  24 (anstatt 4) separate Animationsdefinitionen. Dafür fallen dann die Rücksprünge innerhalb der Teilketten-Animationen (und damit deren Zuckungen) weg.

Viele Grüße
BahnLand

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

Hier mal der Anfang einer Kettenanimation in Blender.

Der "Pfad" (als Kurve [dargestellt im Editmode]) und das Objekt "Kette"...
Beschreibung001.thumb.jpg.87d4743859f537c85d3db9c929c54bbb.jpg

Anmerkung: Die Blenderanimation geht von 0 bis 360

Den Pfad als Animationspfad definieren:
... unter "Einzelbilder" 360 eintragen...
Beschreibung002.jpg.758b919656c331301a5dc3adcf9eff07.jpg

... die Zeitleiste auf 0 setzen und unter "Evaluierungszeit" 0 eintragen und mit einem Rechtklick "Schlüsselbild einfügen"
Beschreibung003.jpg.ab50edc513bdd0fd769a4a51d9c69b57.jpg

... die Zeitleiste auf 360 setzen und unter "Evaluierungszeit" 360 eintragen und mit einem Rechtklick "Schlüsselbild einfügen"
Beschreibung004.jpg.b535ee49477874c6cc9c4e42b91d9aa3.jpg 

Dem Objekt "Kette" die Objektbeschränkung "Pfad folgen" mit den gezeigten Einstellungen hinzufügen...
Beschreibung005.jpg.b251a38a8630f06831cee48a659e89ce.jpg

Das Objekt "Kette" ist nun mit dem Pfad "verbunden" und folgt diesem mit der Animation...
Beschreibung006.jpg.db266fb9ce5ed6e445ec325157de76ec.jpg

Die Blenderdatei bis zu diesem Schritt: Kette 10 nicht gebacken.zip

... Fortsetzung folgt...

Gruß
EASY

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

... Fortsetzung...

Eine Kopie von "Kette" erstellen (Shift+D und Enter (Achtung! Zwischen Shift+D und Enter nicht die Maus bewegen!))...
Beschreibung1001.jpg.22ac24eda669eb052be1b8b908b5dd80.jpg

... und der Kopie in der Definition der Objektbeschränkung "Pfad folgen" einen Versatz von 12 zuweisen...
Beschreibung1002.jpg.562d23141813fd9fbf7401454c7f2fb2.jpg

... dann ist die Kopie an der "richtigen" Stelle...
Beschreibung1003.jpg.969f8fcaf9d74f097a74993de6f61aec.jpg

Anmerkung: Die Zahl 12 ergibt sich als folgender Betrachtung:
Auf die Länge des Pfades passen 30 mal das Objekt "Kette". Die Animationslänge ist 360. 360/30=12. Die Kopie muß also in der Animation um 12 Frames versetzt sein.

Die nächste Kopie erhält einen Versatz von 2*12=24...
Beschreibung1004.jpg.88712d2ebe728e6bfab1e6ca2b8e34e6.jpg

Beschreibung1005.jpg.571be5e478928d4ad60ab6ae3f1d5b1f.jpg

... bis zur letzten Kopie mit einem Versatz von 29*12=348...
Beschreibung1006.jpg.90e23551c505d37504d7e14d1202b93b.jpg

Beschreibung1007.jpg.b9b285598157323414bf4dad6ae423b2.jpg

... jetzt ist die Kette geschlossen.

P.S. es gibt noch ein Empty mit "_Scale_10_1_m". Ich baue immer 10:1 und arbeite im MBS 1:1 und in Meter.
Beschreibung1008.jpg.7170f25c59e3c4828813fdaf8cb792bc.jpg

Die Blenderdatei bis zu diesem Zwischenschritt Kette 10a nicht gebacken.zip

Fortsetzung folgt...

Gruß
EASY

 

Bearbeitet von EASY
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

Das Finale...

Die Animation backen:
Zuerst alle Kettenglieder markieren. "Objekt" -> "Animation" -> "Aktion backen"
Beschreibung2Bild001.jpg.f0f1e0defbb870369cd76e609dd063fd.jpg

... mit diesen Einstellungen...
Beschreibung2Bild002.jpg.a234d4f9d3f5049814d902bd48f41ef1.jpg

Das Modell exportieren und eine .anim anlegen mit "_AnimWheel;0;360".
Nun kann es ins MBS als Fahrzeug importiert werden...
Beschreibung2Bild003.jpg.50e5638763df94c001085fb3811e07dc.jpg

Wenn man nun losfährt, wird man feststellen, daß die Kette zu schnell dreht....

Wie @BahnLand schon ausgeführt hat, entspricht eine Animationslänge einer Strecke von 5466mm (Beim Maßstab 1:1)
Wenn ich ein Kettenglied ins MBS importiere ist es 349mm in x-Richtung.
Beschreibung2Bild004.thumb.jpg.c41e55ff4abb23e4b416c249234d2509.jpg

Ein Animationsumlauf sind 30x349mm=10470. 5466mm/349mm=15,66. Die Kette müßte also um 15,66 Kettenglieder abrollen um exakt dargestellt zu werden. Da wie weiter oben schon erläutert, bei der Animation der erste und der letzte Frame optisch übereinstimmen müssen, werden 15 Kettenglieder gewählt. Dies enspricht (bei 30 Kettengliedern) also genau der halben Animationslänge. (15x349mm=5235mm. Dies ist hinreichend genau.)

Daraus folgt:
Die Animationslänge muß in der Blenderdatei nur 180 Frames betragen. Entsprechend in der Zeitleiste auf Ende=180 setzen.
(Achtung! auf keinen Fall die Animationseinstellungen des Pfades ändern! Diese bleibt bei 360).
Bei Backen der Animation "Endbild" auf 180 setzen und backen.
Die .anmin hat nun "_AnimWheel;0;180"

Kette 10a gebacken.zip   .blend + .anim + .glb (für Leute ohne Blender) ist das Paket bei dem die Kette zu schnell läuft.

 Kette 10b gebacken.zip   .blend + .anim + .glb (für Leute ohne Blender) ist das Paket bei dem die Kette "richtig" läuft.

P.S. Die Kette hat etwas viele Polygone... ich habe vergessen einige Unterteilungen zu löschen und es erst gemerkt als alles fertig war... und noch einmal neu machen wollte ich nicht...

Ich hoffe daß Ihr mit der Beschreibung etwas anfangen könnt...

Gruß
EASY

 

Bearbeitet von EASY
Link zu diesem Kommentar
Auf anderen Seiten teilen

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 erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...