3D Forum > UE4 - Geschützturm soll sich nach Mausposition ausrichten (Blueprints)

UE4 - Geschützturm soll sich nach Mausposition ausrichten (Blueprints)

26.11.2014 12:09
 
GastMi. 26 Nov. 2014, 12:09 Uhr
Dann noch mal nen Copy&Paste von meinem Blueprint problem

Hi,

da ich ja recht neu bei UE4 bin habe ich natürlich noch nicht so die Übung und Erfahrung mit den Blueprint, was mich doch ziemlich oft jetzt schon extrem verwirrt hat.
Da wäre das Beispiel das ich gestern einfach einen Gegenstand (einen Geschützturm) in Richtung der Mausposition ausrichten wollte.

Ich dachte sowas ist mal fix und easy mit den Blueprints erledigt aber nix da ... den ganzen Abend habe ich an angeblichen Tutorials gesessen und bin schon bei den ersten Funktionen gescheitert.

Dieses Tutorial habe ich neben anderen Videos und Anleitungen ausprobiert :

https://answers.unrealengine.com/questions/63575/rotate-player-towards-mouse-position.html


Hier unten sieht man toll das BP welches für genau die Funktion zuständig ist die ich möchte.





Das Blueprint ist zum einen etwas verwirrend aber das größere Problem ist das ich nicht mal die erste Funktion bei mir erstellen kann.
Es handelt sich dabei um die Funktion : Get Hit Result under Cursor ......

Ich denke mal das diese Funktion recht grundlegend für das ganze Blueprint ist, aber ich bekomme diese Funktion einfach nicht erzeugt, ich habe sie nicht in meiner Auswahlliste...wieso nicht ??

Mittlerweile habe ich rausgefunden, das einige Funktionen nur unter speziellen Umständen aktiv sind, daher habe ich zunächst meinen Playercontroller umgestellt, so das ich auch ne Maus habe.
Dann ist es leider so das der Turret den ich drehen will nicht mein Player ist, er wird später eine Waffe am Mech sein die sich drehen soll.

Aber weder die Funktion GetPlayerController als Grundlage oder aber auch der Versuch die Get Hit Result Under Cursor-Funktion direkt beim Player zu erzeugen scheiterte.


Die Blueprint machen mich so langsam ratlos, es kann doch nicht so schwer sein den Turret als Sourcelocation, den Mauscursor als Worldlocation zu nehmen und dann den Turret per LookAt dahin auszurichten ??
Als Skript wäre das bestimmt nen 3 Zeiler, wie kann ich das also einfach und vernünftig mit Blueprints umsetzen ?

Kann mir da jemand auf die Sprünge helfen ?
 
GuyGoodMi. 26 Nov. 2014, 17:52 Uhr



http://i.imgur.com/DPNUPAX.png


So ungefähr funktioniert das, wenn der ausführende Blueprint selbst nicht der PlayerCharacter ist. In meinen Fall hatte ich aus einem Static mesh Würfel einen Blueprint gemacht und das so gebaut, dann dreht sich der Würfel dann entsprechend der Kamera-Bewegung. Das ist aber noch nicht 100% das, was du willst, aber so läuft der Blueprint erstmal. Mit den korrekten Rotationen etc. musst du dann für deinen Anwendungsfall herumspielen. Hoffe das hilft ein wenig

achso: Manche der Knoten kriegst du nur rein, wenn du das Häkchen bei "Context Sensitive" an oder aus schaltest, sonst wird es dir nicht angezeigt smile
 
GastDo. 27 Nov. 2014, 11:21 Uhr
Erst mal danke GuyGood smile

Ich habe leider erst heute dein Post gesehen, ist leider untergekommen da auf der Mainsite ja nicht steht wer als letztes gepostet hat, ich hatte über den Tag öfter mal rein gesehen und am Abend war der Quali Thread dann ganz oben.

Sry dafür aber danke für deine Antwort.

Nebenbei hatte ich mich gestern den Thema auch noch einmal angenommen und das Problem hatte ich auch gelöst.


