Bewegungsreichweite an Progressbar binden

  • Hallo und zuerst einmal ein schönes Weihnachtsfest euch allen,


    hab mich nach langer Zeit wieder einmal an der Unrealengine probiert und schon wieder ein Verständnisproblem:(.

    Hab ein Topdownspielchen genutzt und dort wird von einer Variable (Bewegung) der Wert der Distanz zwischen Playerlocation und INputtouch als Float abgerechnet. Scheint zu funktionieren, jedoch zeigt mir die Progressbar des eingebauten Widget nicht im Eventtick wie angegeben den ständigen Abzug des Wertes, sondern sobald der Pawn sich über die 100 Prozent hinüberbewegt wird auf einmal die Füllung der Progressbar direkt auf Null gebracht.

    Wollte nun fragen ob ihr vielleicht wisst, wie ich eine ständige Abrechnung und damit langsame, aber kontinuierliche Verkleinerung der Füllung der Progressbar anzeigen kann.

  • Danke für den Tipp, hab gerade ein wenig daran herumprobiert. Verstehe leider nur nicht so ganz wie diese Nodes funktionieren. Ein kleines Feedback wo was hin gehört wäre ganz nett. Ich nehme an dass Value der Wert der Entfernung entspricht der umgerechnet werden soll. Für was Input A und Input B stehen, sowie die Outrange A und B verstehe ich nicht so ganz. Danke

  • Die Progressbar rechnet zwar die Werte ab, jedoch ändert sie nach einer kleinen Dauer der Bewegung der Figur alles auf einmal von 1 zu 0 ohne die Zwischenschritte in der Bar anzuzeigen. Ich habe anscheinend irgendwo anders einen Fehler gemacht. Schade eigentlich. Ich probiere weiter.

  • Zum Verständnis,

    vorausgesetzt der Value-Wert liegt im bereich von 0-1000, dann hat Return-Value einen Wert im Bereich von 0 und 1.


    Deine Progressbar sollte mit dem Return-Wert richtig funktionieren.



    Wenn nicht liegt der Fehler vielleicht bei der Berechnung der Distanz. Lass dir die Werte doch mal mit einem Print-Node ausgeben.

  • Wenn ich deinen am Anfang gezeigten Screen richtig interpretiere, lässt du die Bewegung mehrfach bearbeiten. Du lässt beim Touchbegin den Eventtick laufen, ehe du den Touch beendest, ist es sehr wahrscheinlich, dass der Eventtick mehrfach aufgerufen wurde. Eventuell liegt hier der Fehler begraben.


    Wenn du die Bewegung mittels einer Progressbar sinken lassen möchtest, würde ich persönlich nicht auf einen Eventtick zurückgreifen, sondern die Variable erst einmal mittels eines Binds an die Progressbar einbinden (Falls nicht schon geschehen) und den Abzug der Bewegungvariable mittels einer Timeline animieren. Timelines sind allerdings nicht über Widgets verfügbar. Allerdings kann eine Verbindung zu einem beliebigen Blueprint (Playercontroller eignet sich gut) hergestellt werden und dort die Timeline aktiviert und der Wert zurückgesendet werden.

  • Hallo,

    also das mit dem MApRangeClamped funktioniert soweit, als dass die die Füllung der Progressbar langsamer (man sieht die Reduktion) abgerechnet wird, jedoch wird noch immer die gesamte Bar auf 0 gesetzt. Habe mir die Werte angesehen, dürfte also mit dem geschriebenen Werten von INrange 1000 zu Outrange 1 funktionieren. Leider verstehe ich nicht wie ich die Timeline einbauen kann. Das gesamte Blueprint ist im Playercontroller. Habe versucht eine Timeline vor dem Set der Bewegung einzufügen mit einer neuen Deltatime. Hat nicht funktioniert. Dann noch mit einem neuen Floattrack mit verschiedenen Werten. Hat auch nicht funktioniert. Ich bin leider totaler Neuling und kenn mich damit überhaupt nicht aus.
    Danke für die Hilfe.

    Ciao

    • Offizieller Beitrag

    MacArmand hat sowieso ein Fehler im ersten Screen. Naja, nur ein Denkfehler, kein wirklichen Fehler. Ich kann leider kaum erkennen, was für Event inputs es sind, aber es gibt ja nur 2 und ich nenne sie einfach oben und unten.

    Der obige nutzt den input vom unteren. Wenn der untere kein input hat, dann ist die location null.

  • Ich würde erstmal das TopDownExample auf das nötigste reduzieren um einen besseren Überblick zu haben.


    Danach dann Stück für Stück alles einbauen was man braucht. Wenn man das dann im Griff hat kann man Touch-Input und VR-Camera wieder hinzufügen wenn man es braucht.


    Hier die Vereinfachten Blueprints.


    TopDownCharacter



    TopDownController


  • Hab den Fehler gefunden. Der Valuewert des Floats (in diesem Fall "Bewegung") hatte ich auf 1000 eingestellt. Damit konnte die Progressbar anscheinend nicht arbeiten. Hab den Wert auf 1 gesetzt und nun funktioniert alles einwandfrei, dank dem Map Range Unclamped. Mit Clamped hatte es nicht funktioniert, da immer der angegebene Wert der unter Out Range B eingetragen ist angewendet wird, ich aber wollte, dass nicht bei jeder zurückgelegten Strecke, gleich wie lang sie war immer das derselbe Wert abgerechnet wird, sondern je nachdem wie weit sich die Figur bewegt. Zusätzlich einen neuen Float mit einem Set nach dem Map Range Unclamped eingebaut, um die zurückzulegende Strecke zu berechnen, dies mit einem >= des Floats "Bewegung" und einen Branch dazugeschalten und nun bewegt sich die Figur nur mehr wenn sich noch genügend "Bewegung" (angezeigt in der Progressbar) zur Verfügung steht. Einfach Klasse. Ich wollte schon alles hinschmeißen. Danke an euch alle.

    P.S.: Meinen Grinser hättet ihr sehen müssen als alles funktioniert hat. Hab den gar nicht mehr wegbekommen. :)