Spawn Actor mit originaler Größe?

  • Hallo Leute,


    erneut habe ich eine, möglicherweise, sehr einfache Frage. Ist es möglich, einen Actor, den man als Blueprint selbst mal erstellt hat, mithilfe eines anderen Blueprints in der Welt spawnen zu lassen und dabei seine originale Größe zu verwenden?


    Wenn ich die Node "Spawn Actor from Class" verwende, verlangt er unbedingt, dass ich an dem Eingang "Transform" eine manuelle Größe angebe. Das möchte ich ja gerade nicht, sondern er soll einfach den Actor in der Originalgröße spawnen lassen


    Liebe Grüße

    • Offizieller Beitrag

    Wenn du ein Objekt spawnen willst, dann will Unreal folgendes von dir wissen.


    • Wo soll der Actor gespawnt werden (XYZ) ?
    • Soll dein Actor Rotiert sein XYZ ?
    • Soll dein Actor Skaliert sein. (Faktor 1 wäre nicht skaliert) ?


    Das sind die Informationen die Unreal braucht um dein Objekt an einer bestimmten Stelle zu platzieren.


    Zieh mal den Spawn Transform raus und gebe "Make Transform" ein.



    Dort kannst du eine feste Position festlegen.


    Alternativ auch Rechtsklick auf Spawn Transform und dort "Split struct Pin" wählen.


  • Wenn ich die Node "Spawn Actor from Class" verwende, verlangt er unbedingt, dass ich an dem Eingang "Transform" eine manuelle Größe angebe. Das möchte ich ja gerade nicht, sondern er soll einfach den Actor in der Originalgröße spawnen lassen

    Ich weiß nicht ob du das genau weißt, es liest sich nur so aus deiner Fragestellung heraus:

    Transform ist in der UE4 nicht nur die Größe, sondern auch die Rotation und die Position (Location).
    Also "Transform" besteht aus 3 Vectoren. Dabei ist Scale standardmäßig auf 1 gesetzt was die Originalgröße entspricht.

  • Transform ist in der UE4 nicht nur die Größe, sondern auch die Rotation und die Position (Location).
    Also "Transform" besteht aus 3 Vectoren. Dabei ist Scale standardmäßig auf 1 gesetzt was die Originalgröße entspricht.

    Jap das wusste ich. Nur dachte ich, dass man einfach so, ohne die Angabe, die Originalgröße spawnen lassen kann.


    Für eine originale Größe muss es auch richtig exportiert und importiert werden

    Genau das war mein Problem :D


    Danke für eure Hilfe :)

  • Hallo, habe dasselbe Problem, er spawnt bei mir auch nichts. Habe es nun mit einem Spawn AI from Class probiert, ist nämlich ein Character, funktioniert aber auch nicht. Hier das Screenshot:

    Hoffe ihr könnt mir vielleicht helfen, danke im Voraus,


    Schönen Tag und alles Gute, ciao

  • Ai Controller hat er. Was mich so verwundert ist, dass es einmal funktioniert und einmal nicht. Der Charakter spawnt schon, wenigstens einer, manchmal, aber er nutzt nicht den Behaviortree, bis auf einmal. Aber ich werde es versuchen.


    Danke für den Tipp, schönes Wochenende euch allen

    • Offizieller Beitrag

    Mein erster Gedanke war dass dies zufällig passiert. Vielleicht liegt es an den dem Random Point in Bounding Box. Hier wird ja im grunde eine zufällige Position festgelegt wo das Objekt spawnt. VIelleicht passt dein Objekt auch irgend wo im Nirvana wo du es gar nicht mitgekommst ? Gibt ja die sonderbarsten Fehler.

  • Den Fehler warum die Monster nicht gespawnt wurden konnte ich beheben, war ein dummer Branch-Fehler *dead*


    Aber ich verstehe nicht warum die gespawnten Monster nicht den Behaviourtree durchführen. Wenn ich ein Monster schon vorher im level platziere, funktioniert es, ansonsten stehen meine gespawnten nur herum. Keine Ahnung an was das liegt. Tja, dann eben vorher eines platzieren.


    Schönen Abend und alles Gute.


    Ach ja, danke für Zeit und Mühen 8o

  • Mal ausnahmsweise wieder antworten...

    Der Charakter spawnt schon, wenigstens einer, manchmal

    Wie lang wartest du ab?

    Einer wird zu Beginn gespawnt, ein weiterer alle 15 Sekunden ^^


    Deine CreatureCount Var ist ziemlich sinnlos.

    Du setzt nur das erste gespawnte Monster in ein Array, nimmst da die Length (1) raus, welche immer 1 bleiben wird, da sie nicht erhöht wird...

    (Klüger wäre es, CreatureCount +1 zu machen)


    Dadurch ist das ForEachLoop auch sinnlos, da das Array nur einen Eintrag hat...


    Das ganze an ein Tick-Event zu hängen ist noch sinnloser, da es nur 1x alle 15Sek abgespielt wird, ein Tick jedoch alle 0,01667 Sekunden.


    Dass dein BehaviorTree nicht abspielt, wird höchstwahrscheinlich an den Settings liegen, weiß nicht wie die Einstellung heißt, aber irgendwo kannst einstellen, dass nur die im Editor gespawnten Actor drauf zugreifen oder eben auch welche die gespawnt werden ^^



    Vielleicht hilfts:

  • LOL, das korrigiert BP erinnert mich immer an frühere Schularbeiten wenn ich kein Bock zum Lernen hatte. Geilste Korrektur die ich bisher hier gesehen habe.


    Aber wo du das mit alle 15 Sekunden und Tick erwähnt hast, dann würde ich bei Begin Play auch noch ein Timerevent setzen. Dann ist es runder.



    In etwa so. Und an Stelle von dem Print dann halt dein ganzer Spawnkram.

  • Danke für die Lehrstunde :rolleyes:

    Das mit dem Spawnen habe ich eigentlich schon hinbekommen, nur der Behaviourtree der gespawnten Monster wird nur ausgeführt, wenn vorher schon ein Monster sich in dem Level befindet.

    Die Korrektur ist jedenfalls zum Zerkugeln: Da habe ich wohl ein bisschen Mist gebaut, ist aber schon geändert.

    Tja, diese Logik, ein furchtbares Monster, immer so penibel :)


    Auf jeden Fall danke für die Tipps. Ich denke für folgende Anfragen zu dem Thema sehr sinnvoll.

    Bin schon draufgekommen, dass es an Auto Possess Ai liegt. Gebe ich es nur auf Spawned, dann funktioniert das Spawnen, aber nicht wenn ein Monster schon platziert wurde.

    Bei Place in World or Spawned muss vorher schon ein Monster platziert sein, sonst funktioniert es nicht. Da ich mehrere Levels nutze, könnte es sein, dass ich eine Funktion bräuchte, die es mir erlaubt in einem Level einmal nur Spawned und einmal World or Spawned zu nutzen. Denke es wäre auch hilfreicher, wenn bei Place in World or Spawned, nicht extra ein Monster schon platziert sein müsste, aber die Möglichkeit besteht.


    Danke auf jeden Fall für die Hilfe, sonst funktioniert alles einwandfrei.