Multiplayer Fahrphysik performant und modular

  • Ah, gut das er es bis über 1000 Km/H in dem Video demonstriert. Dachte schon bei normaler Autobahngeschwindigkeit könnte es vielleicht versagen.

    Das Problem ist, dass ich keine Ahnung hab, ob die Geschwindigkeit passt, hab zwar bei vorbeifahrenden Autos geguckt, bin aber schlecht im schätzen, also keine Ahnung wie schnell die fuhren ^^

  • Ich bin nicht sicher ob wir jetzt zu weit vom Thema abkommen aber interessant ist es schon. Gehört den dieses "Phänomen" mit mit zum gewünschten Ergebnis?

    Möchte zb. man das sich der reifen bei einer gewissen Geschwindigkeit rückwärts dreht? Den in der Realität wäre das ja auch so.


    Warum dreht sich bei einem Rad der Reifen vorwärts und der speichen Rückwärts ?


    Das hat damit etwas zu tun wie viele Bilder wir pro Sekunde wahrnehmen. Stellen wir uns mal eine Uhr vor die sich ziemlich schnell dreht. Die Uhr steht auf 12 Uhr und du machst ein Foto. Nun rennt die Uhr so schnell das es dir erst bei 11 Uhr wieder gelingt ein Foto Zu machen. (Die Uhr ist fast einmal rum) Bei deinem nächsten Bild schaffst du es wieder bei 10 Uhr ein Foto zu machen. Obwohl du die die Uhr nun fast 2 mal umrundet hast, hast du 3 Bilder: 12 Uhr, 11 Uhr , 10 Uhr. Ergo deine Uhr läuft augenscheinlich Rückwärts.


    Damit das Phänoment auftreten kann, braucht der Reifen ein ein Muster mit W iedererkennung. Bei einem Gummi reifen hast du oft kein richtiges Muster wobei du bei einem Fahrrad reifen die Reflektoren hast. Deswegen sieht es so aus als würde der Gummi reifen vorwärtslaufen und die speichen laufen rückwärts.


    Bei der Frage ob Textur oder Mesh: Es spielt keine Rolle da dass Phänomen auch bei Texturen auftritt sofern sich die Textur genau so schnell dreht wie das Mesh. (Das ist eine Physikalische Gewissheit)

    Wie gesagt das Problem tritt auf durch die Anzahl an Bilder die wir wahrnehmen können, aber auch durch die Anzahl der Bilder die der Computer erzeugt werden. Abhängig von die Geschwindigkeit.


    Im Prinzip müsste man die Anzahl der Umdrehungen des Meshes als auch die Anzahl der Umdrehungen der Textur auf die Anzahl von Bilder begrenzen die wir als Menschen wahrnehmen können. ( 16 Bilder pro Sekunde) Dann würde der Effekt nicht zustande kommen.


    Eine Hochleistungskamera macht auch einen haufen Bilder pro Sekunde aber als Mensch werden die die mals sehen können es sei wir schauen uns die Aufnahmen in Slowmotion an.

  • Möchte zb. man das sich der reifen bei einer gewissen Geschwindigkeit rückwärts dreht? Den in der Realität wäre das ja auch so.

    Nein, in der Realität wäre das nicht so.


    Dieser Effekt, dass eine Felge, oder auch ein Rotorblatt am Hubschrauber, plötzlich, trotz offensichtlicher Bewegung, scheinbar stehen bleibt oder gar rückwärts dreht, liegt an der Film-/Kameratechnik.


    Nehmen wir mal an ein Film wird mit 60 Bildern pro Sekunde aufgenommen, oder sagen wir der einfachheitshalber sagen wir mal 60 Bilder pro Minute, weil ist ja skalierbar, und das Rad/ der Rotor macht gerade genau 60 Umdrehungen pro Minute, dann scheint das Ganze halt stehen zu bleiben. Dreht sich das Objekt jetzt nur einen kleinen Tick schneller scheint es rückwärts zu drehen. Deswegen siehst du im oben genannten Video bei steigender Geschwindigkeit auch immer wieder dieselben Effekte, die sich wiederholen.


    In der Realität, also mit bloßem Auge gibt es diesen Effekt jedoch nicht. Zumindest nicht in dieser Form. Das Auge hat zwar auch eine gewisse Trägheit, aber diese führt lediglich dazu, dass ein Propeller zum Beispiel lediglich als durchsichtige Fläche wahrgenommen wird.

  • ....

    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.

  • Wenn du keine Hilfe willst, dann sags doch einfach...

    Hilft leider nicht da es wieder nur fertige Fahrzeuge sind die man selber nicht live zusammen bauen kann.

    Ja, es sind fertige Fahrzeuge, es ist kein Baukasten...

    Ne Anleitung für nen Baukasten wirst aber auch nicht finden und wird dir hier wohl auch keiner geben ^^


    Du könntest es dir wenigstens mal angucken und nicht direkt sagen, dass es nicht hilft und dass man sie nicht "live" zusammen bauen kann, denn du kannst die Räder wechseln und der Rest des Fahrzeugs reagiert darauf.



    Wenn das nicht genau das ist was du willst, belügst du dich selbst:

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


    Als Entwickler gehts darum, selbst was auszuprobieren und von anderen zu lernen und nicht um Schritt-für-Schritt Anleitungen zu betteln ^^

  • 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 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.

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

    Mach doch einfach nen neuen Collision-Channel, beide Teile haben verschiedene Collis, die sich beide nicht gegenseitig blocken ^^

  • 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.

  • Ich hatte das ganz am Anfang schon geschrieben was spricht gegen Constraints und Child Parenting ?


    Beim Parenting kannst du Objekte unterordnen, dadurch das sie ungeordnet sind, gehören sie zusammen sind aber trotzdem nicht gemerged.


    Das Parenting kannst du außerdem über ein Blueprint steuern um es zb zu lösen. So kann dein Fahrzeug beim Crash ein Reifen verlieren sich aber trotzdem Physikalisch korrekt bewegen kann.

  • Ich würde aber auch grundsätzlich wegen der Optik, dem Fahrverhalten und auch wegen der technischen Machbarkeit alle Modelle die im Spiel möglich sind schon vorab zusammenbauen und testen. Und dann würde ja auch nichts dagegen sprechen die alle im Spiel vorgefertigt zu haben und dem Spieler quasi nur fälschlicher Weise den Eindruck zu vermitteln, dass er sich die Sachen da wirklich zusammenbaut. Wenn es nicht zu viele mögliche Modelle sind spricht ja glaube ich nichts dagegen, das Spiel wäre dann halt ein bisschen größer.

  • Ich würde aber auch grundsätzlich wegen der Optik, dem Fahrverhalten und auch wegen der technischen Machbarkeit alle Modelle die im Spiel möglich sind schon vorab zusammenbauen und testen.

    Wenn die Physik wie beispielsweise das Fahrwerk in der Unreal Engine simuliert werden soll, muss die Physik auch in Unreal berechnet werden und dafür brauchst du alle Bauteile die miteinander funktionieren sollen einzeln in der Unreal. Wie soll ein Stoßdämpfer oder die Lenkung funktionieren wenn das gesamte Mesh zu einem Objekt gemerget ist. Klar könnte man das Animieren (Links lenken, Rechtslenken) aber das wäre nicht physikalisch korrekt und würde teilweise sehr seltsam aussehen.