Animationen exakt miteinander verbinden

  • Jungens, wie verarbeitet ihr halbwegs ordentlich die Animationen miteinander?


    Also ich habe z.B eine Idle Animation ohne Waffen. Dann habe ich mir ein Paket gekauft, wo der Char eine Waffe Schultert.

    Es gibt sogar eine Animation, wo der Char die Waffe vom Rücken holt, aber trotzdem passt die erste Idle Animation nicht ganz exakt auf die Anfangskörperhaltung von der Waffen-Equip Animation.

    Gibt es irgendeinen Weg die Knochen über copy und paste oder so jedenfalls exakt von der einen Animation auf die andere Animation zu übertragen, damit der Übergang optimal aussieht???

  • schon probiert mit der Blendtime bisschen herum zu spielen? Oder andere Interpolation Types ausprobiert?

    Was auch helfen könnte ist wenn quasi die erste Pose von der Equip Animation nicht mit deiner Idle Pose übereinstimmt oder diese halt stark unterschiedlich ist. Dann kannst du auch den Anfang ab wann die Anim abgespielt werden soll festlegen. Machst du halt paar Frames später, oder du machst dir eine Kopie der Anim und kannst die dann da kürzen.
    Wenn du dann ein wenig Interpolation drin hast sollte der Übergang smoother sein.


    So als Gedanke ohne etwas zu sehen. Grad bei Animationen wäre es besser Beispiel-Aufnahmen zu machen. Ein wenig umständlich, aber hilft deutlich.


    Wegen Copy Paste oder sowas gibt es auch Nodes im Anim Graph. Nennt sich Copy Bone oder so. Hab ich keine Erfahrung mit, aber vielleicht bringt es dir was wenn du es dir anschaust.


    Bei vielen Animationen muss man auch mit IK nachhelfen.


    Jungens,

    ich bin zwar ein Helikopter aber ok :D

    • Hilfreich

    Jungens, wie verarbeitet ihr halbwegs ordentlich die Animationen miteinander?


    Also ich habe z.B eine Idle Animation ohne Waffen. Dann habe ich mir ein Paket gekauft, wo der Char eine Waffe Schultert.

    Es gibt sogar eine Animation, wo der Char die Waffe vom Rücken holt, aber trotzdem passt die erste Idle Animation nicht ganz exakt auf die Anfangskörperhaltung von der Waffen-Equip Animation.

    Gibt es irgendeinen Weg die Knochen über copy und paste oder so jedenfalls exakt von der einen Animation auf die andere Animation zu übertragen, damit der Übergang optimal aussieht???

    Was du meinst ist ein Blendspace - der hat die Aufgabe von einer Animation in die andere einen Übergang zu schaffen. Meist wird das genutzt um den Übergang von Idle zu gehen zu Rennen zu schaffen - das ist ja sehr populär in Spielen. Das soll aber nicht heissen dass man nicht von anderen Animationen sinnvoll in die nächste blenden kann - genau dafür ist es ja da. Locomotion (Also "bewegung") ist zwar sehr gefragt aber es steht dir frei auch für alle anderen möglichen ANimationen einen Übergang zu schaffen. Versuch doch mal nen blendspace zu machen wie im Buche der Locomotions. Sagen wir mal idle - hat ja locomotion auch. und sagen wir mal statt rennen hast du halt Knarre von der Schulter holen. Jetzt musst du das nur noch sinnvoll antreiben mit einer Variable die angibt wann es wieviel in die andere ANimation übergeht. Bei dir wohl sehr schnell - vom idle zum "ich grabsch die Knarre" würde ich mal ne Sekunde annehmen in der du vom einen zum anderen Status übergehst. versuch doch mal aus spass das ganze per tick zu steuern. Sagen wir mal 60 Ticks (60 fps) etwa ne Sekunde - also treibe den Wert mal so langsam hoch. Wenn es dumm aussieht versuch mal ne halbe Sekunde. probieren geht über studieren.

  • @kyodai, mega Idee :thumbup::thumbup::thumbup: , werd ich gleich probieren. Hört sich schonmal sehr profi mäßig an, weil dieses Knochenverdrehen ist eher so semi profi.


    wie lasse ich denn jetzt nen Wert bei Abruf von 0 bis 100 in sagen wir einer Sekunde laufen im Animation Blueprint. Ich habe jetzt das Blendspace mit den beiden Animationen drin, sieht auch wirklich optimal passend aus, nur muss bei Abspiel dieses Blendspace eine Float zügig von 0 bis 100 laufen, die ich dort rein pinnen kann, wie mache ich das?

  • BlueprintUpdateAnimation() ist ein event der jedes Frame im AnimationBP läuft - also eigentlich das gleiche wie event tick. Da er auch DeltaTime liefert kannst du das ganze dadurch auch unabhängig von der Framerate steuern. Hiermit kannst du sehr einfach deinen Wert "jedes Frame" oder eben "in Relation zu DeltaZeit" erhöhen.

  • Hab jetzt leider keine Animationen und Models die dazu passen, aber schau dir doch mal den BP aus dem 3rd person Template an das bei der UE4 integriert ist. Da wird im BlueprintUpdateAnimation ja der Blend abhängig von der Variable Speed angepasst. Speed 0 ist Idle ani, dann je höher es geht gehen und dann Rennen. Ist ja im Grunde das gleiche.