Beiträge von Rudi Ratlos

    Hallo,


    vielen Dank für deinen Vorschlag.


    Ich erstellte ein Plugin und kopierte es in das Verzeichnis Engine\Plugins.

    Erzeugte anschließend ein neues Projekt und konnte das Plugin nebst Funktionen benutzen.

    Das ist sehr gut, darauf wäre ich wohl niemals gekommen.


    Wie meinst du das mit dem Editieren?

    Das funktioniert nicht bzw ich komme gar nicht dazu, den Inhalt des Plungins editieren zu können.

    Kannst du mir das bitte genauer erklären?


    Danke sehr.

    Ein NPC kann in mehreren Navmeshes operieren.

    Du bestimmst mittels "NavMeshBoundsVolume" ob die Meshes miteinander verbunden sind.

    Um sich zwischen diesen bewegen zu können müssen sie aneinander grenzen, ansonsten schaffst du nichtbegehbare Zonen, No-Go-Areas...


    "NavModifierVolume" kann hilfreich sein, begehbare Zonen temporär als nichtbegehbare zu deklarieren.

    Das Problem ist halt, das ich meine Spielewelt prozedural erstellen lasse. Sprich nicht einmal ich weiß was hinter dem nächsten Berg steckt, also Wiese, Wald, Meer oder was auch immer.

    Das stellt kein Problem dar. Solange man Wald, Wiese, Meer oder was auch immer als solche identifizieren kann funktioniert es.

    Und zur Identifikation existieren genügend Methoden.


    Die Grenze des begehbaren Bereichs wird mittels "NavMeshBoundsVolume" definiert.

    Hallo,


    ohne Navmesh wird es nicht funktionieren.


    Ich habe für so etwas für UNITY den A-Star-Algorithmus implementiert.


    Ich rastere die Spielfläche und setze als "Obstacle" getaggte entsprechend als zu umgehendes Hindernis.

    Ich kann dabei die "Felder" mit Kosten belegen, sprich, sie nicht als erste Wahl für den jeweiligen Character ausweisen.

    Ich habe je nach Anforderung die Funktion zum Erstellen des Rasters angepasst, so dass bestimmte Felder für Character 1 begehbar waren, für C2 jedoch nicht.


    Funktioniert wunderbar und lädt zum Experimentieren ein...


    Es wird den Algorithmus bestimmt an die UE geben.

    Falls nicht und/oder bei Interesse überlasse ich dir gerne meinen Code.

    Er ist nur in C# programmiert und für die UNITY-Engine, was beides kein großes Hindernis darstellen sollte.


    "Climbing the Hill" is auch ein interessanter Ansatz für solche Probleme der Wegfindung und Gewichtung von Wegpunkten/Objekten.

    Hallo,


    Ich erstellte mir eine "Blueprint Function Library".

    Jetzt möchte ich diese in einem anderen Projekt benutzen.

    Der einzig bei mir funktionierende Weg ist der über die Migrate-Funktion.

    Dieser gefällt mir jedoch nicht, da ich dafür das alte Projekt behalten und immer wieder öffnen müsste.


    Ich gehe auf Export, es wird eine .COPY-Datei erstellt, womit weder ich - vernachlässigbar - noch die UE - schwerwiegend - etwas anzufangen weiss, es erscheint beim Versuch eines Importes in das Projekt die Meldung "unbekannter Dateityp".

    Ebenso wenn ich versuche, die .uasset-Datei zu importieren.


    Kopieren aus einem Content-Ordner in den anderen funktioniert auch nicht, UE ignoriert die neue Datei.


    Wie handhabt ihr das mit der Library-Datei?

    Benutzt ihr die Migrate-Funktion oder habe ich etwas übersehen?


    Wofür ist eine .COPY-Datei da, wo kann man diese benutzen?


    Am liebsten wäre es mir, die BFL.uasset einfach per Copy and Paste in ein neues Projekt zu transferieren.

    Kann man UE nicht dazu bringen, die neue Datei ins Projekt aufzunehmen?


    Danke für eure Hilfe.

    Na gut, dann suche ich nicht weiter nach der Fehlerursache, auch nicht bei mir.


    >> Oder man ist ab und zu einfach so vertieft das man irgendetwas anderes auch nicht sieht <<

    Absolute Zustimmung, in diesem Falle jedoch nicht.

    Das Projekt ist winzig klein, da kann ich in diesem Zusammenhang nichts übersehen haben.

    Hoffe ich zumindest sehr stark.


    IDE-Schluckaufs kenne ich zur Genüge von UNITY, ich dachte, die Unrealengine wäre dahingehend robuster.

    Obwohl bei solch einem komplexen Monster solche Nichtigkeiten vernachlässigbar sind.


    Ich bekomme die UE jedes Mal zum Absturz wenn ich ein Flipbook erstelle, dieses öffne und ein Sprite per Drag and Drop hinzufügen will.

    Sie stürzt dann zuverlässig ab. Immerhin.


    Danke sehr für eure Hilfe.

    Danke für die Belehrung...

    Ich räumte ja selbst ein, dass das nicht der ideale Weg ist.


    Aber bei solch kleinen Sachen zu Testzwecken setze ich das trotzdem ein.

    Wer selbst ohne Schuld zu sein glaubt, der werfe die erste Tastatur oder so...


    Zum Einsatz des Timers:

    Player drückt im Widget Button "Start", Timer startet, verstrichene Zeit wird im Widget angezeigt.

    Player drückt im Widget Button "Pause" oder "Stop", Timer wird angehalten.

    Player ereldigt Task, Blueprint A stopt Timer im Widget mittels der mißratenen Varaible. Diese wird im Widget abgefragt, um zu determinierern, ob der Timer weiter läuft - laufen soll - oder nicht.

    Der Timer wird im Widget gebraucht - Anzeige der verstrichenen Zeit - also platziere ich ihn dort.

    Erschien mir praktikabel.

    Zu Testzwecken allemale.


    Die Frage, welche immer noch im Raume steht, ist die, weshalb die Variable vorher nicht in Blueprint A sichtbar gewesen ist.

    Ob gute OO-Programmierung oder nicht, die Variable hätte in Blueprint A erscheinen müssen, was sie jedoch nicht tat.

    Das stört mich.

    Jetzt habe ich vor dem Öffnen des Projekts die Ordner "Intermediate" und "Saved" geleert.

    Anschließend das Projekt neu geladen, in die Blueprint A rein und die Variable taucht auf.

    Ohne etwas geändert zu haben.


    Na gut.

    Verstehe ich zwar nicht, aber jetzt kenne ich eine Lösung.

    Hälst du diese für akzeptabel oder ist das eher eine Holzhammermethode?

    Hallo.


    Danke für deine Antwort.


    Es handelt sich bei dem Projekt um ein Testprojekt, in welchem ich verschiedentliches ausprobiere.


    Um deine berechtigte Neugier zu befriedigen:

    Die boolsche Variable dient dazu, dass das Widget weiss, ob der Timer noch weiterlaufen soll oder nicht.


    Mir ist bewusst, dass solche direkten Zugriffe aus gutem Grund verpönt sind.

    Und das man das generell anders lösen kann ebenfalls.

    Wie gesagt, nur ein Testprojekt.


    Und jetzt geht es mir ums Prinzip, weil ich mir absolut nicht erklären kann, wieso ich nur auf diese eine Variable nicht zugreifen kann, sprich, sie wird in der Blueprint nicht aufgelistet.


    Ich habe alles schon mehrfach neu kompiliert, nutzt nichts.

    Guten Abend,


    ich möchte aus einer Blueprint A heraus auf eine bestimmte Variable einer Widget-Blueprint zugreifen.

    Diese Variable, vom Typ Bool, erscheint nicht in der Blueprint A.


    Ich führe in Blueprint A aus:

    "Get all Widgets of Class", selektiere mein Widget, ziehe aus "Found Widgets" den blauen Faden heraus und das Elend beginnt...

    Ich kann auf die beiden anderen Variablen in der Widget-BP per Get und Set zugreifen, ich kann die beiden Funktionen aufrufen, der Boolean taucht nicht auf.


    Die nicht erscheinende Variable ist genau wie die anderen beiden als "public" und "Instance Editable" deklariert.

    Das Einzige, was mir zu dieser Variablen einfällt, ist, dass ich sie erst später als "public" deklarierte, also das Augensymbol rechts daneben steht.

    Kann es damit zusammenhängen?


    Ich habe das Projekt schon geschlossen und neu compilierern lassen.

    Es fruchtet alles nichts, die Variable erscheint einfach nicht in Blueprint A.


    Habt ihr eine Idee, woran das liegen mag?


    Vielen Dank für eure Hilfe.

    Guten Morgen,


    ich möchte euch nur kurz mitteilen, dass es funktioniert.


    C++ Klasse erstellt, Blueprint davon abgeleitet, darin Funktionen aufgerufen.

    Alles bestens.


    Das eröffnet so viele Möglichkeiten, ich muss jetzt erst mal damit experimentieren.


    Wieder einmal vielen Dank an euch, ihr habt mir sehr geholfen.

    Ich danke euch fürs erste für eure Hilfe.


    Ich werde mir das morgen anschauen, mein Rechenwerk benötigt eine Auszeit.

    Zumal grade einige Compilerfehler angezeigt wurden.


    Die ungefähre Richtung erkenne ich jetzt - hoffentlich.

    Ich fürchte trotzdem, nochmal nachfragen zu müssen.


    Vielen Dank.

    Tomarr:

    Gut zu wissen, besonders das mit der Kategorie, aber wie erstelle ich diese Funktion in der Blueprint im UE-Editor?

    Oder muss ich direkt in den Quellcode der Blueprint und die Funktion dort erstellen?


    freezernick:

    So vermutete ich es bereits.


    Die Blueprints sind genial und faszinierend, dennoch möchte ich manche Sachen lieber direkt in Code realisieren, weil ich da schneller fertig sein werde.

    Blueprints werden doch recht schnell unübersichtlich durch die sich überschneidenden Verbindungen.

    Hallo,


    ich habe ein Blueprintprojekt erstellt und möchte einer Blueprint eine C++ Funktion, keine Klasse oder ein Objekt, hinzufügen.

    Ist dieses prinzipiell möglich?

    Wenn ja, wie und wo kann ich dies tun?


    Ich meine, in einem Beispielprojekt die Möglichkeit gesehen zu haben, eine C++ Funktion hinzuzufügen.

    Oder irre ich mich diesbezüglich?


    Eine Funktion deshalb, weil diese, denke ich, auf die bestehenden Variablen in der Blueprint zugreifen kann, oder?


    Falls man keine Funktion erstellen kann, wie könnte dann eine Komponente auf die Variablen zugreifen? Abgesehen von einer Übergabe als Parameter.


    Vielen Dank für eure Hilfe.

    Guten Abend,


    ich bekomme es nicht bewerkstelligt, den AI-Debugscreen zu aktivieren.

    Es soll standarmäßig die Apostrophtaste sein, ich habe in den Einstellungen eine andere Taste gewählt, nichts fruchtet, der Debugscreen erscheint nicht.


    Die Taste muss gedrückt werden, wenn das Spiel läuft.

    Muss die Eingabe von dem Spiel gefangen sein oder nicht?


    In dem Projekt befindet sich ein über einen AI-Controler gesteuerter Charakter.

    Muss mein Projekt noch andere Bedingungen erfüllen? Debugmodus aktivieren oder ähnliches?


    Vielen Dank für eure Hilfe.

    Danke, Danke und Danke.


    Es funktioniert.

    Erst ein wenig jammern und oder fluchen und dann klappt es.


    Jetzt hat sich mir einiges erschlossen.

    Auf einmal ergibt es Sinn und fügt sich ineinander. Herrlich.

    Und die Arroganz hält Einzug. Ach, das ist doch soooo leicht.


    Ein Gutes hat es, nämlich dass ich auf der Suche nach der Lösung einiges gelernt habe.

    Ich muss nur aufpassen, nicht alles durcheinander zu würfeln.


    Zu C#:

    Wieso hälst du es für untauglich für die Spieleprogrammierung?

    Nur in Bezug auf Unity oder generell?


    Meine Karriere als Programmierer begann 1995 mit C/C++ und ich beherrsch(t)e C/C++ recht gut.

    Dann kam 2001 C# und seitdem will ich von C++ nichts mehr wissen.

    Für mich hat C++ so viele "Eigenheiten", dass es mir graust.

    Schon alleine wenn ich an Zeiger denke wird mir speiübel.

    Früher habe ich es geliebt und war auch stolzerfüllt, fehlerfrei damit umgehen zu können. Aber heute?


    Gewiss sollte man die Sprachauswahl den Anforderungen des Projekts anpassen.

    Deshalb meine Frage bezüglich Unity. Meinst du, mit C++ würde es besser funktionieren?

    Was funktioniert nicht?


    Früher war ich ein wahrer C++ Fanatiker.

    Ich werde ich mich wieder auf C++ einlassen (müssen) und vielleicht entflammt meine alte Liebe zu dieser Sprache neu.


    Jetzt werde ich erstmal eine kleine Pause einlegen, die letzten Tage bin ich wegen dieser Nichtigkeit kaum zur Ruhe gekommen.


    Ach so, eine Frage sei mir bitte noch gestattet.

    In der Level-Blueprint kann ich sehr einfach Referenzen auf Blueprints erstellen.

    Sind diese nur für den Gebrauch innerhalb der Level-Blueprint gedacht?

    Falls nein, wie gelangt man von außen an diese Referenzen?

    ist aber nicht so wichtig.


    Viele Grüße.

    Tomarr


    Guten Morgen.


    Zunächst vielen Dank für deine Hilfe und deiner dafür investierten Zeit.

    Es war mir eine große Hilfe.


    Nun zum Aber...

    Es funktioniert bei mir nicht.


    Einige Nodes sehen bei mir immer anders aus als bei dir.

    Die Funktion SetTextInMessage zum Beispiel.

    Das Set habe ich in dieser Form nicht.

    Bei mir kommt Funktionsaufruf -> SetText(Text), String (to Text) als Parameter und TxtMessage als Target.

    Du hast das in einem Node. Wieso?


    Das Grundprinzip habe ich verstanden, denke ich.

    Aber bei der Umsetzung mache ich wohl etwas falsch oder lasse es aus.


    Könntest du mir dein Projekt zukommen lassen?

    Per Email oder wie immer du magst?


    Nach knapp vier Jahren UNITY hätte ich nicht gedacht, dass der Umstieg dermaßen schwierig werden würde.

    Könnte so in Tränen ausbrechen und alles deinstallieren.


    Kannst du mir eventuell Tutorials empfehlen, nach Möglichkeit in Textform, egal ob auf Deutsch oder Englisch?


    So, werde mich erstmal dem Frustessen widmen...


    Nochmal Danke sehr.