Third Person Character Collision einstellen

  • Hallo zusammen,


    ich bin neu hier und habe schon einige Monate mit der UE5 verbracht und mein erstes MiniSpiel realisiert. Es funktioniert auch alles soweit doch ein Problem habe ich noch. Ich verwende einen Meta Human Charakter und ich kann es bis jetzt nicht verhindern, das der Spieler mit den Mausbewegungen in den Charakter hineinzoomt. Gerade in engen Räumen ist das nicht so toll.


    Um besser zu zeigen was ich meine hab ich ein 5-Sekunden Video gemacht: CharactorCollision


    die Kamera kollidiert mit der Wand und fährt dann in die Figur rein. Wie kann ich da eine Collison einstellen dass das nicht passiert?


    Für Tipps wäre ich sehr dankbar.


    Gruß


    Andy

  • Sleepy

    Hat das Thema freigeschaltet.
    • Offizieller Beitrag

    Willst du den wirklich, dass die Kamera Kollidiert ? Ich würde stattdessen den Zoom beschränken. Du musst dir überlegen was passieren soll, wenn die Kamera mit einer Wand Kollidiert? Soll sie wirklich geblockt werden ?`Das bedeutet dann aber auch dass du die Kamera nicht mehr drehen kannst. Oder du setzt die Kamera dann an einen Punkt wo sie nicht mehr mit der Wand Kollidiert. Bedeutet: Mit einem Linetrace eine bestimmte Position auf Collision prüfen wenn eine Kollision dort stattfindet, eine andere Position prüfen. Falls keine Kollision statt findet, die Kamera dort positionieren und auf den Charakter ausrichten.

  • Danke für deine Antwort,


    so wie es jetzt ist, gefällt es mir eigentlich schon. Wenn ich mich drehe ist da halt eine Wand und deswegen gehts nicht weiter. Aber es soll halt grundsätzlich nicht passieren, dass in die Figur reingezoomt werden kann, egal wo sich diese befindet. Draußen oder drinnen.


    Hab ich hier einen Denkfehler?

  • Du kannst ja den Zoom beschränken. Weil du hast ja folgendes Problem, oder Probleme. Wenn du nah an einer Wand stehst und den Zoom nicht beschränkst, wirst du halt in den Charakter gezoomt. Wenn du die Kollision der Kamera an der Mauer verhinderst, könnte man unter Umständen sehen, was dahinter ist, was wieder eine Art Cheat wäre.


    Also kommst du eigentlich nicht drumherum den Zoom, wenn du ihn so behalten möchtest, einzuschränken.

  • Um überhaupt mal was dem Zoom zu machen habe ich jetzt mal mit einem Tutorial probiert, wie sich der Zoom begrenzen lässt. Funktioniert ganz gut:



    Wenn ich scrolle bleibt die Kamera kurz vor der Figur stehen. Aber wie mache ich es, den Zoom bei den Bewegungen mit der Maus, die zum Umsehen da sind, ebenfalls zu beschränken?

  • in jedem Spiel kann sich doch mit der Maus umschauen ohne die Figur zu bewegen. Schiebe ich die Maus links und rechts, dreht sich die Kamera um die Figur -> Passt

    ziehe ich die Maus noch hinten, sehe ich von oben auf die Figur -> Passt auch

    schiebe ich die Maus nach vorne , fährt die Kamera auf Hüfthöhe an die Figur heran und schließlich IN die Figur hinein. Nur das möchte ich verhindern.

    Vielleicht bin ich auch einfach zu doof.

  • Puhh... das scheint wirklich eine harte Nuss zu sein. Habe jetzt mal versucht den Zoom einzuschränken, ohne Erfolg



    jetzt springt die Ansicht nur wild umher oder ich sehe die Figur nur von oben ... es muss doch möglich sein, die Down Bewegung der Maus einzugrenzen :(

  • Ist das das Template vorgegebene Steuerung für 3rd Person?


    Wenn ja, ich bin leider momentan sehr beschäftigt, dann probiere ich es mit einem ganz kleinen vielleicht mal aus, um mir das anzuschauen.


    Nur, mein Projekt hat halt eine komplett eigene Steuerung, die auch noch nicht so funktioniert, wie ich es mir vorstelle, weswegen ich die Templatevorgaben nicht so kenne.

  • Danke, ich weiß deine Hilfe wirklich zu schätzen

    Ja es ist das ganz normale ThirdPerson Template, die ich nur mit meinem eigenen Metahuman ergänzt habe. Ansonsten ist die Steuerung ganz standartmäßig

  • Setz doch mal das "Set Target Arm Length" hinter deinen Yaw und Pitch Inputs. Nicht dazwischen. Und statt den Lerp nimm ein Clamp wie beim Maus-zoom...
    Quasi "get target arm lenght", clamp das ganze, und dann "set target arm lenght".


    Aktuell springst du ja durch den Lerp zwischen den beiden Werten einfach nur herum, sobald du deine Maus einen Input gibst :D

  • meinst du so:



    funktioniert leider auch nicht. Die Funktionsweise wäre doch "nur":
    Mausbewegung in der X-Achse -> Standard
    Mausbewegung in der Y-Achse -> guck wo die Kamera ist und wenn fahr nicht zu nah an die Figur heran, sprich maximal 300,0 bei "Min" weil 400 der Standardwert für die Entfernung der Kamera ist (der Boom)

  • Nein, du nutzt die ganze Zeit den Wert für deine Arm Lenght als Wert für deine Y Kamera Achse.
    Nimm da die Verbindung raus.. Du gehst von deiner Action Value Y direkt zu Up/Down.

    Dein Target Arm Lenght braucht keinen Y Wert.
    Einfach das plus weg, also "get target arm lenght -> clamp -> set target arm lenght. Du machst nichts anderes als den Min und Max Distanz zu definieren.

  • Danke für den Hinweis. Doch auch wenn ich es so mache, funktioniert es leider nicht:



    Langsam zweifel ich echt an mir selbst. Liegt es vielleicht daran, das die Mausbewegung und er Camera Boom gar nichts miteinander zu tun haben?
    Hier auch noch ein 5-Sekunden Video, das mein Problem zeigt: MoveInto


    Wenn ich die Maus zu mir zeihe, bleibt die Ansicht ja auch direkt über der Figur stehen. Schiebe sie von mir weg, also nach oben zum Monitor hin, fährt die Ansicht in die Figur rein. Mir würde es auch reichen diese 180 Grad Bewegung einzuschränken, also das nur zB 120 grad erlaubt sind.

  • Leute, ich habs endlich hinbekommen:



    Verknüpft mit den Event Beginn Play bleibt jetzt die Kamera kurz vor der Figur stehen, wenn ich die Maus zu mir ziehe. (oh Mann... so einfach eigentlich :) )



    Mit den Werten musste ich ein wenig rumspielen, aber jetzt passt alles. Trotzdem würde mich dein Vorschlag auch interessieren.

    Vielen Dank für eure Zeit und ich hoffe, dass ich mich bei weiteren Fragen wieder melden darf.


    Gruß

    Andy