Kurz zur Aufklärung wo meine Fehler lagen, denn sie unterscheiden sich etwas von deiner Lösung Guy.

Mein erster Fehler war, das ich versucht habe in dem Blueprint des Geschützturms per GetPlayerController an die Get Hit Result Under Cursor-Funktion zu kommen.
Das geht nicht denn man kommt an diese Funktionen nur wenn man wirklich im PlayerController Blueprint ist.

Mein zweiter Fehler war dann das mir die nächste Funktion fehlte, die GetActorRotation.
Das konnte ich genau so lösen wie du es geschrieben hast Guy, indem ich bei "Context Sensitive" deaktiviert habe.

Wenn ich jetzt jedoch diese zweit Absätze lese, könnte ich mir vorstellen, das man vielleicht auch Zugriff auf Get Hit Result .... hätte wenn ich im Gatling Blueprint das "Context Sensitive" hätte.... denke das probiere ich noch mal aus, wäre ja klasse.

Da ich ja nun aber die Funktion in meinen PlayerController eingebaut hatte, brauchte ich noch bezug zu meinem Gatling Blueprint.
Das BP musste ich somit als Objektvariable hinzufügen.
Nun dachte ich die Variable einsetzen per GET reicht aus, aber Pustekuchen, man muss das Teil vorher noch umkonvertieren als Actor, ansonsten bekommt man Fehlermeldungen.

Das wars, damit hats nun funktioniert.



Da du den PlayerController so eingesetzt hast Guy, gehe ich mal davon aus, das man nicht unbedingt im Controller BP arbeiten muss sondern auch so in anderen BPs auf den Controller Bezug nehmen kann.

Wenn dem so ist lag mein einziger Fehler vorher wohl beim "Context Sensitive".
Wenn dem so ist und ich mich dann im BP der Gatling befinden könnte, ist es dann auch richtig das ich statt der Funktion "GetPlayerController" auch einfach für meine Gatling "GetActor" verwenden könnte da ich mich ja schon im Objekt befinde ??


Dann ist mir noch aufgefallen das in deinem BP wohl noch nen Fehler steckt Guy (denke ich zumindest).
Kann es sein das du oben in der Mitte bei "GetPlayerController" vergessen hast das ReturnValue mit dem Target von SetActorRotation zu verbinden ?

(Mag ja sein das man das nicht muss, denke aber schon daher die Frage)

 
GuyGoodDo. 27 Nov. 2014, 12:03 Uhr
Mein erster Fehler war, das ich versucht habe in dem Blueprint des Geschützturms per GetPlayerController an die Get Hit Result Under Cursor-Funktion zu kommen.
Das geht nicht denn man kommt an diese Funktionen nur wenn man wirklich im PlayerController Blueprint ist.


Da du den PlayerController so eingesetzt hast Guy, gehe ich mal davon aus, das man nicht unbedingt im Controller BP arbeiten muss sondern auch so in anderen BPs auf den Controller Bezug nehmen kann.


Genau, ich habe nicht aus dem PlayerCharacter Blueprint heraus gearbeitet sondern eben aus einem einfachen Actor Blueprint, der nur einen Würfel beinhaltete.

Wenn dem so ist und ich mich dann im BP der Gatling befinden könnte, ist es dann auch richtig das ich statt der Funktion "GetPlayerController" auch einfach für meine Gatling "GetActor" verwenden könnte da ich mich ja schon im Objekt befinde ??


Also du brauchst ja für die Get Hit Funktion den PlayerController, das steht ja auch unten in dem Knoten drin.

Dann ist mir noch aufgefallen das in deinem BP wohl noch nen Fehler steckt Guy (denke ich zumindest).
Kann es sein das du oben in der Mitte bei "GetPlayerController" vergessen hast das ReturnValue mit dem Target von SetActorRotation zu verbinden ?


Also zuerst einmal: Dass mein BP nicht perfekt ist und die Roation sicherlich nicht so ist, wie du dir das gedacht hast, habe ich ja dazu gesagt.

