Timelines ineinander übergreifen

  • Hallo und eine schöne gute Nacht,


    ich versuche mich gerade an einer Straßenlaterne. Funktioniert eigentlich alles ganz einwandfrei, bis auf ein kleines Manko. Die Straßenlaterne hat eine Kugel die sich um die Z-Achse bewegen soll. Dafür verwendete ich zunächst dieselbe Timeline, wie für die Set Intensity und set Material. Hat super funktioniert. Danach setzte ich eine zweite Timeline und ab da funktioniert es nicht mehr. Die kugel beginnt sich zwar zu drehen, jedoch sobald die zweite Timeline ansetzen sollte, bleibt die Kugel stehen. Nun mein kleines Problemchen.

    Die erste Timeline hat keinen Loop und dient eigentlich nur dazu eben das Licht anzumachen und das Material der Lampe zu ändern und die Kugel in Bewegung zu setzen. Die zweite Timeline sollte dann die Kugel in einem Loop solange drehen, wie es dunkel ist. Natürlich könnte ich auf die zweite Timeline verzichten und einfach aus der ersten Timeline einen Loop machen, aber Sinn der Sache ist, dass sich die Kugel erst langsam anfängt zu drehen und dann in einem gleichmäßigen Tempo sich um die Z-Achse bewegen soll. Setze ich anstelle von Play auf Play from Start, funktioniert zwar die zweite Loop, aber in der ersten Timeline nur die Änderung des Materials.

    Nun meine Frage: Wie kann ich die Kugel erst langsam drehen lassen um sie dann in einem gleichmäßigen Tempo rotieren zu können.

    Bin für alle Vor- und Ratschläge dankbar. Einen schönen Abend und viel Erfolg,


    Cya Marc

    • Hilfreich

    Ich würde alles per Material umsetzen ... per MPC (Material Parameter Collection), spart ordentlich Performance, im Gegensatz zu hunderten Straßenlaternen, die alle eine eigene Timeline abspielen müssen.


    Hab für deinen ersten Part mal ein Tutorial erstellt, um es performanter zu gestalten ^^

    Externer Inhalt youtu.be
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.



    Für den zweiten Part wollte ich auch ein Tutorial machen, aber da mir der Sinn der Kugel in der Laterne nicht klar war, hab ichs gelassen...

    Guck dir das an, das ist um ein Objekt um seine eigene Achse drehen zu lassen:

    Das Speed aus der MPC sagt wie schnell sich das drehen soll, dazu braucht man keine Timeline.

  • Danke Butterfly für die schnelle Antwort. Weiß nicht ob das klappt mit dem Material. Die Laterne besteht aus einem Ständer und einer Kugel die daran hängt. Beide Meshes haben mehrere Materialien und schließlich sollte sich nicht das Material bewegen, sondern wirklich die Kugel. Sie hat noch ein paar Zacken und Verformungen, somit sieht man dass sie sich bewegt, ziemlich gut. ICh habe mir dein Tutorial angesehen und werde versuche das in mein Projekt zu integrieren.

    Danke auf jeden Fall.


    Schönes Wochenende und viel Erfolg mit deinen Projekten, ciao

  • Beide Meshes haben mehrere Materialien und schließlich sollte sich nicht das Material bewegen, sondern wirklich die Kugel.

    World Position Offset ist dafür da, das Modell zu bewegen und nicht nur ne Textur:

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    Solang die Kugel nur um die eigene Achse rotiert ist alles gut, das Problem kommt erst, wenn sie sich über die Map bewegen soll, denn das Mesh bleibt an der gleichen Position und rotiert nicht physikalisch, nur optisch (kannst es ne optische Täuschung nennen) ^^

  • Willst du das Blueprint über den Blueprint Parser hochladen ?


    1. Auf https://blueprintue.com/ dein Blueprint von Unreal via Copy & Paste einfügen.

    2. Auf Create your pastebin klicken und den Link der Seite die dann generiert wird hier einfügen.


    So sieht der Link aus den du einfügen musst: https://blueprintue.com/blueprint/xxxxx


    Eine genauere Anleitung gibts hier: Den Unreal Parser im Forum verwenden

  • Externer Inhalt blueprintue.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

  • Kann auch nicht funktionieren, da du die Timeline per Tick immer wieder bei 0 anfangen lässt...

    Die erste Timeline wird erst so laufen wie du es willst, wenn Z der Sonne über 5 ist, die Intensity wird sich dadurch aber nicht ändern, da du im gleichen Schritt, ebenfalls per Tick, wieder die Intensity auf 0 setzt ^^


    Versuch es mal, vor die erste Timeline, ein "DoOnce" zu setzen, dadurch wird die Timeline nur ein einziges Mal abgespielt.

    Der ganze Aufbau ist aber auch nicht wirklich performant, da du jeden Tick, zusätzlich auch noch alle Actor der Class holst...


    Kleiner Tipp:

    Wenn du ne Referenz aus nem Array holst, brauchst du nicht mehr zum Actor casten, da du die Referenz bereits hast ^^

  • Danke für die Tipps, man merkt wahrscheinlich, dass ich das hier nur als Hobby mache. :)

    Kenne mich wirklich Nüsse aus, und bin über jeden Ratschlag mehr als dankbar.


    Ich verstehe nur nicht ganz: Die erste Timeline soll doch laufen wenn Z der Sonne unter 5 ist. Die Intensity wird ja auch erst wieder auf Null gesetzt, wenn die Sonne über 5 ist (Branch=False). Sollte so nicht die erste Timeline laufen sobald Z der Sonne unter 5 ist und danach(Finished) die zweite Timeline? Ist die Sonne wieder über 5, stoppt er den Loop der zweiten Timeline. Schien mir irgendwie logisch zu sein. Ob das performant ist, bleibt dahingestellt. Wollte eigentlich nur dass es einmal funktioniert.


    Viel Erfolg und gutes Schaffen, danke auf jeden Fall


    Ciao euer Marc

  • Die erste Timeline soll doch laufen wenn Z der Sonne unter 5 ist. Die Intensity wird ja auch erst wieder auf Null gesetzt, wenn die Sonne über 5 ist (Branch=False).

    Ja, aber da du das ganze an nem Tick hast, wird die Timeline bei jedem Tick auf 0 zurück gesetzt, siehe "NewTime" bei der Timeline ^^

    Ein Tick geht 0,01667 Sekunden (1 geteilt durch 60 FPS), somit schafft es die Timeline überhaupt nicht, komplett durchzulaufen, sondern startet nach 0,01667 Sekunden wieder bei der "NewTime" (neue Zeit) von 0.


    Entweder du machst das wie oben erwähnt, mit nem "DoOnce", das zurückgesetzt wird, sobald die Sonne über Z5 ist, oder du erhöhst jeden Tick, die "NewTime" in der Timeline um 0,01667, so dass sie höhere Werte ausspucken kann ^^


    Wobei man bei letzterer Variante bedenken muss, dass es nicht immer 0,01667 Sekunden sind, sondern variiert, jenachdem wie hoch die FPS sind:

    30 FPS = 0,03333 Sekunden pro Tick

    60 FPS = 0,01667

    120 FPS = 0,00833


    Wenn du es dennoch bei 0,01667 belässt, spielt es bei 120FPS, 4x schneller ab, als bei 30FPS...

    Mag bei dem ziemlich egal sein, aber wenn du es jetzt falsch lernst und die Timeline bei wichtigerem Zeug abspielst, hat der mit ner hohen FPS direkt nen Vorteil ^^

  • Hast du auch mal gecheckt, ob es den richtigen Laternen-Actor nimmt?

    Weil du spielst das nur in einer einzigen Lampe ab (Get 0) und nicht in allen die platziert wurden...


    Wenn es nur ein einziger Actor ist, der geregelt werden soll, dann gehts auch im eigenen BP, ansonsten so aufbauen wie ich im Tutorial, das ist das beste was man machen kann ^^


    Es muss auch nicht zwingend das Level-BP sein, das war nur ein Beispiel, wenn man das ganze mit nem Day-Night-Cycle verbindet, da ich dachte, dass der im Level-BP hockt, wenn man es per Tick macht (hab ich nie ausprobiert, bei mir läufts über ne Level-Sequence).

  • Hab als Day-Night Cycle "GoodSky" vom Marketplace. War irgendwann mal gratis und dachte, den probiere ich mal aus. Ist ein eigenes Bp. Aber eine dumme Frage wie bekomme ich alle Lampen durch das Get? Auch wenn ich später welche während des Spieles platzieren möchte? Dachte mit Get nimmt er automatisch alle vorhandenen. Vielleicht lag es ja daran *dead* hihihi, ich hoffe es zumindest


    Schönen Abend