Beiträge von Tomarr

    Ne, nicht, die einzelnen Items sind unterschiedlich groß. Aber, es soll halt so sein, dass nicht automatisch 2 Zeilen dargestellt werden, auch wenn die zweite Zeile leer ist.

    Ich versuche das Spiel so zu designen, dass auch nie mehr als zwei Zeilen, sowohl für das Inventory, als auch für den Dialog benötigt werden. Mehr sollte sich beim Spieler nicht anstauen.

    Ich werde beides mal ausprobieren, also Horizontal-Boxes, als auch Grid-Canvas.

    Beim Grid, wenn ich da ein Objekt vorne, oder auch in der Mitte lösche, rücken die Anderen dann nach vorne durch, oder muss ich dann kurzerhand das Grid per Routine neu füllen, was ja dann auch wieder eine gewisse Zeit benötigen würde, welches vielleicht dem Spieler unangenehme auffällt?

    Oder man trickst hier ein wenig, macht zwei Grids. Eins, was sich im Hintergrund aktuell hält und bei Bedarf ausgetauscht wird.

    So, nachdem ich nach 46 Stunden endlich mal wieder zwischendurch geschlafen habe und auch gestern schon meine Überlegungen hier aufgeschrieben habe, was natürlich weitere Überlegungen erleichtert, habe ich jetzt folgende fortführende Überlegungen angestellt, möchte aber vor der Umsetzung hier ein wenig Rückfrage halten, ob ich mich da Ideen mäßig auf dem Holzweg befinde, weil wie gesagt, Widgets sind nicht so ganz mein Ding.

    Folgendes habe ich überlegt. Die Anzeige des Inventorys und der Dialoge mache ich per Vertical Box, also untereinander. In diese packe ich (UMG) horizontal Boxen, die jeweils diese besagten 6 oder 7 Elemente anzeigen kann, wenn es mehr sind, dann wird halt eine witere horizontale Box da unter gepackt.

    Das scheint mir erstmal die einfachste Lösung zu sein. Die horizontalen UMGs kann ich ja, zumindest denke ich das, ja auch mit Named Slots machen? Ergibt das Sinn, wenn ich individuell dazwischen auch Objekte herausnehmen will und die Lücke dann schließen möchte?

    Jetzt ist aber eine der Fragen, die sich mir stellt, wenn ich jetzt, sagen wir zwei horizontale Boxen habe, und ich arbeite die obere ab, kann ich die "Kommunikation" zwischen den Beiden dann irgendwie so gestalten, dass alle Punkte dann nachrücken? Also sagen wir oben gibt es 6 Punkte zum Abarbeiten, darunter folgen noch drei. Jetzt lösche ich den ersten Punkt (oben) und dann rücken alle anderen Punkte nach, inkl. der Leiste darunter. Und wenn die untere Leiste leer ist, dann kann sie ja auch entfernt werden.

    Das Ganze soll dann ja auch noch getrennt sein, also die Inventory-Punkte sollen nicht nachrücken.

    Ok, nachdem ich die Gedanken mal wieder schriftlich festgehalten habe, kommen mir da natürlich wieder weitere Ideen, dennoch hätte ich da gerne doch ein paar Gedanken von euch, falls ihr welche habt, damit ich mich, wie schon erwähnt, nicht irgendwie wieder total verfange.

    Hi zusammen.

    Nachdem ich nun meine Idee eines festen Bereichs für Dialoge, Inventory usw. verworfen habe, brauche ich vielleicht doch noch einmal ein paar Anregungen.

    Da ich mit Widgets noch immer nicht so 100 % warm werde, was den Umgang angeht, habe ich mir folgendes überlegt.

    Ich würde mir gerne ein Widget erstellen, welches das Inventory als Bilder anzeigt, genauso wie die Dialoge. Dabei geht es mir nicht um irgendeine Logik zum Verwalten des Inventorys oder der Dialoge, das ist nicht so schwierig. Mir geht es vielmehr darum, ein sauberes Widget hinzubekommen.

    Und zwar geht es mir um folgendes. In dem Widget sollen wie gesagt gegebenenfalls die Dialoge (oben) und das Inventory (unten) angezeigt werden. Wobei, wenn eins von beiden leer ist, soll der Bereich gar nicht angezeigt werden. Zum Beispiel, wenn ich mein Inventory öffne, dann kann ich mich ja kaum mit dem Unterhalten, sprich es wird nur der Inhalt des Inventoys angezeigt. Wenn ich mich jedoch mit einem NPC unterhalte und es sind Gesprächsthemen vorhanden, soll beides angezeigt werden, sind keine Themen vorhanden, nur das Inventory, weil theoretisch könnte ich mich ja auch über die Gegenstände mit dem NPC unterhalten.


    Das Ganze soll in Form von Bildern möglich sein, auch das ist kein Problem, die Bilder habe ich, jedoch sollen auch gegenstände im Inventory per Drag and Drop kombinierbar sein. Zum Beispiel ein Schwert mit einem Schleifstein oder so.

    Zudem darf das Inventory und die Dialoge auch nicht zu breit werden, ich dachte da so an 6 oder 7 Gegenstände nebeneinander, danach soll eine neue Zeile angefangen werden.

    Sprich, das Widget muss halt auch individuell neue Symbole hinzufügen können, oder auch entfernen, zum Beispiel, wenn man einen Dialog ausgeführt hat und danach unnötig ist, oder der Schleifstein abgenutzt ist etc.

    Also muss sich das Widget, bzw. der Inhalt, auch im geöffneten Zustand ständig aktualisieren lassen.

    Allerdings habe ich bei Widgets immer so das Problem, dass ich den Aufbaubaum nie so wirklich unter Kontrolle habe. Ich komme dann immer von einem Detail ins nächste, habe da auch bestimmt zig Knotenpunkte drin, die ich auch weglassen könnte usw. Sieht auf jeden Fall nicht schön aus und ist recht unsauber.

    Vielleicht hat ja der Eine oder Andere einen kleinen Tipp für mich, wie ich das ein wenig sauberer umsetze. Vielleicht sieht man das im fertigen Spiel nicht, aber erstens entspricht so ein Gefrickel nicht meinen Ansprüchen und zum anderen geht es ja auch um Wartbarkeit, falls etwas geändert werden muss.

    Vielen Dank schonmal.

    OK, ich habe jetzt seit Stunden rumgedoktert.

    Fazit:


    1. Es funktioniert mehr schlecht als recht, zumindest nicht so wie ich es mir erhofft hatte.

    2. Das ist der wichtigste Punkt. Es sieht absolut besch****eiden aus. Egal wie man es dreht und wendet, es sieht aus wie ein RPG oder Point and Click Adventure aus den 80er - 90er Jahren. So Maniac Mansion oder so.

    Also ein Tipp von mir. Kommt nicht auf solche doofen Ideen.

    Oh, und nach einem Blick auf die Uhr ... ich glaube, wir haben schon 2024. Dann mal frohes Neues an alle.

    Es gibt eine UMG.Viewport-Klasse und es gibt hier dieses Plugin das einen Viewport in einem Widget anzeigt.

    Werde ich mal ausprobieren. Ich nehme mal an, das geht über ein Rendertarget, also intern.


    In der Godot-Engine gibt es tatsächlich ein Viewport-Panel in dem man einen Extra Viewport platzieren kannst und somit könnte man das gewünschte Ergebnis erzielen.

    Dass es in anderen Engines geht, weiß ich. Es ist ja schon ein paar Jahre her, da hatte ich diverse andere Engines ausprobiert. Letztendlich bin ich dann aber bei der Unreal Engine hängengeblieben, wegen diverser Vorteile, und ich habe halt gehofft, dass es da auch eine Möglichkeit gäbe, also ohne über UMG, Rendertarget und andere Plugins zu gehen, wobei letzteres ja nicht so wild ist, wenn die Performance stimmt.

    Schauen wir mal, was am Ende dabei rauskommt. Danke erstmal.

    Bei mir fliegt aber nichts, bei mir ist vorhanden oder nicht.

    Rein theoretisch könnte ich die Kameraaufzeichnung natürlich auf ein Rendertarget packen und dann halt oben in die UI als Image packen, unten dann das Menü.

    Aber ich glaube, das könnte dann sehr starke Performanceeinbußen haben, auch wenn mein Spiel nicht auf schnelle Bewegungen ausgelegt ist.

    Aber, wie schon geschrieben, auch nicht allzu schlimm, ich habe ja noch die Möglichkeiten 1 und 2. Macht es zwar ein wenig komplizierter, weil es halt sehr ärgerlich wäre, wenn das mal hängen bleibt. Also schön sauber arbeiten.

    ch kann dir nur ein paar Stichworte geben da ich sowas auch noch nie gemacht hab zur Info den Bereich den man als Spieler sieht, nennt man Frustum. Bei Splitscreen gibt also im grunde zwei Frustums.

    Ja OK, aber das Frustum ist halt der Bereich, den man pro Spieler sehen kann, sprich alles inkl. Bedienelementen. Da es sich aber nur um einen Singleplayer handelt, das mit dem Splitscreen war nur ein Beispiel um das Aussehen zu verdeutlichen, ist das Frustum etc. eigentlich nicht so wichtig.

    Ich versuche es noch mal anders zu beschreiben.

    Der Spieler soll bei mir nicht hauptsächlich mit weit entfernten Objekten interagieren könne, wie zum Beispiel bei einem Shooter, wo ja der Gegner entweder weit weg ist, oder auch einen großen Teil des Bildschirms ausfüllt. Man kann ihn als irgendwie immer treffen, mit einem Klick.

    Bei mir kann es auch Objekte geben, die weit unten am Bildschirmrand wählbar sind. Das heißt, wenn ich das HUD dauerhaft eingeblendet habe, könnte es bestimmte Objekte überdecken.

    Jetzt habe ich drei Möglichkeiten, das Ganze zu lösen.


    1. Ich gestalte die Level um, die das betrifft und sorge dafür, dass die Objekte, mit denen man interagieren kann, immer oberhalb des HUD liegen. Was ich da etwas befürchte ist, bei ungewöhnlichen Auflösungen, bzw. Seitenverhältnissen, ob das dann auch immer so bleibt. Ich habe als Privatmensch natürlich nicht endlos viele Monitore, um das auszuprobieren.

    2. Ich blende den unteren Teil ständig aus, fasse einzelne Interaktionsmöglichkeiten vielleicht auch direkt in dem Klick selbst zusammen, und blende den unteren Teil des HUDs regelmäßig nur bei Bedarf ein. Aber wie gesagt, ich habe da ein wenig die Sorge, dass das eventuell hektisch rüberkommt.


    3. Das, was ich halt hier frage. Dass man die Ausgabe der Kamera ein wenig einschränkt, also das Bild, wie es normalerweise auf dem ganzen Bildschirm dargestellt wird, nach oben schiebt, sodass unten ein Bereich frei wird für ein permanentes Menü.

    Momentan tendiere ich zu 2., vielleicht auch ein Mix aus 1. und 2. Aber ich wollte mich da nicht entscheiden, ohne wenigstens mal nachgefragt zu haben, ob vielleicht auch 3. möglich wäre.

    Nein, ich meinte so, dass unten eine Leiste ist, mit verschiedenen Befehlen, die im Spiel benötigt werden und oben halt das Kamerabild, aber ohne Verlust und voll gerendert. Quasi ein Splitscreen, nur dass man nicht zwei Spieler hat, sondern unten Befehle und oben dann halt die Spieldarstellung.

    Ich wollte mal ausprobieren, ob dadurch mehr Informationen für den Spieler möglich sind. Ansonsten müsste ich den Dialog für die Bedienung immer gegebenenfalls ein- und ausblenden. Ich habe ein wenig Sorge, dass das für den Spieler vielleicht ein wenig hektisch wirken könnte.

    Hi zusammen.


    Ich möchte gerne etwas an meinem Design ändern. Und zwar möchte ich am unteren Bildschirmrand ein permanentes Widget haben. Aber nicht so, wie es sonst üblich ist, wie bei Shootern oder so, also HP, Ammo oder so, als Bild und Zahl über das Kamerabild eingefügt, sondern ich würde gerne mal ausprobieren, wie es aussieht, wenn unten ein Teil des Bildschirms als Anzeigebereich unten zur Verfügung steht, aber der restliche obere Bereich trotzdem das gesamte Bild anzeigt, also nichts hinter dem Widget verschwindet/überdeckt wird.

    Geht das irgendwie einzustellen? Bisher habe ich da noch nichts finden können.

    OK, zumindest von der Beschreibung her klingt das ein wenig wackelig.


    Versuch es noch einmal mit Interface. Falls es nicht funktioniert, du kannst den alten Code ja stehen lassen und halt nur inaktiv machen, also so, dass er keine Executverbindung hat.

    So, nun wo ich ein wenig mehr Zeit habe, würde mich schon interessieren, wie du das jetzt gelöst hast.

    Ich stelle mal die Vermutung auf, laut deinen BPs hast du ja bereits den Auslöser an ein Event gebunden, also nehme ich mal an, dass du nicht genau hinbekommen hast das Event auszulösen.

    Da gibt es ja mehrere Möglichkeiten. Einmal automatisch, per Eventtimer. Dann würden sie aber in regelmäßigen Abständen abgespielt werden, also alle 10 Sekunden oder so. Du wolltest aber, wie gesagt immer, wenn ich es richtig verstanden habe, eher einen Knopf drücken und dann das Ganze auslösen.

    Das hätte ich dann vielleicht per Interface gelöst. Ich wusste schon, warum ich erst vor kurzem genau dazu ein Tutorial geschrieben habe. Und ich weiß ja nicht, ob du mit deiner Lösung jetzt zufrieden bist, oder überhaupt wie du es gelöst hast, aber im Zweifelsfall, das Tutorial ist ja hier im Forum vorhanden, unter Tutorials → Interfaces. Sollte derzeit das neueste Tutorial sein.

    Versuche ich nachher mal. Erstmal muss ich mich dazu aufraffen, meinem Arzt einen Besuch abzustatten. Das kann immer etwas dauern, volles Wartezimmer usw.

    Allerdings ist eines der Probleme, das Feuerwerk kostet etwas. Da ich es aber nicht selber benötige, werde ich dir da nur theoretisch helfen können.

    Nun, wenn du das so machst, wie du es oben beschrieben hast, dann erstellst du ja eine Child(kopie), welche du dann verwendest. Und dann benutzt du halt DEIN Child.

    Wenn du das über BP machst, dann erstellt er vorher sein eigenes Child vom Parent. Und da ist dein Initialwert halt 0.

    Du kannst aber direkt, nachdem du dein Child im BP gespawned hast, die Variable richtig setzen, zum Beispiel über ein "CAST TO".

    Ich denke mal nicht, dass das irgendwie festgelegt ist. Normalerweise muss das auch über ein Event gehen, bei dem du die Eventauslösung dann ja auch frei bestimmen kannst, eben halt über Triggerbox, oder Eventtimer oder per Mausklick, was auch immer.

    Eine so feste Vorgabe der Verwendung würde mich sehr wundern.

    Klingt mal interessant. Es gab schon immer einige Nachteile beim Exportieren von FBX- oder OBJ-Dateien. Je nachdem wohin man etwas exportiert mussten ja auch immer die Einstellungen für den Export anders aussehen. Direkt von Blender → Unreal sah immer anders aus wie zum Beispiel Blender → Cascadeur → Unreal.

    Ich hoffe, sowas bleibt dann durch ein neues und eindeutiges Format in Zukunft erspart.