Aber ein Fehler ist das nicht. Da ich ja in dem Würfel Blueprint bin, und ich ja den Würfel selbst (self ) drehen will, darf das Target für den "Set Actor Rotation"-Knoten natürlich NICHT der PlayerCharacter oder whatever sein, sondern muss der BP selbst sein (in dem Fall habe ich ja auch nur den. Und schau mal genau hin, der obere Knoten ist "GetPlayerCHARACTER", nicht "GetPlayerCONTROLLER". Viele Wege führen eben nach Rom


 
GastDo. 27 Nov. 2014, 12:42 Uhr
Nicht das du mich da falsch verstehst, ich wollte ja jetzt nicht dein Blueprint bezüglich Fehler kritisieren, ich wollte eigentlich nur wissen ob das beabsichtigt war, denn im UrsprungsBP war der PlayerCharakter mit dem Target verbunden und bei dir halt nicht.

Ich hatte mir schon gedacht das das Target mit Self auf sich selbst deutet, war mir halt nicht sicher ob das auch so richtig war, daher die Frage, hab das vielleicht unglücklich formuliert.

Ich fange ja erst an und daher brauch ich natürlich etwas Zeit um mich mit den Eigenarten der BPs anzufeunden.

Es kommt noch einiges auf mich zu was BP-Programmierung angeht, hoffe das ich dadurch etwas mehr Übung bekomme.

Als nächstes muss ich Schüsse,DMG und nen Partikeleffekt mit einbinden und irgendwie muss ich Destructable Item sowas wie Lebenspunkte geben ... hab noch kein Plan wie ich das so alles machen muss aber denke das wird schon.


Danke nochmal GuyGood, deine Ausführungen haben mich nen gutes Stück schlauer gemacht smile
 
GuyGoodDo. 27 Nov. 2014, 13:44 Uhr
Ja, habe ich auch nicht als bösartig oder so verstanden, alles gut
Und wie gesagt, da der BP eben nicht der Player ist, muss das Ziel, auf welches die Rotation angewendet wird, auch ein anderes sein, in dem Fall hat mein Blueprint ja nur eine Static-Mesh Komponente, den Würfel. Von daher geht "self" als Ziel klar.

Und ja, hab so ein wenig Einblick in BPs aber bin auch kein Profi, falls da weitere Fragen auftauchen, kannst du sie ja hier posten Bin gespannt, ob du dein Vorhaben so umgesetzt bekommst in einer sinnvollen Zeitspanne. smile
 
GastDo. 27 Nov. 2014, 14:11 Uhr
Danke für das Angebot GuyGood, werde da bestimmt drauf zurück kommen. smile

Umgesetzt bekomme ich es definitiv, es wird nur etwas dauern bis ich die grundlegenden Sachen für meinen Workflow begriffen/getestet habe.

Momentan bin ich nur in einem Testlevel welches ich dafür verwende um die Möglichkeiten von UE4 zu testen, dazu gehört halt ein Einblick in jeden Bereich.

Am Ende soll es ja nen tolles Spiel werden und das wird es sicherlich auch, Zeit ist dabei kein Problem den das Erstellen des Spiels ist der Spaß, nicht das fertigstellen.

Blöd ist natürlich immer wenn man an Kleinkram fest hängt, gewisse Sachen muss ich halt zu beginn prüfen und dazu gehört halt auch ein Player Charakter den ich bewegen kann und mit dem ich rumballern kann, damit ich weiß wie ich meine Modelle zu erstellen habe, bzw. wie ich sie zu animieren/texturieren habe.

Genau an der Stelle klebe ich gerade, wenn das aber erst mal geklärt ist und ich was zum Bewegen habe, dann gehts los mit der Produktivität


Was ich toll finde an UE4 ist, um so mehr man versteht, desto mehr versteht man wirklich was noch so alles Möglich ist, woran man vorher noch nicht mal gedacht hat.

Sehr motivierend wenns dann am Ende klappt
 
 

 


 
 
© 3D-Ring - deutsche 3D Software Community, Archiv 2001 - 2006