Dealing Damage für einzelnes Component in einem Actor

  • Hallo Community,


    Mit "Apply Damage" kann man ja Schaden austeilen und mit bsp. "Event Any Damage" kann man in einem Actor den ankommenden Schaden verarbeiten. Das funktioniert auch so wie es soll. Aber kann man ein Blueprint(Actor) so programmieren, dass nur ein einziges Component Schaden erhalten kann und nicht der Komplette Actor?


    Meine Notfallidee wäre, an der entsprechenden Stelle eine Collision zu setzen und beim Überlappen einer Kugel dann die Überlappung zu verarbeiten. Möchte aber gerne das mit den Nodes "Apply Damage" und "Event Any Damage" lösen (Oder sowas ähnliches, falls es sowas gibt).


    Liebe Grüße :)

  • Apply Damage bezieht sich immer auf den gesamten Actor. Ich würde nicht verkrampft an "Apply Damage" festhalten - in meinen Augen ist es eher eine "Mockup" Funktion die so simpel geraten ist dass du nach 5 Minuten an ihre Grenzen kommst und dann eh eine eigene machst.

  • Dazu wirst du deine eigene Damage Logik schreiben müssen.

    Mit Apply Point Damage hättest du vielleicht die Möglichkeit eine Komponente im HitResult zu haben und zu verarbeiten. Aber es wäre hier wahrscheinlich sinnvoller eine eigene Apply Damage Funktion zu entwickeln und eine Komponenten die Damage abbekommen kann, oder ein Interface welches entsprechende Komponenten implementieren können falls es keinen gemeinsamen Parent gibt.

  • Danke für eure Lösungsvorschläge. Um ein eigene Damage Logik zu schreiben müsste ich das in C++ umsetzen oder?

    Sollte auch in Blueprint gehen.

    Was genau willst du erreichen? Sagen wir mal du hast Static Meshes die irgendwie Rüstungsteile darstellen, die kaputt gehen können, würde ich z.B. anfangen einen Blueprint zu erstellen mit dem StaticMeshComponent als Parent, dieses Blueprint Programmierst du dann so, dass es Schaden nehmen kann und Leben hat.

    Diese Kannst du dann anstelle des Normalen StaticMeshComponent einsetzen, für Meshes die Schaden nehmen sollen.


    Genauso kannst du dann auch z.B. in Waffen eine entsprechende Logik erzeugen die beim Treffer (also Kollision, Trace, Overlap, oder wie auch immer du es gelöst hast) in dem Fall dass das getroffenene Component vom entsprechenden Typ ist, dann die "Schaden Nehmen" Funktion aufruft. Am besten schreibst du die Treffer logik auch so, dass auch nur die Komponenten getroffen werden können, bei denen es Sinn macht (also am besten einen eigenen Object oder Trace Channel und entsprechende Collision Settings)

  • eine hitbox auf der component könnte das auch lösen, oder genau das mesh das als component verwendet wird in blender als hitbox speicherm die man drüber legt.


    wird hier bspw auch besprochen, dass es mim mat geht, weiß aber ned obs sicher gelöst wird. is eig so eingetragen aber ich habs jetzt beim noch amal drüberschauen nicht checkt:



    bzw weiß ich nicht wie destroycomponent funktioniert, müsst ja an eine damage bedingung zu binden sein? willst du das am ende eig erreichen?