Rotation entlang der X-Achse verändert Z-Koordinate

  • Guten Abend,


    ich habe ein Projekt in der "2D-Draufsicht" erstellt, das heißt, X gleich oben - unten, Y gleich links - rechts und Z soll unbeachtet auf dem Wert 0 bleiben.

    In diesem Projekt fliegt ein Flugzeug, eine Pawn-Blueprint mit einer C++ Pawnklasse als Parent, entlang der X-Achse nach oben.

    Wenn ich es nach links oder rechts steuere, lasse ich es sich währenddessen um 40 Grad zu der entsprechenden Seite hin neigen, rotiere also entlang der X-Achse.


    Nach langem Suchen an anderen Stellen fand ich heraus, dass durch die Rotation der Wert der Z-Koordinate beständig erhöht wird.

    Ich kann ausschließen, dass diese Änderung woanders durchgeführt wird.

    Sobald ich in der Blueprint den Node "SetActorRotation" deaktiviere, tritt die Manipulation des Z-Wertes nicht mehr auf.


    Könnt ihr mir erklären, wie dies zustande kommt?

    Ich verstehe dieses Verhalten absolut nicht.



    Vielen Dank für eure Hilfe.

    • Offizieller Beitrag

    Sorry aber ich werd aus deiner Frage nicht wirklich schlau.

    Ist dein Problem dass die Z Achse selbstständig höher wird ?

    Hast du vielleicht in Increment verbaut, der langsam hochzählt ?


    Wäre die Frage im C++ Bereich nicht besser aufgehoben und wie wäre es wenn du einfach mal deinen Code postet ?


    zb:

    Code
    main()
    { cout << "Hello World" << endl;
    
    //	`endl' - new line
    }

    Alternativ wären ein paar Screenshots nicht verkehrt.

  • Sleepy:

    Der Wert der Z-Koordinate wird erhöht wenn ich das Objekt zur linken oder rechten Seite steuere.

    Dies aber nur dann, wenn ich dabei Rotation einsetze.

    Ich benutze nur den Node "SetActorRotation" und setze dabei nur X auf -40, 0 oder 40.

    Das ist alles, mehr mache ich nicht.

    Kein Increment oder ähnliches.

    Deshalb frage ich hier ja, weil es mir absolut unverständlich ist.

    Gegenprobe: ich deaktiviere nur den Node "SetActorRotation" und die Z-Koordinate bleibt auf 0 stehen.


    freezernick:

    Actor ist die Basisklasse aller sichtbaren Objekte in der Unreal Engine.

    Ich werde es gleich testen, Danke für den Vorschlag.

  • Irgendwie kommt mir dein BP merkwürdig vor. Wieso boolsche Werte für die Abfrage, ob du links- oder rechtsrum fliegst? Und wozu die Sequenz.


    Das kommt mir schon sehr merkwürdig vor. Warum fragst du die Events der Tasten nicht direkt ab?


    Und wenn du Set X gleich 40, 0 oder -40 setzt, ist das ja auch ein recht ruckhafter Flug, oder nicht?


    Mal abgesehen davon, warum nimmst du nicht einen normalen Player Pawn?


    P.S. Worauf soll ich bei dem Film denn achten? Ich sehe da nichts.

    • Offizieller Beitrag

    Ich glaube das New Rotate X zu allen

    Der Wert der Z-Koordinate wird erhöht wenn ich das Objekt zur linken oder rechten Seite steuere.

    Wird den das Objekt immer kleiner ?

    Hast du mal einen Rotator statt Float ausprobiert ?

    Bau doch mal ein Break ein wo XYZ splitest und dir per Printstring anzeigst.


    Wie fliegst du den gerade aus ? Tust Z Location erhöhen und wie bewegst sich dein Objekt vorwärts

    Nehmen wir mal an dein Flieger ist nicht zu 100% gerde ausgerichtet und mit der Nase leicht nach unten. Wenn du dann natürlich vorwärts fliegst, würde Z auch größer werden.

  • Guten Morgen,


    also, ich versuche es jetzt noch einmal, danach gebe ich auf.


    Es geht nur - exclusiv - darum, dass, wenn der Node aufgerufen wird, der Wert der Z-Koordinate erhöht wird.

    Immer und immer wieder, wenn ich links oder rechts drücke und der Node "SetActorRotation" aufgerufen wird.

    Lasse ich dieses und nur dieses weg, geschieht die Erhöhung der Z-Koordinate nicht.


    Drücke ich mich dermaßen unverständlich aus?

    in dem Video geht es um den Wert der Z-Koordinate, ersichtlich rechts.



    Sleepy:

    Die Größe verändert sich nicht.

    Rotator habe ich auch getestet, dasselbe Ergebnis.

    Bein Gradeausflug wird nur - exclusiv - die X-Koordinate manipuliert.

    Dieser Gradeausflug ist immer derselbe, es hängt von dem Node "SetActorRotation" ab. Deaktiviert: Z bleibt 0, aktiviert: Z erhöht sich.

    Winkel X und Y sind und bleiben 0.


    Beim Lenken nach links und rechts wird nur - exclusiv - die Y-Koordinate manipuliert.


    Tomarr:

    Ich benutze einen Pawn.

    In dem Film geht es um die Z-Koordinate des Objekts und deren Erhöhung, das ist meine Frage und mein Problem.

    Und nicht, wie ich meine Blueprint gestalte.

    Ich benötige die Bools left und right noch an anderer Stelle.

    X ist die Rotation, simulierend eine Seitwärtsneigung eines fliegenden Objekts.

    Die Frage "Wofür die Sequenz" beantwortet sich, wenn man mal genau darauf schaut: erst wird der Wert der Variable determiniert, danach wird mit dieser operiert. Was soll daran falsch sein?


    ihr könnt es in dem Video sehen: Rotation an = Z erhöht sich, nichts geändet, nur Rotation aus = Z bleibt konstant.


    Kann es vielleicht eine Einstellung oä an dem Objekt selbst sein?

    Und nicht meine miserablen Programmierkünste?

  • Was in deinem Video zeigt denn Z an? Ich sehe da nur eine Art Tankanzeige und alle anderen Werte ändern sich nicht.


    Und was den BP-Aufbau angeht. Du scheinst es dir da etwas sehr kompliziert zu machen. Da können sich dann natürlich auch Fehler einschleichen. Wenn du schon Hilfe haben möchtest, musst du natürlich auch entsprechende Kritik im Aufbau zulassen, denn jede Art von Umweg ist natürlich auch eine Fehlerquelle. Mal abgesehen das es für uns, die das Projekt ja nicht insgesamt sehen können, es natürlich auch schwierig macht das Ganze nachvollziehen zu können.


    Dass du einen Pawn nimmst habe ich schon mitbekommen, aber einen normalen, keinen Playerpawn. Der Playerpawn wird zwar von einem Pawn abgeleitet aber ist nicht das Gleiche. Im Playerpawn hast du noch mehr Einstellungs- und Kontrollmöglichkeiten. Und dein Raumschiff ist ja nun der "Playeravatar".

  • Tomarr:

    Guten Morgen,


    ich will/wollte niemanden beleidigen und ich lasse mich gerne kritisieren.

    Was mich stört in diesem Thread ist, dass ihr nicht auf das einzugehen scheint, worum es mir geht.

    In dem Video selektiere ich nach dem Start des "Spiels" die BP_Player.

    Rechts unter Transform siehst du, wie sich die Z-Koordinate ändert, wenn ich das Objekt nach links oder rechst bewege und - wichtig! - wenn ich Rotation benutze.


    Und nur darum geht es mir.

    Und ich weiss, es liegt - wichtig - nur an der verdammten Rotation.

    Das ist alles.

    Zigmal hier beschrieben und auch im Video ersichtlich.

    Ich deaktiviere nur die Rotation und die Z-Koordinate bleibt unberührt.


    Ich weiss es zu schätzen, dass du/ihr euch die Zeit nehmt, mit den Konstruktionen anderer Leute auszusetzen.

    Aber: geht doch bitte, bitte, bitte primär auf das Hauptproblem ein.


    Ich benutze keine Templates.

    Erstelle dir ein Projekt, drehe Kamera "2D-Draufsicht", also X oben unten, Y links rechts, Z "aus dem Bild heraus".

    Nimm einen Pawn, fange ab links/rechts, rotiere das Objekt X um -40, 0, 40 je nachdem, ob links oder rechts und bewege es entsprechend nach links oder rechts.

    Dann schau, ob sich bei dir die Z-Koordinate - nicht Rotation - verändert.

    Das ist alles.


    Glaube mir, es liegt nur an "SetActorRotation".


    Danke sehr für deine Geduld...

    • Hilfreich

    Dann ist doch wohl nur der Koordinatenursprung deines Actors nicht in der Mitte? Zumindest wäre das für mich die Erklärung, wenn ich das Problem geometrisch nachvollziehen möchte.

    Versuche doch nur die Rotation der Capsule zu ändern oder wenn es ein Pawn ist die ControlRotation


  • Also, ich habe ein Projekt erstellt.

    Zunächst einen Character benutzt, damit funktioniert alles wie erwartet.

    Anschließend einen Pawn, und dort trat dieser Fehler(?) wieder auf.

    Ich habe die Nodes aus dem Character kopiert, der "Code" ist also identisch.


    Der Pawn scheint diese Rotation nicht zu mögen.


    freezernick:

    Ich schaue es mir jetzt etwas genauer an.

    Daran wird es aber nicht liegen, da dieses Verhalten in dem neuen Projekt wieder auftrat.