Okay. Wo führst du das LineTracByChannel aus?
Kannst du etwas genauer beschreiben, wovon es abhängt, ob die KI durch die Wand schauen kann oder dich überhaupt nicht sieht?
Was passiert wenn du genau den Schritten folgst?
Wenn du draw Debug Type auf Persitent stellt, wo brechen die Traces?
Beiträge von Phoenix-100
-
-
Wenn die Mauer für den Spieler sichtbar bleiben soll,
dann musst du nur bei Schritt 5 die Visibility anlassen. Wie ich es für das testen ohnehin empfehlen würde. -
Was genau meinst du?
Kannst du das eigenständige Projekt nicht öffnen? -
Okay. Vielleicht verstehe ich deine Frage nicht ganz richtig. Ich erkläre etwas genauer wie ich das gemeint habe.
1. Ich wählen eine Wand aus. Ich nehme die Wall_400x300 aus dem StartContent.
2. Ich ziehe sie in die Welt.
3. Ich adde unter Edit => Project Settings => Collision => Trace Channels => New Trace Channel. Ich nenne in Vision und blocke per default.
4. Ich setzt eine LineTrace auf und wähle als Channel den eben erstellten Vision Channel.
5. Ich wähle nochmals die Wand an in der Welt und bearbeite die Collision. Ich habe auch noch die Visibility ausgestellt, lass die zum testen besser an.
6. Ich probiere es aus. Wie man sieht werden die Traces von der unsichtbaren Wand geblockt. Ist das das Ziel? -
Für mich sind die Einstellungen korrekt. Wie aber bereits erwähnt und von @DarkFaces nochmals beschrieben, braucht dein Objekt grundsätzlich Collision, danach stellen wir ja alles aus bis auf die AI_Sight.
Hat deine Wand Kollision und trifft die AI nicht sich selbst? -
Was @DarkFaces vermutlich meint, es muss grundsätzlich Kollision haben, damit das Trace geblockt werden kann. Wir stellen das ja jetzt so ein, dass du trotzdem durchlaufen kannst und die Wand nicht siehst.
Kannst du mal das Ergebnis ausgeben vom LineTrace? Was trifft er denn, gar nichts?
Ich behaupte die KI trifft, sieht sich selbst. -
Nun gut das ist ja nun nicht die Regel, kann zum Beispiel bei verschiedenen Engine Versionen passieren. Wenn aber tatsächlich das vorhin angesprochene der Grund ist musst du nur die entsprechende Textur auswählen, bei Bild3, und dann im Material Editor einsetzen.
Gruss
-
genau das hab ich versucht...
hier die screenshots
bild 1: meshes
bild 2: materials
bild 3: textureswenn ich jetzt ein mesh rüber ziehen möchte wird das vorschaubild grau ohne material und textur. das selbe passiert bei den materialien.
nur die textur bleibt wie sie ist und lässt sich auch auf den stamm ziehen. egal welches pack ich nehme...überall das selbe problemBei Bild 2 hast du ja im Content Browser deine Materials. Öffne einfach eine von den Blättern.
Es öffnet sich ein neues Fenster, ich vermute das es oben links im Fenster als grau angezeigt wird und im Editor Fehler angezeigt werden zwischen den Textures.
Falls ich recht habe, musst du nur die Verbindung zu den Textures wiederherstellen.Ich mag es nicht Fragen mit Links zu den Doks zu beantworten, ich empfehle dir aber grundsätzlich die basics von den Shader durchzulesen.
https://docs.unrealengine.com/…ngine/Rendering/MaterialsGruss
-
Du musst das Material in der Engine öffnen, es hat bestimmt die Verbindung zu der Textur verloren.
-
Ja genau das sage ich ja, du bennenst nicht den Ordner sondern dessen Inhalt.
Also du hast zwei Küchen als Ordner mit jeweils 20 unterordner.
Du wählst Küche 1 Ordner aus und unter Modify, Prefix. K1
Dann erhalten alle Objekt von Küche 1 den Prefix K1.
Boden_k1.fbx
Dach_k1.fbxDie von Küche2:
Boden_k2.fbx
Dach_k2.fbxUnd so weiter. Wie bereits gesagt, keine Glanzleistung aber es dauert nur Sekunden.
// Edit: Versehentlich habe ich den Prefix & Suffix verdreht.
-
Hallo zusammen
Wenn du den Baum in der Scene anklickst, sind alle Material Slots belegt mit den richtigen Materialien?
Wenn du beim "grauen" Material slot auf die Lupe klickst und das Material, welches dir in deinem Conentbrowser ausgewählt wird öffnest, sind dort Errors?
Bei solchen imports kann es vorkommen das die Shader irgendwie die Verbindung verlieren zu den Textures.Gruss
-
Hi Sleepy
Ja die Ordner in Maya verlieren die Bedeutung nach dem Export.
Eine Lösung habe ich nicht. Mein Workaround, ich wähle den Order an und adde mit modify den Ordnername per Prefix oder besser suffix für den gesamten Ordner, also auch alle Unterordner, damit ich das nicht manuell umbennen muss.
Zugegeben nicht besonders elelgant aber es geht halt nur Sekunden. Vielleicht findest du eine elegantere Lösung die du hier noch teilen möchtest.Gruss
-
Nein die Frage ist nicht dämlich, ich bin einfach davon ausgegangen das du AI Perception nutzt. Es ist ein System der ue4 für AI sense, wie sehen oder hören, nutzt du das denn bereits?
Es ist aber natürlich nicht der einzige Wege um der AI sense zu geben und . Nun aber zurück zum Problem für LineTrace kannst du den Channel auswählen.
Wenn du nun alle Collision Channel ignorierst bis auf den, welchen du für das Linetrace benutzt, wird der LineTrace trotzdem geblockt. Das Objekt selbst muss nicht visible sein dazu und du kannst trotzdem hindurch laufen etc.
Den LineTrace channel kannst du direkt in der Node "LineTraceByChannel" einstellen und zwar unter Trace Channel.Gruss
-
Hallo
Eine Wand die die visibility blockt, oder was auch immer deine DefaultSightCollisionChannel ist, aber sonst nichts blockt müsste doch die AI Pereception sight doch blockieren?
Oder klappt das nicht? -
Hallo zusammen
Also wir bereits gesagt wurde, kannst du mit "Get Game Instance", also der Blueprint node die Gameinstance als Objekt referenzieren und dann dementsprechend zugreifen.
Die GameInstance wurde eingeführt und ist eigentlich dazu da, um Daten zwischen Maps zu transportieren. Das war früher umständlicher. Für die Regeln im Spiel, also die grundlegenden Sachen, kannst du den Gamemode nutzen.Gruss
-
Also nur das wir uns richtig verstehen, es geht wirklich nur darum die bereits vorhande Funktion als BP-Node verfügbar zu machen.
Weil scheinbar gibts die BP sonst nicht.
Du musst nichts von deiner Logik, Mechanik etc. in C++ programmieren.
Die Geschichte mit HandleStartingNewPlayer ist vielleicht etwas aufwändiger.Gruss
-
Ach so, du möchtest alles in BP halten alles klar. Das wäre ein Event gewesen, das nach dem Seamless Travel hättest nutzen können um alles so einzustellen wie du es für diese map brauchst. So die Idee.
Ähnlich wie HandleStartingNewPlayer in BP wird es auch nach dem seamless Travel gezündet.Ich wünsche dir noch viel Erfolg.
-
Weshalb verstehst du den Sinn nicht ?Ich verstehe das Spielprinzip nicht deswegen habe ich meine Antwort allgemein gehalten.
Aber jetzt intressiert es mich doch. Kann man denn die Spawnroutine nicht handeln wenn die neue Map bereits im memory ist, also über die generische Spieler initialisierung?
Und was mich vor allem interessiert, hat meine vorgeschlagener GameMode wechsel in echtzeit dein Problem auf die Weise gelöst wie du dir das vorgestellt hast?Gruss
-
Ne das war ne allgemeine Information und die sollen auch nur mögliche Ursachen aufzeigen wie Seam Fehler zustande kommen können.
Falsche Smootinggroups können jedenfalls auch den Anschein erwecken dass eine Textur nicht seamless ist.Ach so. Ja absolut richtig. Nur damit meine Antowort nicht falsch verstaden wird. Auch die density ist sehr wichtig - gerade bei modularen objekten mit demselben Material. Es kann sehr aufwändig sein diese für die Objekte einzeln in der Engine anzugleichen.
Gruss
-
Hallo zusammen
Verstehe den Sinn nicht, aber das muss ja auch nur der Architekt verstehen
Es ist möglich den GameMode in echtzeit manuell zu wechseln.
Du machst das mit der GameInstace. Dort kannst du das entsprechende Methode CreateGameModeForURL überschreiben. Hierbei ist die URL die Map URL.
Ich habe die entsprechende BP function auf die schnelle nicht gesehen. Vielleicht musst du das kurz selbst schreiben.Gruss
// Edit
Ich habe dir noch kurz die Deklaration rausgesucht
virtual class AGameModeBase* CreateGameModeForURL(FURL InURL);