Suche gutes Tutorial für Rotation im Stand und für Kopfbewegungen

  • Danke für deine Hilfe, nun haben sich neue Fehler aufgetan. (Das alte vorher habe ich entsprechend dafür entfernt, vor allem das bei Movement).

    Wenn ich beide Charaktere gegenüberstelle und ich schaue nach rechts, bis ich im Stand eine Rotation von gefühlt 90 Grad gemacht habe, dann stehe ich für den anderen Spieler jedoch um 180 Grad da und nicht mit 90 Grad.
    Drehe ich mich um 180 Grad (Rücken zum anderen Spieler), steht ich mit der Vorderseite zum Spieler.

    Das Ruckeln vorwärts, links, rechts und entsprechend vor-links und -rechts, sind deutlich besser geworden.
    Es ist nur noch ein minimales ruckeln zu vernehmen.

    Jedoch besteht weiterhin das (etwas weniger starke) Ruckeln, wenn ich mich nach hinten bewege und entsprechend hinten-links und hinten-rechts.
    Wenn ich mich nach hinten bewege, dann rotiert mein Charakter bei dem anderen Spieler im Kreis, so wie bei einer Ballerina. :D
    Auch bewegt sich mein Charakter nicht "rückwärts" sondern schlägt rechts oder links schräg nach hinten ein und geht so zurück.
    In dem AnimationBlendSpace, habe ich bereits entsprechend alle Bewegungen und Richtungen eingebaut.
    Gehe ich nach hinten (laut dem BlendSpace) würde ich also mit dem Rücken auf die ThirdPersonCamera zugehen.
    Aktuell tut es das nicht, denn der Client versucht, mit dem Rücken-Vorderörper nach hinten zu gehen, also beides gleichzeitig irgendwie.



    Gibt es auch die Möglichkeit die "KörperDrehung" entsprechend in einem festen 45 Grad winkel zu setzten, damit ich dies entsprechend mit einer Animation (Drehanimation) verwischen/darstellen kann?
    So wie es mir vorkommt, dreht sich mein Charakter gegenüber von dem anderen im Multiplayer (Deticated Server) mit doppelter Geschwindigkeit.
    Würde ich also um 1 rotieren (Client 1), sieht Client 2 das ich mich um 2 rotiere.
  • Dj EKI schrieb:

    Nu habe ich das doch nicht nach dem Video gemacht, aber wenn fragen aufkommen, warum ich diese Nodes genutzt habe, dann frag ruig.

    Bei meiner Variante würde ich auch gleich den Profies fragen, ob man bei solche Berechnungen cheaten kann. Ich weis dass man Variable mit einem Programm auslesen und verändern kann. Da diese Variable aber ständig sich verändert durch Berechnungen, weis ich nicht, ob es trotzdem möglich ist. Denn der Client Rechnet und der Server bekommt alles vom Client.
    Eine Sache auf die du achten solltest: (am besten Mal testen)
    In C++ kenne ich es so dass in StandAlone (Singleplayer) oder auch ein ListenServer (Server ist gleichzeitig auch Spieler), eine Server Funktion aufgeführt wird. D.h. es könnte sein, dass AddActorWorldRotation 2 Mal ausgeführt wird, man sich also um das doppelte dreht, wenn man Offline im SinglePlayer spielt. Könnte auch das Problem was oben beschrieben ist erklären. Es ist meistens besser einen richtigen Setter zu nutzen, dann gibt es keine doppelte Addition, sondern nur doppeltes setzen, was nicht so schlimm ist.

    Ich könnte mein derzeitiges System Mal auf logik Ebene erklären. Leider ist es in C++, aber macht es glaube ich keinen Sinn dir die Implementation zu zeigen.
    2 Probleme die sich aber Lösen lassen sollten:
    1. Ich komprimiere unwichtige Rotationsdaten auf 8 Bit pro Koordinate bevor ich zu den Simulated Proxy's (alle clients die nicht Pawn-Owner sind). Dies könnte etwas schwierig werden.
    2. Ich überlade die Funktion in der in Original Character, die Rotation durch den Controller gesetzt wird. Diese lässt sich über Blueprint nicht überladen. Man könnte aber das ganze auch im Tick umsetzen.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Tomura ()

  • Ja, dass mit der rotierung sind spezielle Wünsche. Meine Option ist nur vom Standard ThirdPerson übernommen worden. Sollte der Charakter Rückwerts laufen ohne sich zu drehen, muss natürlich dafür auch etwas getahn werden. Spontan kann ich leider jetzt nicht sagen was.
    Das was du im Bild hast, dass mach mal wieder so wie vorher. Ich habe es ja nicht wie im Video übernommen.
    Dass der Charakter sehr weit dreht, ist für mich jetzt nur zu erklären, dass du den Custom Node "ServerAusführen" nicht auf RunOnServer gestellt hast. Dieser Script fuinktioniert nur auf dem dedicated.
    Ich dachte, AddActor, oder andere Nodes, wäre überhaubt nicht nötig, da replicated Movment aktiv ist im Charakter. Anschein geht das nur mit den richtigen Movement Input Nodes, damit sich der Charakter drehen kann.
  • Neu

    Mach mal ein neues Projekt nur zum testen. Dann machst du erst mein Script und baust so langsam deine Wünsche hinzu. Dann siehst du evtl eher den Fehler. Ich glaube du hast vieles so verbaut, sodass nix mehr geht. Da du im BP noch recht frisch bist, solltest du alle Ausgänge mal mit ein PrintString überprüfen, was passiert und mal selbst damit herum spielen. Sodass du den Sinn der Nodes verstehst. Dass was ich dir gegeben habe funktioniert. Wenn du andere Einflüsse hast, die müssen natürlich entschärft werden, da ich nicht weis, was da noch so alles ist. Du möchtest nur den Kopf rotieren lassen? Im Video und bei mir ist zusätzlich noch eine Rotation für den gesamten Charakter eingebaut worden, damit der sich bei max 90° von der Kamera mit dreht. Kann man weglassen. Da du das Video so wolltest, habe ich das auch so eingebaut. Nur habe ich einiges weggelassen. Von daher solltest du das Video vergessen, wenn du meins einbaust.
  • Neu

    So habe ein neues Projekt erstellt und genau das gemacht wie du es im Video angegeben hast.
    Das Resultat ist das gleiche wie in meinem Projekt.

    Im Stand mit dem Kopf umhersehen funktioniert super.
    Die Rotation funktioniert auch soweit super (im Multiplayer dreht sich der Character mit dem doppelten Wert).
    -> Client +180 Grad = Multiplayer 360 Grad.
    Warum das so ist, keine Ahnung.

    Bewegung links und rechts funktioniert super.

    Bewegung zurück ist fehlerhaft, genau so wie im neuen Third Person Projekt, als in meinem bestehenden.
    Bei der Rückbewegung dreht sich der Character im Multiplayer im Kreis (Kreisdrehung).



    Wenn ich "Set Use Controlled Yaw" auf 1 setzte, dann funktioniert alles korrekt in der Rückwärtsbewegung, jedoch mit dem typischen Ruckeln.
    Demnach bewegt sich der Character auch wirklich mit der Animation rückwärts, anstatt wie bisher seitlich rückwärts einzudrehen.
    Dann funktioniert jedoch nicht mehr die Kopfbewegung nach links und rechts (weil der Character sich dann sofort dreht, anstatt bei den angegebenen Winkeln +90 und -90 Grad).
    Hoch und runter schauen funktioniert ohne Probleme.
Unreal®, Unreal Engine, the circle-U logo and the Powered by Unreal Engine logo are trademarks or registered trademarks of Epic Games, Inc. in the United States and elsewhere.