Character Mesh Colision

  • Hallo Leute,


    ich habe da wieder ein Problem. Beim schwimmen. Ich kann schwimmen und wenn der Character aus dem Wasser kommt alles super. Leider habe ich nun einen kleinen Pool.


    Dort schwimmt der Charakter bis zum Rand, dann allerdings steht (liegt)der gesamte Oberkörper aber in der Wand. Die CapsuleComonent(ColisionCylinder) steht ja hochkant, was la für die Idle Position auch gut ist. Für das schwimmen aber nicht. wie könnte ich das den ändern? Wenn ich meinem Mesh eine ColisionsCapsel verpasse die alles Blocken soll ändert das nichts.


    Gruß

  • Hallo Jungens,


    ja besten dank für die Antworten. Janinus; die Physics habe ich mal raus genommen ist dann aber das gleiche.


    kyodei. ja die Capsule ist ja hochkant meine animation zum schwimmen aber längs also kommt der Character aus der Capsule. die Capsule stößt an die Wand und stoppt. Allerdings dann ja der Halbe Körper des Characters in der Poolwand. Wenn ich die capsule drehe ist zwar der Cahrakter vor der Wand allerdings unten auf dem Boden und beim stehen bleiben ist die IDLE Anim dann verkehrt. Im Blendspace-1D weiß ich nicht wie ich der Capsule sagen soll das sie sich dreht wenn er schwimmt und wieder zurückdreht wenn ich stoppe.

    Der Caracter Mesh wird völlig ignoriert wenn ich da Block all einstelle es wir nur gemacht was die Capsule sagt. Ich hatte ja auch gedacht wenn ich den Mesh eine Kollision zuweise dann müsste er ja stoppen wenn der Kopf oder die Füße die Wand berühren. Aber leider nein.


    Gruß

  • Du erstellst ne Bool-Varaible "Swim", oder so. Diese setzt du Standard mäßig auf "false". Den aktuellen Wert der Variable, lässt du durch dein Event Tick immer checken (Ich weiß, nicht sehr performant, aber wichtig ist erstmal, dass es irgendwie läuft).

    Sobald du dann im Wasser bist bzw. du anfängst zu schwimmen, setzt du die Bool-Variable auf "true". Der Branch bei deinem Event Tick, wird somit den Zweig ab "true" ausführen. Und dort veränderst du dann einmalig (do-once) die Rotation der Capsule, so wie du es fürs schwimmen brauchst. Wenn du das wasser wieder verlässt, wird die Bool-Variable wieder auf "false" gesetzt, und die Rotation der Capsule wird zurückgesetzt.

    Look behind you! A three-headed monkey!

    • Offizieller Beitrag

    Du erstellst ne Bool-Varaible "Swim", oder so. Diese setzt du Standard mäßig auf "false". Den aktuellen Wert der Variable, lässt du durch dein Event Tick immer checken (Ich weiß, nicht sehr performant, aber wichtig ist erstmal, dass es irgendwie läuft).

    Oder den Boolean setzen wenn die Schwimmanimation gestartet wird und dann über den Branch abfragen.

    Wenn der Charakter nicht schwimmt, die Capsule wieder in die Ursprungsposition setzen.


    leviavan Nur was machst du beim runter tauchen ? Dann müsstest du die Capsule wieder anderst drehen genau so wie beim auftauchen ?

    Vielleicht wäre es sinnvoller Rotationen des Charakter auf die Capsule zu übertragen.


    Selbst wenn du dann kopfüber aus dem Flugzeug springst, wäre die Capsule korrekt ausgerichtet.

  • Hallo Leute,

    ich danke euch für euere Hilfe.

    Ja das mit dem Boolen das habe ich ja alles. Ich habe im Character-BP im AminGraph zwei State Maschchins. Standard zum laufen die andere zum schwimmen. die wechseln ja auch. habe beim schwimmen ein Blendspace-1D wie beim Laufen gemacht. Also was passiert wenn ich in Ruhe bin und was wenn ich mich bewege. sollte ich da lieber im Standard AminGraph etwas machen so wie beim Springen?


    Ist mein Gedanke mit dem BlendSpache1D hier der falsche ansatz gewesen?


    Gruß

    • Offizieller Beitrag

    Wenn du deinen Charakter importierst und in den Viewport ziehst hat dieser eine Position und eine Rotation. DIe sollten im besten Fall XYZ = 0 sein.


    Dein Capsule sollte auf auf der selben Positon wie dein Charakter sein. Sonst funktioniert das logischer weise nicht :)

    Wenn dein Charakter nach unten schwimm ändert sich die Position und der Rotationswert.


    Das ist zumindest mein Gedanke.


    Schau mal hier:

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

  • Danke Sleepy,


    ja das ist schon klar. Irgendwie drücke ich mich falsch aus.

    Das geht ja alles.

    Die Capsule ist ja immer senkrecht. Mit meinem Bledspace-1D. kann ich mit w nach vorne schwimmen und mit s nach hinten wie beim laufen auch. Meine Idle anim ist auch senkrecht weil sie ja im Wasser steht. Bild 1



    wenn ich nun w drücke wechselt die Anim auf schwimmen (wie beim laufen auf gehen) Die Anim ist jetzt aber Waagerecht die Capsule bleibt aber senkrecht. das bedeutet das die Capsule wie auf dem Bild vor die Mauer steht und stoppt der Charakter aber mit dem Oberkörper in die Wand steckt. Wie kann ich die Capsule aus dem BlendSpache1D drehen wenn ich w drücke und wenn ich w loslasse wieder in den Uhrsprung geht. Die Capsule soll sich also dem Charakter (der Anim) anpassen.


    Gruß