Unity 3D-Tutorial: #38 – Reifenposition mit Raycast berechnen
Dieser Artikel gehört zu einer ganzen Tutorial Serie. Hier gelangt Ihr zu der Artikelübersicht: Unity 3D Tutorial Serie .
Nachdem ich in den letzten beiden Tutorial-Folgen auf die Parameter der WheelCollider sowie auf die Wheel Friction Curve eingegangen bin, will ich diesem Teil auf das visuelle Umsetzen der Federung eingehen.
Um die Reifenpositionen neu zu berechnen, werde ich Raycast nutzen, die ich in diesem Tutorial ebenfalls erklären werde.
Tutorial-Inhalt
In dem ersten dieser beiden Unity3D Tutorial hatte ich Euch auch die Suspension Distance erklärt.
Mit dieser verändert Ihr die Länge der Federung. Erhöht Ihr diesen Wert, wird die Karossiere angehoben, wobei die Reifen natürlich am Boden bleiben. Visuell muss man hierbei allerdings die Reifen-Objekte unabhängig von der Karossiere positionieren. Da wir dies bisher aber noch nicht programmiert haben, will ich das nun in diesem Teil nachholen.
Hierfür werden wir Raycasts nutzen und ein kleines Javascript – Skript programmieren. Raycasts sind nichts anderes als Strahlen, die von einem Punkt aus in eine bestimmte Richtung ausgesandt werden, um dann Gegenstände zu detektieren.
Wie dies genau funktioniert und ich diese für unsere Aufgabenstellung einsetzen, erkläre ich in dem folgenden Video-Tutorial.
Video-Tutorial
Hier ist nun das Video-Tutorial, das dieses Mal wieder etwas länger ausgefallen. Viel Spaß!
Ich hab mir Mühe gegeben die Raycasts wie auch die Berechnungen der Reifenpositionen genau zu erklären. Wenn trotzdem etwas unklar geblieben ist, dann raus mit der Sprache – Unten ist genug Platz für Eure Kommentare!
In der kommenden Folge 39 dieser Tutorial-Reihe geht es dann um Bremsspuren. Da mich ja bereits einige darauf angesprochen hatten, will ich Euren Wünschen natürlich gerne nachkommen und erkläre Euch dort, wie man diese in Unity3D umsetzen kann.
Hier geht es weiter zum nächsten Unity 3D-Tutorial: #39 – Skidmarks / Bremsspuren.
Gruß Carsten
Hi,ich habe ein problem mit meine Auto . Mein Auto will nicht fahren . Ich bitte sie mir zu helfen .
Ich habe noch hier ein video was macht genau mein Auto . : http://www.youtube.com/watch?v=FQN7dtvrmxQ
Vielen Dank im Voraus für Ihre Hilfe.
Hummelwalker bitte helfen Sie mir noch einmal. Ich habe ein problem mit meinem Auto .
Meine Auto fahrt jetzt aber er umkippt dann, wann mein auto schwenkt . Das ist meine neue problem .
Ich habe noch hier ein video was macht genau mein Auto .:
http://www.youtube.com/watch?v=_mvdMIsfprs
Bitte helfen mir Hummelwalker . Ich Danke für sie ihre bischerige hilfe . Und Entschuldigung für meine Deutsch .
Ich Danke für sie ihre bischerige hilfe .
@Padawan94:
Im ersten Video ist zu sehen, dass dein Rennwagen keinen Rigidbody hat.
Ich weiss nicht, ob er dieses inzwischen hat, da das zweite Video von Youtube noch nicht freigegeben ist, aber wenn nicht, dann solltest du mal versuchen, dem ganzen Auto einen Rigidbody zu geben (zu finden unter: Leiste ‚Component‘ – ‚Physics‘ – ‚Rigidbody‘).
Welche Sprache?
Englisch?
Hoffe ich konnte helfen, auch wenn ich nicht Hummelwalker bin 😀
UnSpeed
@UnSpeed: Vielen Dank für Deine tatkräftige Unterstützung 🙂
Carsten
@Paradwan94: Ansonsten schau Dir einfach mal mein letztes Tutorial an:
http://www.der-softwareentwickler-blog.de/2010/11/15/unity-3d-tutorial-37-wheel-friction-curve/
Dort gehe ich genau auf das „Elchtest-Problem“ ein, sprich das Umkippen in einer Kurve. Um dies nämlich zu beheben, kann man zum Beispiel den Schwerpunkt runter setzen oder, wie in dem Tutorial behandelt, das Wegrutschen der Reifen modifizieren. Es gibt natürlich auch noch die Mögichkeit über das Verändern der restlichen WheelCollider-Parameter Stabilität zu verstärken. Aber das testest Du am besten selber, da dies immer von den jeweiligen Konstellation wie Gewicht, Reifenabständen, Reifengrößen etc. abhängt.
Ich habe jetzt das video neu uploaded hier ist das video :
http://www.youtube.com/watch?v=TDhfG1A5MTg
In der erste video meine auto hat rigidbody und in der zweite video auch .
Und mein problem nach dem 37.Tutorial gesehen habe immer noch lebt . Mein auto unkippt wann ich drehen .
Entschuldigung für meine Deutsch .
Ich Danke für sie ihre bischerige hilfe .
Vielen Dank im Voraus für Ihre Hilfe.
Hallo Carsten! Erst einmal ein dickes Lob für deine Tutorial-Reihe. Ich finde sie sehr interessant und informativ, zudem wird auch alles sehr ausführlich und gut erklärt.
Nun zu meiner Frage/ meinem Problem:
Ich habe in etwa das gleiche Problem wie Padawan94. Leider kippt mein Auto in einer Kurve um, obwohl ich nicht einmal schnell fahre. Das Experimentieren mit den Werten zeigt leider keine Veränderung. Egal ob ich den Wert der Masse ändere, das Rigidbody anders setzte, oder die Wheel Collider; es zeigt sich stets der Wagen, der in einer Kurve umkippt. Ich habe das Problem versucht mit dem Tutorial #37 zu lösen, wo du ( ich hoffe es ist ok, wenn ich dich duze 😉 ) dem Auto entsprechende Werte für das Ausbrechen in einer Kurve eingibst. Dies hat leider auch keine Veränderung gezeigt. Der Wagen bricht zwar aus, jedoch überschlägt er sich danach sofort.
Falls es dir helfen könnte mein Problem noch besser zu verstehen, kann ich dir sagen, dass ich eine komplett ebene Fläche habe und das Auto schon bei der Beschleunigung anfängt vorne zu springen. (Dies passiert, nachdem ich die Werte der Federung geändert habe.)
Ich hoffe du kannst mir bei meinem Problem helfen. Des weiteren wünsche ich noch viel Erfolg bei den Tutorials. 😉
Gruß Max
P.S.: Der Schwerpunkt des Autos liegt bei „0“, der Tipp mit „-0.5“ hat leider auch keinerlei Veränderung gezeigt.
@Padawan94 und Max:
Hallo Ihr beiden,
ich hab mir das Video von Padawan94 mal genau angeschaut. Wenn bei Dir, Max, das gleich Problem ist, wie beim Padawan, dann solltet Ihr beide folgendes ändern:
Stellt Eure Stiffness Factoren (Sideways und Forward) aller Räder einfach mal auf 0.1 anstatt auf 1.
Das Problem ist, dass die Masse des Autos Euch zur Seite drückt, die Reifen aber durch die zu hohe Bodenhaftung unten am Boden „festgehalten“ werden. Deswegen bleibt dem Wagen nichts anderes übrig als über den Kontaktpunkt von Reifen und Oberfläche zu kippen.
Ich hoffe, dass Euch das geholfen hat.
Ach ja, und natürlich dürft Ihr mich duzen 😉
Gruß Carsten
Hallo Carsten.
Habe das schon einmal umgeändert und probiert, leider ohne Erfolg. Habe es nun noch einmal versucht und das gleiche Ergebnis erzielt. Wenn ich den Wert allerdings auf „0.01“ stelle, dann kippt zwar nicht mehr das Auto um, jedoch fahre ich wie auf Glatteis, das kann es doch eigentlich nicht sein, oder?
Ich habe das ganze Tutorial zudem 2 mal durchgearbeitet und exakt die selben Ergebnisse eines umkippenden Autos erzielt. Liegt das eventuell an der neuen Version von Unity? Dürfte eigentlich ja nicht so sein…
Gruß Max
Das kann in der Tat nicht der Sinn der Sache sein.
An Unity 3 liegt es nicht, da ich es selber nutze. Also ich hab es ja noch einmal selber genau nach dem Video gemacht. Und bei mir funktioniert es. Hmmm, vieleicht fällt mir da noch was ein.
Was für Werte hast Du denn für Deine WheelCollider gewählt und was für eine Masse hat Dein Rigidbody?
Wie wäre es, wenn ich dir das Projekt einmal schicke? Natürlich nur wenn du die entsprechende Zeit und Lust hast.
Ich habe es nun geschafft dass mein Auto nicht mehr umkippt, jedoch fährt es nicht gerade aus. Wenn ich den Schwerpunkt verlege, dann „hoppelt“ es in der Kurve recht heftig.
Ich hoffe ich nerve nicht zu sehr mit meinen Fragen.:lol:
Gruß Max
Sorry, aber ich bin ziemlich ausgebucht. …Was hast Du denn gemacht, damit es nicht umkippt?… Hoppeln??? …
Ich habe die Masse geändert. War vorher auf „0“, jetzt auf 1500. 😳 Leider springt der Wagen trotzdem noch etwas in der Kurve. Werde das mal mit dem Wegrutschen der Räder versuchen zu beheben.
Trotzdem danke! 🙂
Hallo,
ich wollte fragen ob man mit Unity3d auch online spiele machen kann?
Ja kannst du. Du brauchst dafür einen entsprechenden Server. Auch lokale Multiplayer sind damit realisierbar. Auf Youtube findest du entsprechende Videos dazu. 😉
Danke