BP_Pawn Class / Anfängerverständnisfrage

  • Hallo,


    ich habe mal eine kleine Verständnisfrage zu der Pawn Class.


    Ich habe mir eine eigenes GameMode erstellt. Die benötigten Tasten in Settings zugewiesen

    und eine einfache WASD Steuerung in der PawnClass erstellt. Im GameMode usw die PawnClass

    zugewiesen. Beim Start ist auch der Char (staticMesh) dann sichtbar. Aber er bewegt sich nicht.

    Erst wenn ich dem Pawn noch eine FloatMovement Component gebe funktioniert es.


    In der Unrealdokumentation steht dies aber nicht beschrieben... oder auch in einigen Tutorials auf YouTube konnte ich diesen Schritt nicht finden.


    Deshalb meine Fragen.

    1.

    Muss ich diese FloatMovement Component immer setzen oder geht es anders ?

    Bis jetzt dachte ich es wäre eine gute Idee die Steurung mit in die Pawn des Spielers zu packen

    Ohne die FloatMovement kommt nicht mal im Debugscreen eine Tastendruck an.. Kann also nicht mal mit PrintString eine Ausgabe erzeugen.

    2.

    Macht es mehr Sinn, da die Steuerung wachsen wird, diese in einer eigenen Controller Class

    zu erstellen ?


    Danke....

  • Erstmal Quizfrage - was ist der Unterschied zwischen Pawn und Character? Ganz einfach - dem Pawn fehlen die ganzen Movement Komponenten. OK hast du ja gemerkt... Klar kann man dranbasteln, aber... OK ich glaube du weisst worauf ich hinaus will.


    Die eigentliche Input Steuerung mache ich ganz klassisch im PlayerController - hier sind eigentlich alle devices drin die ich unterstütze und deren input (Mouse, Gyro, Touchscreen, etc). Ja das übliche halt...


    OK lass dich von mir nicht Kirre machen - UE4 ist da sehr frei, man kann vieles machen was nicht vorgesehen ist und auch total verrückte Dinge, aber meist hilft es sich da an Standards zu halten.



    Wenn du mal spicken willst wie es ein Pro macht - hier mal der Abschnitt zum PlayerController aus dem Tutorial von jemandem der da wesentlich mehr Ahnung hat als ich.


    http://shootertutorial.com/201…ontrols-mouse-touch-tilt/



    Achso nochmal kleines Addendum - ich will doch nochmal auf deine Fragen eingehen.


    Floating movement ist eigentlich eher zm "Schweben" gedacht, also hovercars, Raumschiffe usw. Heisst nicht daß man das nicht auch für anderes verwenden kann, aber für nen klassichen Menschen würde sich eher CharacterMovement anbieten - was aber im "Character"schon drin ist wie erwähnt.


    Und klar - bei einem pawn musst du erst receive Input definieren - "Auto receive input" enablen und auto possess enablen, dann geht es auch ohne movement komponenten.

  • Dank erstmal, da ich kein Menschen habe, habe ich halt auf die CharacterPAwn verzichtet und wollt halt nur ein Pawn nehmen.


    Dein Auto receive input habe ich ja noch gefunden... aber den rest ..... auto possess leider nicht...


    Bin total verwirrt gerade,... dachte nicht, dass es so ein Aufwand ist, ein einfachen Pawn zu bewegen...

    Würde ja verstehen, wenn ich statt "Add Movement" andere befehle nehmen muss z.B. "SetActorLocation",... aber im Debug Modus kommt nicht mal der Tastendruck an... Wenn ich z.B.

    Mein Event feuer.. passiert einfach nix.. selbst wenn ich nur ein Print String dahinter setze... der Tastendruck kommt nicht an...


    Naja muss mich halt mehr einlesen... aber im Moment Bahnhof...

    Das mit nem eigenen Controller finde ich auch noch etwas verwirrend... also die Aufgabe usw.. verstehe ich.. auch das warum. Aber in der Praxis schaffe ich es auch nicht, diesen einzusetzen, das er mein Pawn bewegt.

    Finde auch keine Tutorials die mal erklären, wie man ein Pawn über ein Controller bewegt...

    Erklären halt alle nur mit dem Char... Naja zur Not nehme ich halt auch die CharaterClass, aber

    dachte der wäre nur für Humanoide Objekte.. und ich hätte es immer noch nicht verstanden ^^ :)

  • OK - ich bin nicht so gut im Erklären aber ich versuchs mal.


    Der Tastendruck kommt nicht an - weil es daran liegt wer auf Tastendrücke hört. Ein Pawn reagiert grundsätzlich nur auf Tastendruck wenn er auch input empfangen kann - daher das "Auto receive input".


    Dann ist es natürlich auch wichtig wem der Pawn gehört - stell dir mal vor du hast 3 mal den gleichen pawn - einmal "deiner", einmal vom Computer und einer von deinem Freund der per Netzwerk mitspielt. Daher ist das "Posess" ("besitzen") wichtig - sprich daß dir einer der Pawns gehört - du hast die controls in den Pawn gelegt - es macht ja keinen Sinn wenn du jetzt alle 3 pawns bewegst (Also auch den von deinem Freund und den vom Computer".


    Standardmäßig steht der pawn da ohne auto-posses und auf "AI", spricht der wird so von deiner Spiel - AI gesteuert (Wenns denn eine gibt). Du kannst natürlich auch Auto-Posess auf player0 machen (Im Singleplayer bist du IMMER der erste, also Player0!) und die AI disablen, dazu noch "Auto-receive input" dann kannst du den mit deinen Tasten selber steuern.




    Und wie gesagt - Pawn und Character sind praktisch identisch, nur daß der Character halt die ganzen movement Komponenten (Laufen, Schwimmen, usw) schon drin hat.

  • Danke, so schlecht war deine Erklärung jetzt aber gar nicht :)


    Es kommt zwar immer noch kein Tasten druck an, aber da ich ein fliegendes Objekt habe,

    versuche ich mich jetz mit der FloatingMovement... evtl. auch dem Char,... brauch zwar keine Humanoide

    Steuerung aber was läuft dat läuft :)


    Gruß Olli