Beiträge von Exaran

    Hallo Leute!


    Ich komme einfach nicht drauf, egal was ich mache :(


    Es geht darum das Kanonenrohr des Geschütz auf die ZielLocation vom TraceHit auszurichten und das unter der Berücksichtigung das die eigene Kamera frei veränderbar ist (z.B. wenn die Sicht auf das Ziel schlecht ist).


    So wie das jetzt ist es schon sehr richtig aber es fehlt etwas zwischen Kamera und Kanonenrohr. Um dort eine Differenz zu bekommen.


    Ich bitte um Hilfe, vielen Dank!



    Das Ziel (das Waffenausrichtung soll ungedachtet der Reichweite des TraceLine sein (der ist leider nur auf 10000 eingestellt, es sollte eigentlich unendlich sein).



    Hier ist das Geschütz.

    Die Rotation wird durch die Kamerabewegung ausgelöst.

    Das Geschütz soll auch nicht höher im Winkel als im Clamp angegeben sein (was soweit alles funktioniert).



    Das Problem ist der Trace ist immer höher als das Kanonenrohr (obwohl innerhalb des Clamp).


    Ich habe die 6 Sockets so durchnummeriert das der Wert auf der anderen Seite immer zusammen 7 ergibt.

    1 auf 6

    2 auf 5

    3 auf 4


    Was ich mit Steuerung meinte ist das die Position der beiden Knotenpunkte verbunden bleiben soll und die sich nicht lösen sollen.

    Das ist so schwer zu erklären!


    Ich möchte gerne wissen wie ich ein Socket(name) an einen anderen Socket(name) verbinden kann.

    Setzte ich die Panzerkette an das Hauptfahrzeug ist am Hauptfahrzeug der Knotenpunkt 6 dafür da.

    Bei der Panzerkette wird Knotenpunkt 1 and Hauptfahrzeug Knotenpunkt 6 verbunden (Der wert ergibt immer 7).


    Packe ich ein Geschützt auf das Hauptfahrzeug gibt es dort mehrere Möglichkeiten, jedoch Knotenpunkt 6 ist ja bereits gelegt.

    Hi, mir ist leider etwas dazwischen gekommen weshalb ich nicht dazu gekommen bin ein Video zu erstellen.

    Auf dem Video wird man nur starkes ruckeln erkennen (da der Panzerkette-Knotenpunkt mit Hauptfahrzeug-Knotenpunkt kollidiert).

    Ich habe das nun grob wie auf dem Screenshot geändert und das ruckeln ist soweit verschwunden. Leider löst sich die Panzerkette vom Hauptfahrzeug...


    Mir ist aufgefallen das ich da einen Fehler habe wie ich ein Knotenpunkt mit einem anderen verbinden kann, denn dies könnte das Problem schon lösen.


    Habe die Anbindung etwas verändert und es ist schon deutlich besser, läuft aber leider asynchron.



    Siehe hier:

    Die Formel ist 7 - X = ?

    Beide Seite haben zusammen immer die Zahl 7.

    Ist 1 oben ist unten automatisch 6.


    Also packe ich den Knotenpunkt von der Panzerkette (Sockename 1) unter den Hauptfahrzeug-Knotenpunkt (Socketname 6).

    Zusammen ergibt das 7.

    Der Knotenpunkt ist immer 5 Punkte groß (in alle Richtungen).


    Also müsste ich World Location Socketname 1 und dann + oder -5 entsprechend zur Richtung (wie geht das?) zu Socketname 6 bei dem Hauptfahrzeug.

    Irgendwas fehlt das Panzerkette-Knotenpunkt und Hauptfahrzeug-Knotenpunkt fest verbunden werden, so das die Phyisk noch funktioniert.

    Das gleiche Problem ist bei der Bewaffnung am Fahrzeug, identischer Fehler wie mit der Panzerkette.


    Nur mit der Option Merge Physics Data geht es ncht?


    https://docs.unrealengine.com/…Actors/Merging/index.html

    Problem dabei ist das muss alles Live im Spiel funktionieren.

    Dieses Actor Merging sieht mir so danach aus als ob man das vorher im Editor tut, damit das im Spiel entsprechend so ist.

    Muss es mir noch genauer anschauen, von daher schon mal vielen Dank :)


    Ich hätte soweit schon eine gute Lösung gefunden, nur das Problem was ich derzeit habe ist, dass es manchmal dazu kommt das Bauteile "ruckeln" wenn man sich bewegt.

    So als würde die eine Physik mit der anderen nicht synchron sein.

    Wie kann man 2 gleiche StaticMeshes mit Physic miteinander verbinden und damit die sich gegenseitig in der Physic ignorieren?


    Ich habe einen StaticMesh Knotenpunkt am Hauptfahrzeug und am Bauteil (Reifen), diese werden miteinander verbunden, damit man das Fahrzeug mit dem Bauteil (Reifen) bewegen kann.

    Das funktioniert super.... aber die beiden haben ein Physic Problem, das eine will das andere abstoßen (weil ja beide Physic haben) und das muss auch so sein.


    Grob gesagt müssten die sich gegenseitig nur in der Bewegung ignorieren, dafür gibt es eine Funktion die aber (laut der Beschreibung) nicht für phsic funktioniert.


    Was mache ich da nun?

    Der Knotenpunkt (StaticMesh = Mesh) ist wichtig da dieser Verbindungsknotenpunkte auf jeder Seite hat.


    Wenn das Bauteil im Hauptfahrzeug erzeugt und angeheftet wird.


    ---

    Der Knotenpunkt StaticMesh mit den "Sockets"


    ---

    Die Eigenschaft des Knotenpunkt im MasterFahrzeug Blueprint.

    Jedes Bauteil besitzt diesen Knotenpunkt mit dem später alles verbunden werden muss.


    Ich erbitte um eure Hilfe.

    Danke dir für die Info.

    Das tut mir leid wenn ich mich falsch ausgedrückt habe.

    Ich glaube ich habe das mit einem anderen System verwechselt, werde es mir also genauer anschauen.

    ....

    Wie kann man das nun machen das ein Mesh (SkeletalMesh) an dem ein Basismodul (SkeletalMesh) hängt sich genau so verhält wie ein SkeletalMesh (Antrieb) das daran hängt?


    Problem ist, der Antrieb hat die Physic (hängt nach unten), aber die ersten beiden, Mesh + und Basismodul schweben noch in der Luft und bewegen sich auch nicht. Physic ist alles aktiviert. Physic Actor als Collision aber bringt nichts.

    Was muss ich da noch machen?

    EDIT:

    Habe aus dem SkeletalMesh ein StaticMesh gemacht, entsprechend mit Physic (man muss dazu leider einen Actor einfügen), dann funktioniert das schon deutlich besser aber auch noch nicht so ganz perfekt.

    Ich hab sowas auch noch nie gemacht aber von der Theorie her musst du deine Fahrzeugteile logisch durch Contraints miteinander verbinden.


    Ich stell mir das so vor:

    Bei einem Frontantrieb ziehen die vorderen Ränder die ganze Karre, Die hinteren Räder folgen den vorderräder.

    Entweder du verbindest die Hinterräder und die Karosserie und den mit den Vorderräder oder du verbindest die reifen und den Rest mit der Karosserie.


    Vom logischen her Ja, aaaaaaaber das Mesh bekommt nicht die Information sich auch bewegen zu müssen.

    Das Basismodul ist die Fahrerkabine, an die dann die ganzen Teile montiert werden.

    Ein "SetWorldTransform" funktioniert leider auch nicht, weil dann könnte man einfach das World Transform von den Antrieben nehmen und dieses 1:1 auf das Mesh übertragen.


    Die Bauteile sind sich alle später entsprechend verziehen/verformen können (in reduzierter Detailstufe damit die Performance bei mehr Spielern nicht total schlecht ist).

    Ich hätte da eine komische Frage: Es geht um Pawn.


    MasterFahrzeug hat ein Mesh und daran hängt das Basismodul (beides Skeletal Mesh).

    Am Basismodul kommen die ganzen Bauteile/Antriebe (Räder usw.).

    Das funktioniert soweit super, die Räder fahren, aber ohne das sich das Mesh bewegt.


    Wie kann ich es machen das die angehefteten Bauteile auch das Mesh bewegen?

    Also das Mesh soll sich genau so verhalten wie die Teile die am Basismodul dran hängen, wie geht das?


    Wenn ich beschleunige oder lenke, dann fahren die Räder/Ketten alleine los...


    Das Problem ist ich muss das genau so machen und nicht umgekehrt (das die Antriebe an erster Stelle sind und alles anderen an den Antrieben/Räder/Ketten hängt). Denn so würde es funktionieren aber das ist nicht das was ich brauche.

    Vom logischen her dürfte das so aufgebaut sein:


    Masterfahrzeug (leer), enthält die Variablen für die Lenkung, Beschleunigung, Bremsen usw. (diverse Variablen).


    Masterfahrzeug (leer) -> Child -> Blaupause (darin werden alle Bauteile angeheftet)


    Masterfahrzeug (leer) -> Child -> Bauteile (Panzerung usw.)


    Masterfahrzeug (leer) -> Child -> Antrieb (Reifen, Ketten, Beine usw. die Physik und Animation)


    Masterfahrzeug (leer) -> Child -> Waffen (Für alle Waffen oder sonstiges)


    Daraus werden wiederum entsprechende Child erstellt die dann später an die Blaupause angebaut/angeheftet werden. Live im Spiel.


    Die Frage die ich mir nur stelle ist, wie kann ich ein Pawn (Antrieb) an ein Pawn (Blaupause) anheften und darin speichern?

    Wäre das eine Array-Variable, die zugleich auch ein Vector enthält?


    So das z.B. Reifen 1 an X:Y:Z am Hauptbauteil in der Blaupause hängt.


    Das muss entsprechend repliziert werden, damit andere Spieler das sehen.

    Danke du bist mein Held :)


    Ich sags euch, die Unreal Engine 4 ist das reinste Irrenhaus, bis man da was findet...


    Jetzt kann es endlich mit der Fahrphysik weitergehen.


    Demnach gleich eine neue Frage:

    Habe nun "MasterFahrzeug" Blueprint was als ParentClass: Wheeled Vehicle hat.


    Ich möchte nun das dieses MasterFahrzeug als Basis-Fahrzeug dient (sozusagen die Karosserie), an diesem setzt man nun Reifen, Waffen, Panzerung daran.


    Wo genau müssen diese Zusatzteile (Reifen, Waffen usw.) in dem MasterFahrzeug eingetragen werden.

    Wäre das eine Art SkeletalMesh-Array?

    Diese Bauteile sollen im Klemmbaustein-System an das Fahrzeug angebracht werden.


    Das ganze muss im Live Betrieb beliebig wechselbar sein, Reifen durch Panzerketten austauschen, neue Waffen usw.

    Zugleich sollen alle Bauteile zerstörbar sein (hört sich nach viel Arbeit an).



    Meine Frage bezieht sich mehr darauf, wie kriege ich einen Reifen mit Fahrphysik an das Fahrzeug, damit beides funktioniert?

    Ich weiss leider nicht wie man das nennt wenn etwas mehrfach wiederholt in einer Funktion einzeln angezeigt werden soll.



    Im Grunde ist in diesem Beispiel zu den Waffen (was auch bei dem Fahrzeug für die Reifen zählt) in einem Array mehrere "Dinger" vorhanden und diese müssen entsprechend einzeln aufgezählt werden.


    Bei dem Waffenbeispiel im Bild geht es um die "Waffenkunde", das wäre Einhändig + Schwert, das beides soll angezeigt werden, tut es aber nicht. Da immer nur das erste angezeigt wird. Da das erste immer auch das zweite überschreibt.

    Das in eine Variable zu packen macht auch keinen Sinn, da die Variable auch wiederum überschrieben wird.


    Bei den Reifen brauche ich das, um zu wissen wie der Antrieb zum Bodenkontakt der Reifen ist, da es eine größere Anzahl an Reifen gibt (mehr als 4 oder unbekannt X) muss jeder einzelne mit seinen Werten angezeigt werden.

    Habe leider ein paar Fehler in der komischen Datenbank gehabt die mich daran gehindert haben hier weiter zu machen.


    Um das ganze besser analysieren zu können.

    Wie kann man in einem Array die Namen in der Reihenfolge anzeigen lassen, ohne ein Print String zu verwenden?

    Ich möchte gerne im Spiel in einem Widget den Inhalt eines Arrays (z.B. Anzahl der Reifen) anzeigen lassen, mit dessen Namen und Umdrehungen.


    Array -> ForEachLoop und das Ergebnis muss in einen String zum Return Node, leider zeigt der immer nur eines an und nicht alle in Reihenfolge.

    Kann man da irgendwie ein Add-String machen, so das die Namen in Reihenfolge gesetzt werden?


    Beispiel:

    ReifenLinksVorne

    ReifenRechtsVorne

    ReifenLinksHinten

    ReifenRechtsHinten

    usw.


    Das soll entsprechend nacheinander angezeigt werden, aber das tut es nicht da man immer nur eines anzeigen lassen kann.

    Am besten ohne Variable damit es sauber bleibt, wie geht das?