Ich habe mir nochmal deinen Artikel angeschaut zum Lootsystem und ich bin mir eig fast sicher, dass die Map nur als Darstellung genutzt wird und nicht für die Logik. Für die Logik werden eher Variablen übergeben ähnlich wie in dem Verweis in deinem Artikel:
https://github.com/BohemiaInte…hernarusplus/db/types.xml
Dann zu deinen Erweiterungen:
Für die Respawnzeit kannst du durchaus einen Timer verwenden.
Hier wäre so die Grundlegende Funktion von so einen Timer als Beispiel:
Ein Timer ist dafür schon sehr gut geeignet.
Ich hoffe das hilft dir auch nochmal weiter.
Beiträge von Bralligator
-
-
Da gibt es sehr viel zu beachten.
Zum Beispiel Thema Topology (Wireframe). Wenn du einfach irgendwelche Kleidungsstücke von Sketchfab nimmst und diese auf einen Character riggen möchtest, wird das größte Problem wahrscheinlich sein, dass das Wireframe von der Kleidung nicht mit der vom Character passt. Vorallem nicht, wenn die Kleidung sowieso nicht für Animation optimiert ist.
Dann kommt es schnell mal vor, dass das Mesh vom Character aus der Kleidung heraus schaut.
Vom Workflow her ist das schon fast richtig. Er hat hier das Mesh (in dem Fall ja keine richtige Kleidung) einfach auf das Skeleton geriggt. So als würde er einen neuen Character riggen.
Eigentlich nimmst du aber schon deinen fertig geriggten Char und kopierst die Weights auf die Kleidung. So hast du dann auch sichergestellt, dass zB am Arm die gleichen Weights sind wie beim Char. Denn sonst hast du da die gleichen Probleme wie schon mit der Topology berschrieben.
Also Weights und Topology müssten schonmal übereinstimmen. Sonst wird es unschön.
Dann gibt es noch Methoden, den Character einfach unter der Kleidung zusätzlich auszublenden, damit genau diese genannten Probleme nicht doch noch passieren, evtl grad bei komplizierteren Kleidungsstücken.
Dazu gibt es die Methode wie Epic es auch vor macht (meine ich) in dem der Character in Segmente separiert ist. Also Beine, Arme, Hände, Kopf, Torso etc. und dann je nach Kleidungsart das darunter liegende Mesh "entfernt" wird.
Oder man blendet das Mesh anhant einer Textur (Maske) über den Shader aus. Dafür bräuchtest du dann für jede Kleidungskategorie eine Hilfstextur. -
Ich habe das ganze nur mal grob überflogen..
Mein Gedanke dazu ist nur. Denkst du dabei nicht zu kompliziert?
Wird die Textur-Map aus deinem Beitrag zu dem Loot-Tier System von DayZ auch wirklich für das Lootsystem genutzt (also wird diese ausgelesen), oder dient diese nur zur Darstellung?
Denn ich denke ja nicht, dass du die Spawner random anhand deiner Hilfs-Textur plaziert haben möchtest oder? Das kann zu anderen Problemen führen.
Der eigentliche Weg wäre doch, du bestimmst ja wo die Spawner hinkommen. DayZ-like zB irgendwelche Schubladen, Fäser, oder auch einfach so aufn Boden in Gebäuden etc.
Dann gibst du deinem Spawner aber Variablen mit. Diese stellst du auf instance editierbar.
Dann bestimmt du beim Spawner XY welche Tier-Value dieser hat (Tier1, Tier2 etc.) und welche Loot-Kategorie (Military, Industrial, etc.).
So wäre meiner Meinung nach die eigentliche Vorgehensweise wie man sowas erstellt
So könntest du auch eine weitere Variable bestimmten bzw eine weitere Kategorie, ob bei dem und dem Spawner nur Waffen, Nahrung, oder Kleidung etc. erscheinen.
Wenn das so vom Grundgedanken passt, dann kannst du ja drauf aufbauen.
1. Zonenbasierte Spawnlogik - hätten wir schonmal dann eine Grundlage.
2. Unsichtbare Kugel als Spawner - hättest du sowieso wenn du nur das Blueprint ins Level ziehst. Die Items werden dann gespawnt.
3. Loot-Tabellen - Eine Item-Datenbank ist bei sowas auch Standart und diese kannst du in der Engine erstellen. Du kannst sogar Excel Tabellen dafür importieren
4. Verschiedene Spawner Typen - Hätten wir durch die Grundlage eig. auch schon abgedeckt.
5. Erweiterungen hast du viele und dies kann man auch ewig ausbauen. Aber soweit ich dies gelesen habe sind alle auch machbar. Ich würde aber erstmal raten, da es schon sehr viele Extras sind erstmal die Grundlogik zu machen und dann nach und nach bei den Erweiterungen nochmal nachzufragen. -
Danke für den Hinweis. Bei der Methode bekam ich immer die Fehlermeldung "Infinity Loop". Keine Ahnung, was ich da falsch gemacht habe, aber meine Lösung sieht nun so aus. Vielleicht nicht sauber, aber es funktioniert.
Aber Deine Antwort hat mir definitiv geholfen in die richtige Richtung zu experimentieren. Danke.
Ich weiß nicht was du gemacht hast, denn bei mir funktioniert es (habs auch vorher natürlich getestet
). Aber schön dass du es auch trotzdem soweit hinbekommen hast, dass es nun auch funktioniert. Wobei von der reinen Logik her ist es das selbe, da dein Event BeginPlay sowieso nur 1x ausgelöst wird. Also auch wenn du das Looping rein nimmst. Der Timer selbst feuert dann von sich aus das looping Event ab.
Du müsstest bei dir nun aber sicherstellen, dass der Timer evtl. nur arbeitet, wenn es nicht regnet. Denn sonst vermute ich, dass du Dauerregen hast. Da, auch wenn es regnet, immer wieder das Niagarasystem alle 300-600 sekunden auf active gesetzt wird.
Du könntest dem Regen ja auch eine Zufällige Dauer geben.
Evtl. könntest du mit folgenden Funktionen arbeiten:
- Pause Timer by HandleJe nachdem was man brauch, kann man so eine Regensimulation natürlich sehr komplex und unfangreich gestalten.
-
Ist eine Kombination mit Good Sky und Niagara möglich? Wenn ja, gehe ich davon aus, daß ich mit einer Delay Node die Verzögerung steuere, aber welche Node wäre für den zufälligen Start des Regens?
Mir würde jetzt spontan die Nutzung von "Set Timer by Event" einfallen für dein Vorhaben.
Dem gibst du eine Zeit, in der dieser Timer dann ein Event auslöst, in deinem Fall dann alles für den Regen.
Den Timer kannst du auch sich wiederholen lassen "Looping" und die Zeit kannst du dann zufällig generieren lassen.Also mit dem Blueprint, löst du dein Regen zufällig zwischen 5 und 10 Minuten aus.
Wenn du dies nur einmalig beim Start haben möchtest, dann nimmst du das Looping raus. -
Nichts für ungut. Aber, das glaube ich erst, wenn ich es sehe und es auch funktioniert. Mal abgesehen davon, dass es andere Länder auch ohne Förderprogramme schaffen, sprich man sollte da ganz woanders ansetzen. Wahrscheinlich eher wieder so ein Geldverschwendungsprogramm, wo 99 % der Gelder in irgendwelche neu gegründeten Firmen versickern, die dann ganz zufällig auch genauso schnell wieder Pleite gehen.
Es gab schon in der Vergangenheit Förderprogramme, ist also nichts ganz neues und man hat auch gesehen dass es funktioniert.
Zum Beispiel die Entwickler von Dorfromantik haben in einem Interview darüber gesprochen, dass sie eine Förderung hatten und wie man sieht auch Erfolgreich.
Es ist nun mal schlicht eine Chance für einige. -
Tach auch.
Die Ampel hat wohl beschlossen neuen Startups aus Deutschland in der Spieleentwicklung zu unterstützen.
Vielleicht für den einen oder anderen Interessant.
Press Start: Gründungsstipendium Games - Press StartIhr entwickelt Games und befindet euch mitten im Gründungsprozess? Ihr habt einen Spiele-Pitch in der Schublade und schmiedet Pläne für ein Indie-Studio? Ihr…games-stipendium.deMehr Infos:
https://www.game.de/kulturstaa…uendungsstipendium-games/ -
- Für die Materialvergabe brauche ich meistens eine andere Aufteilung der Flächen. Macht ihr das eher in dem CAD-Programm, in dem das Modell bereitgestellt wurde oder in der UE5? Kann man wie bei InsertEdgeLoop eine Polylinien vorgeben, die Flächen abgrenzt?
Macht man üblich in dem 3D Programm.
- Bei mehreren Modellen ist es schwierig, beim Importieren den gleichen Ursprung zu haben. Gibt es Möglichkeiten, mit UE5 über Referenzen zu arbeiten?
Verstehe die Frage nicht ganz. Meinst du mit Ursprung den 0 Punkt vom Modell?
-
Das Problem tritt dabei dann auch nicht mehr auf, wenn ich nur auf einer großen Plane herum rolle. Aber da die Landschafft nun mal aus Blöcken, Loopings, Kurven etc. besteht, komme ich um eine andere Lösung leider nicht drum herum
Die AAAs tricksen garantiert aber an solche Fähigkeiten komme ich als Normalsterblicher nicht ranDoch die Fähigkeiten für die Tricks hast du auch, denn du hast es sogar ja selbst gemacht
Auch wie Sleepy schon sagt. Selbst wenn alles aus Blöcken besteht. Mach dir doch eine einfache Plane mit einer einfachen Collision, diese kannst du dann so skalieren wie du die gerade brauchst. Die machst du dann halt auch nicht sichtbar.
Die gute alte Alpha-Wand halt. -
Ich meine sobald du auch ein Sublevel lädst triggern zB. erst die BeginPlay Events für das Sublevel.
Du kannst also zB. wenn dein Landscape in einem Sublevel ist und es hinein lädst, auch erstmal bestimmte Parameter setzen bevor es dann angezeigt wird.Wenn du weißt wie man per Blueprints das Landscape verändern kann. Dann kannst du diese Funktionen ja nach dem Laden durchführen und danach erst anzeigen lassen.
-
Das ist auch eine super Hilfe um es sich mal zu veranschaulichen welche TD für welche Distanz oder je nach Spiel-Gerne.
https://www.artstation.com/artwork/qbOqP -
-
Aber so wie du es beschreibst, ist ein Slot dann nicht das, was ich meine. Dann ist der Slot nur Slot 1 = "Position des Spielers", Slot 2 = "Level", Slot 3 = "Keine Ahnung was", aber am Ende kommt das Ganze alles in ein Savegame. Leider habe ich bisher nur Tutorials gefunden, in dem man einen String oder Vector speichert.
Ne in einem Slot speicherst du alle deine Variablen die du speichern möchtest.
-
Ich meine du kannst dir eine SaveGame Class erstellen und dort bestimmst du die Slots als Variable (String).
Man kann auch manuell auch weitere Slots erstellen per Create Save Game oder Create Save Game Slot, weiß ich leider nicht mehr genau.
Beim speichern und laden musst dann halt nur bestimmen welchen Slot.Slot 1 (String - Wert = mein Spiel 1
Slot 2 (String - Wert = mein Spiel 2
Slot 3 usw.Also müsste ich dann 10 Savegames erstellen, mit jeweils anderen Slotnamen, plus 1-2 Autosaves usw.?
Also wenn ich nun deine Frage richtig verstanden habe. - Dann Ja!
Also du brauchst 10 Slots, die Savegames musst du nicht vorher erstellen, diese werden erst beim speichern erstellt. -
Ok, ich muss nochmal bei einem Projekt von mir schauen wie ich es genau gemacht habe. Dort habe ich nämlich auch die Kamera Rotation begrenzt um genau so etwas zu vermeiden.
Ich hoffe, ich melde mich heute abend nochmal. -
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. -
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
-
Selbst da, wenn du es jetzt nicht geschrieben hättest, wäre mir das niemals aufgefallen. So genau schaue ich mir die Figuren im Spiel wirklich nicht an. Gut, die Spiele, die du genannt hast, spiele ich jetzt auch nicht, habe aber Videos davon gesehen, ist mir trotzdem nicht aufgefallen. Ansonsten gilt ja auch, entweder du handelst mit der Figur im Spiel, dann ist irgendein Inventarfenster drübergelegt, oder du ballerst ihn eh möglichst schnell ab, dann sind Muskeln usw. auch egal, soll ja nur liegen bleiben.
Ansonsten sehe ich da immer die Regel vor meinen Augen, "Perfektion ist es, die letzten 2 % zu optimieren, die 98 % der Nutzer gar nicht auffallen würden".Die Zwischensequenzen sind halt inzwischen Realtime. Früher hätte man es in Maya etc vorgerendert.
Zb in Last of Us, da gibt es so wenig Menu wie möglich um die Imersion zu halten. Wenn man zB im Inventar ist, dann stöbert der Charakter im Rucksack herum. Wenn man Gegenstände untersucht, dann hast du ein Closeup vom Gegenstand in der Hand. Also ist die Hand dementsprechend Detailiert mit Haaren, Venen etc. -
Allerdings ist die Frage dahinter, wenn man nicht gerade CGI-Filme produziert, ob das überhaupt notwendig ist. Letztendlich ist die Kernkompetenz der Unreal Engine doch eigentlich die Spieleindustrie. Braucht man da wirklich Charaktere, wo schon fast jeder Muskel simuliert wird?
Soweit ich weiß hat sich ja EPIC gerade mit der UE5 doch auch auf die Filmwelt ausbreiten wollen. Allein durch die ganze tollen Features die mit der UE5 kamen.
UE5 wird sogar inzwischen für einige Filmproduktionen verwendet.
Für "normale" Spiele ist es wie du schon sagst, definitiv nicht nötig.
AAA-Titel die schon auch viel Wert auf Story und Filmsequenzen legen (Last of Us, Detriot, Death Stranding etc) die nutzen schon solche Techniken. -
Du kannst auch eigene Templates erstellen.
Erstellst ein Blankes Projekt, löscht alles raus und speicherst es dann als Template ab. Dann kannst du bei neuen Projekten immer wieder dein "richtig Blankes" Template nutzen.
https://docs.unrealengine.com/…n-unreal-engine-template/Externer Inhalt www.youtube.comInhalte 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.