Duplizierung der Umgebung

  • Hallo Leute,


    ist es möglich zwei Bereiche zu erstellen wo der zweite Bereich ständig abcheckt, was sich im ersten Bereich befindet und alle Gegenstände darin dupliziert?


    Beispiel: Etwas fällt/bewegt sich in den Bereich 1 (Kann ja ein Trigger/Collisionbox o.ä. sein), wenn das passiert, wird exakt das Mesh/Partikel/Blueprint usw. im zweiten Bereich ebenfalls erstellt, an genau der gleichen Position, wie es sich auch im Bereich 1 befindet. Ist das möglich? Falls ja, wie?


    Wäre um Ratschläge sehr dankbar :)


    Liebe Grüße

  • Also mein Ansatz wäre spontan:


    Du erstellst deinen 1. "Bereich" als collision volume mit overlapp all. Dann guckst Du dir per Get Overlapping Actors alle actor im Bereich an und speicherst sie alle in einen Array (promote to variable).


    Dein Zweiter Bereich ist dann im Grunde genommen komplett leer, alles was du machen musst, ist dir per for each loop alle actor aus dem array zu holen und dann über get class + spawn actor from class ein Duplikat zu spawnen. Dem Dublikat übergibst du einen Handle zum "Originalitem", sodass es immer die Position im Raum updaten kann, logischerweise natürlich relativ zum Scene Root des 2. Bereichs.


    Funktioniert allerdings nur für actor.

  • Danke für die Hilfe.

    Habe das versucht nachzubauen aber es funktioniert noch nicht. Wenn ich die erste Collision alles überlappen lasse und zwei Gegenstände in ein Array speichere, dann wird bei mir zwei mal der Name der Collision in einem Printstring angezeigt. Und ich verstehe momentan nicht, wie die Kommunikation der beiden Bereiche aussehen muss. Ich habe zwei Bilder mit Hochgeladen zum besseren Verständnis:


    Bereich1


    Bereich2

  • Also soweit ich das sehe, ist das einzige Problem New Var 1 im 2. Bereich.



    Bei mir funktioniert das Setup so.


    ("funktioniert" im Sinne von: er dupliziert und spawnt ein identisches Item in Bereich 2. Was du natürlich noch nicht hast, ist, dass er die Position auch automatisch aktualisiert bzw. relativ zur Position des 1. Items im Bereich 2 ausrichtet. Dafür müsstest du im custom Event Duplizierung am besten nicht nur die class, sondern auch einen Handle zum Originalitem übergeben und das Duplikat dann immer die aktuelle Position mit dem Original vergleichen lassen...)

  • Sorry aber.... Ich habe es jetzt EXAKT so wie du (und nebenbei bemerkt sieht dein Ergebnis genau so aus, wie ich es haben möchte, also Hammer!), aber es bricht immernoch mit dem Error ab "Infinite loop detected bla bla bla....


    Zur Vollständigkeit nochmal meine Bereiche:


    Bereich 1:


    Bereich 2:


    Sobald die Objekte (in meinem Fall zwei) in den ersten Bereich fallen bricht es SOFORT ab mit erneut folgender Fehlermeldung:





    Edit: Auch mit einem Objekt stürzt es sofort ab

  • Ach du Schande! Das es abgestützt ist, lag genau daran! Habe den Pin geändert und es läuft. Allerdings kommt da das nächste Problem... Im bereich2 erscheint kein Objekt! Die Kollision wird übertragen auch zum Bereich 2. Aber erscheinen tut da nichts.. Übersehe ich da wieder etwas?

  • Wieso nutzt du Get Overlapping Actors? Führt das in diesem Fall nicht zu unvorhergesehenen neben Effekten, wenn mehrere gleichzeitig in Bereich 1 sind?

    Was gäbe es denn für eine Alternative?


    Da steht "StaticMeshActor". Habe das im zweiten Bereich überprüft. Also irgendwas kommt an! Ich habe einfach eine standardkugel genommen, wie du ;)

    "StaticMeshActor" ist doch richtig oder? Da frage ich mich aber, warum dann nichts spawnt... Schließlich geht das doch direkt in die Spawn Actor Node...

  • Naja er schrieb "alle Gegenstände darin", da lag es nahe... er wollte ja alle gleichzeitig im Bereich haben

    Ja da wäre ich aber nicht auf Get Overlapping Actors gekommen, jedenfalls nicht in Verbindung mit Begin Overlap Event, weil jeder Actor, der Bereich 1 betritt das Event auslöst sofern eingestellt.


    Angenommen 2 Actors kommen kurz nacheinander in Bereich 1. Actor 1 löst das Event aus und Get Overlapping Actors hat nur ein Actor in der Liste. Actor 1 wird korrekt dupliziert. Actor 2 löst das Event aus und Actor 1 ist noch in Bereich 1 drin, jetzt hat die Liste in Get Overlapping Actors 2 Actors in der Liste. Jetzt wird sowohl Actor 1 als auch Actor 2 dupliziert werden.

    Kann auch das auch gewollt ist, aber dazu müsste man wissen was genau die Anforderungen sind.


    Lalilu

    Alternativen gibt es genug. Die Frage ist wie genau soll sich das duplizieren verhalten? Soll jeder Actor dupliziert nur einmal dupliziert werden oder ist das egal? Soll der Actor direkt dupliziert werden, sobald dieser Bereich 1 betritt oder nicht?


    Alternative 1:

    Man könnte jeden Actor in einem Array speichen, der das Begin Overlap Event auslöst. Ein Timer könnte dann Bereich 2 abfragen ob Actors vorhanden sind und duplizieren. Bereits duplizierte könnten aus der Liste gelöscht werden.

  • @Shadowhunter: Wäre es möglich, dass du mir dein Projekt schickst? Ich kann mir keinen Reim mehr daraus bilden, wieso bei mir keine Gegenstände spawnen... Bei dir scheint das zu gehen, obwohl es die selbe Schaltung ist... Logik? Gleich Null...