Hallo zusammen!
Ich möchte gerne mein Hitboxen System erweitern und nun bin ich etwas am rätseln wie ich das am besten anstellen kann.
Das gilt natürlich für Multiplayer über einen deticated Server! Also das ganze muss replizierbar sein!
Es geht darum:
Ich möchte 6 Trefferzonen am Körper haben mit unterschiedlichen Multiplikator (mal X), das soll auch für NPCs gelten. Die Schadensberechnung ist einfach.
Kopf : 200% Schaden
Torso : 100% Schaden
Linker/Rechter Arm: 50% Schaden
Linkes/Rechtes Bein: 50% Schaden
Nun möchte ich KEINE Hitboxen haben, wie namentlich erwähnt, sondern der Körper selber soll die Hitbox sein, entsprechend der Körperteilen. Dadurch sollen die Hitboxen einfach kleiner ausfallen.
Dazu kommt noch das die Rüstung die über dieser Hitbox (Körperteil liegt) den Schaden reduzieren soll, oder ganz aufhalten. Die Schutzwerte mit den Schadenswerten zu prüfen ist auch hier kein Problem.
Aktuell zählen alle Rüstungsteile zusammen was das ganze ziemlich schlecht macht, weshalb ich das ganze gerne in Trefferzonen/Regionen/Bereiche unterteilen will. So das auch eine schwere Beinpanzerung mehr oder weniger Sinn macht, je nachdem.
Wie macht man diese Körper-Passgenauen Trefferzonen?
Aktuell habe ich nur eine Trefferzone, der Character Mesh. Das geht auch ganz gut aber das ist mir zu allgemein, leider weiss ich nicht wie ich genau ein Bein (als Beispiel) als eigene Trefferzone definieren kann.
Kann man das über die Bones machen oder wie genau?
Das Problem dabei ist, bei Schusswaffen ist das ganze total easy, aber bei Nahkampfwaffen kann es aufgrund der Kollision schwerer werden.
Das Ziel beim Kämpfen sollte sein das man möglichst die Schwachstellen des Gegners trifft, Siehe oben bei Tabelle und entsprechend der Rüstung.
WICHTIGE FRAGE:
Welche Art der Kommunikation verwende ich am besten (bezüglich Multiplayer) für die Schadensübertragung?
Derzeit benutze ich "Event AnyDamage" weil man damit schon viele Informationen übermitteln kann die echt hilfreich sind, aber ist das auch wirklich das Beste?
Hier ein Bild wie der Schaden der Waffe übermittelt wird:
ItemDataBaseAusruestung = Struct der Waffe mit den ganzen Werten darin.
DamageTypeClass ist derzeit noch einzeln gemacht, also ich habe bisher 3 solcher Blöcke für das Schadenssystem.
---
Hier ein Bild wie der Schaden am MyCharacter ankommt und entsprechend gefiltert/reduziert wird (etwa durch die Rüstung Schnittschutz usw.).
Derzeit gibt es nur 3 Schadensarten, aber es sollen noch weitere 12 dazu kommen.
---
Ich habe mal irgendwo in einem Video gesehen das jemand vom Mesh z.B. ein Bein abschneidet und dieses Bein (unsichtbar) über das original Bein stülpt und dieses "Fake-Bein" dann mit einer Trefferzone belegt.
Das klingt schon nicht schlecht aber nicht unbedingt die Lösung wonach ich suche (das wäre recht umständlich).
In diesem Video (als Beispiel) verwendet dieser das Physics Modell für die Trefferzonen, aber das ganze erscheint mir doch größer (zu große Hitbox) für den Kopf. Der Kopf soll sehr schwer zu treffen sein, dafür macht man auch den doppelten Schaden daran.
Freue mich auf Infos von euch, danke!
Euch allen ein schönes sonniges Wochende!