Anleitung für das Autotutorial (Unity3d): Erkunden eines alternativen physischen Modells (Teil 1 von 3)

  • Tutorial
Bevor wir beginnen, möchte ich Sie warnen, dass dies keine Übersetzung des offiziellen Handbuchs ist, sondern mein persönlicher Leitfaden für den Einbau der Physik in ein Auto.

Teil 1
Teil 2
Teil 3

Die Untersuchung eines alternativen physikalischen Modells:


Teil 2
Teil 3

Das offizielle Handbuch befasste sich mit der Fahrzeugphysik, die ein vereinfachtes Modell aufweist und viele Mängel aufweist, die ganz am Ende von Teil 3 des Handbuchs zu lesen sind . Oder schauen Sie sich dieses Video an:



PS: Für diejenigen, deren Modelle exportiert werden, können wir sofort zum Auto-Setup- Übergang gehen und auch das Video zum Auto-Setup ansehen (zusätzlich zum Artikel):



Beginnen wir also in der richtigen Reihenfolge.

Laden Sie zuerst die benötigten Skripte herunter ( download ). Jedes Skript enthält Kommentare. Wir werden die Beschreibung der einzelnen Skripte kurz untersuchen. Eine allgemeine Vorstellung haben.

Lassen Sie uns die Beschreibung von Skripten studieren.


AerodynamicResistance.cs : Dieses Skript muss jedem Fahrzeug hinzugefügt werden, um die aerodynamische Reibung des Fahrzeugs zu berechnen.

AntiRollBar.cs : Fügen Sie diese nach Bedarf hinzu, um den Stabilisator für eine bessere Handhabung zu simulieren.

CarController.cs : Skript zur Handhabung von Fahrzeugsteuerungen. Dieses Skript wird für jedes Auto benötigt. Sie können dieses Skript bearbeiten, wenn Sie die Steuerung des Autos ändern oder AI implementieren möchten. Es legt auch einige Eigenschaften der Karosserie fest, z. B. den Schwerpunkt und die Trägheit.

CarCamera.cs : Skript für die Kamera. Was nach den Einstellungen unser Auto folgen wird.

Drivetrain.cs: Motor und Getriebe eines Autos. Dieses Skript enthält das Getriebe und den Motor. Eines der im Auto benötigten Skripte.

SoundController.cs : Eine einfache Klasse, um Auto-Sounds und andere Sounds abzuspielen. Dieses Skript sollte dem Auto hinzugefügt werden.

TractionHelper.cs : Fügen Sie bei Bedarf dieses Skript zum Auto hinzu, um es stabiler zu machen.

Wheel.cs : Dieses Skript ahmt Reifenmodelle und Radaufhängungen nach und ersetzt die in Unity integrierte Wheel Collider-Komponente.

Wing.cs : Fügen Sie ein oder mehrere Skripts hinzu, wenn Sie den Abtrieb der Aerodynamik für Ihr Auto simulieren möchten.

Autovorbereitung


In der Tat ist dies der wichtigste Teil, ich stieß auf eine Reihe von Problemen in der Arbeit der Autophysik aufgrund falscher Exporte. Machen wir uns also zuerst mit dem Koordinatensystem von rechts und links vertraut.

Blender verwendet ein rechtshändiges Koordinatensystem mit der Z-Achse nach oben. Fast alle CAD-Systeme verwenden dieses Koordinatensystem . Siehe Abbildung:

Bild

Unity3d verwendet wie fast jede andere Game-Engine ein linkshändiges Koordinatensystem. Wenn Y oben ist, ist X seitwärts, Z ist vorwärts. Wir sehen uns das Bild an:

Bild

Daher müssen wir zunächst für den ordnungsgemäßen Export des Autos verstehen, dass Z + die Richtung im Spiel ist, in die sich das Auto vorwärts bewegt, und (Z-) die Richtung, in die sich das Auto zurück bewegt. (X + -) sind die Drehrichtungen zur Seite - dies ist jedoch in Unity , das ein linkshändiges Koordinatensystem verwendet . Und im rechtshändigen Koordinatensystem (Blender, 3ds max) Y + ist dies die Richtung, wenn das Auto nach vorne schaut, und (X + -) sind dies die Richtungen zur Seite. Dies bedeutet, dass das Auto wie in der Abbildung in der Szene stehen muss, ansonsten sind Probleme mit der Physik zu erwarten:

Bild

Alle Rotationsparameter müssen für die weitere Arbeit auf 0 gesetzt werden. Für die korrekte Erzeugung des Netzes muss die Skalierung standardmäßig eingestellt werden. Dazu werden wir in Blender Folgendes tun.

1) Wählen Sie alle Objekte in der Szene aus (A-Taste).
2) Objekt> Anwenden> Drehen & Skalieren.

Siehe Abbildung:

Bild

Jetzt werden alle Rotationsparameter übernommen und auf 0 gesetzt . Die Skalierungsparameter (Scale) werden auf die Standardeinstellung (1) gesetzt . Wir sehen uns das Bild an:

Bild

Jetzt können wir den „rechten Export“ vom rechtshändigen Koordinatensystem zum linkshändigen Koordinatensystem durchführen.

1) Alle Objekte
auswählen (Taste A) 2) Drücken Sie die Sequenz R> X> -90 .
3)Objekt> Anwenden> Drehen.
4) Drücken Sie die Sequenz R> X> 90 .

Stellen Sie sicher, dass Sie dies in dieser Reihenfolge tun. Exportieren Sie als Nächstes das Modell nach Unity. Datei> Exportieren> FBX mit folgenden Einstellungen: Wechseln Sie

Bild

nach dem Exportieren des Modells in den Ordner mit diesem Modell und kopieren Sie den Ordner Texturen (Ordner mit Texturen) und unsere FBX-Datei . Im Assets- Ordner unseres Projekts. Auf diese Weise kann Unity das Modell direkt mit den in Blender konfigurierten Texturen importieren .

Spielressourcen:

Bild


Autotuning


Video zum Autotuning (Ergänzung zum Artikel)

Erstellen wir ein Prefab und legen unser Objekt in Prefab ab.
1) Registerkarte " Assets"> "Create"> "Prefab"
2) Neues Prefab in "Car" umbenennen
3) Ziehen Sie unser Asset " Vaz_2106_mesh" per Drag & Drop in unser Prefab "Car".
4) Ziehen Sie unser Fertighaus mit dem Namen Car auf die Bühne.

Die Struktur des

Bild

Fertigfahrzeugs ist wie folgt: VAZ2106_Car_body - Enthält viele Elemente, dies sind Türen und Scheinwerfer und Stoßstangen usw. (vereinfachte Struktur des Fahrzeugs)
VAZ2106_Car_window - Autofenster .
VAZ2106_WheelFL - Vorderes linkes Rad.
VAZ2106_WheelFR - Vorderes rechtes Rad.
VAZ2106_WheelRL - Das linke Hinterrad.
VAZ2106_WheelRR - Hinteres rechtes Rad.

Ergänzen Sie nun unser Auto um Physik.
1) Wählen Sie unser Objekt - ein Auto (ich habe es Auto).
2) Gehen Sie zur Registerkarte Inspector und klicken Sie auf die Schaltfläche Add component> Physics> Rigidbody .
3) Wir gehen in die Rigidbody- Komponente und nehmen Einstellungen vor (vorzugsweise näher am Originalmodell).

In meinem Fall beträgt die Gesamtmasse des Autos 1445 kg. Masse = 1445. Alle anderen Eigenschaften werden auf 0 gesetzt, da sie für den Widerstand verantwortlich sind. Und für Widerstand müssen wir ein separates Skript AerodynamicResistance.cs beantworten . Ihre Starrkörper-

Einstellungen sollten ungefähr so ​​aussehen :

Bild

Neben der Masse des Autos.

Radherstellung


Erstellen Sie für jedes Rad ein leeres Objekt (Sie müssen das Skript Wheel auf jedes einzelne Rad anwenden ).

1) Rechtsklick auf den Prefabs unser Auto> Erstellen Leeres
2) Benennen Sie unser leeres Objekt namens Gameobject auf WheelFL (analog VAZ2106_WheelFL )
3) ändern , um die Koordinaten X, Y, Z Objekt WheelFL auf den Koordinaten des Objekts VAZ2106_WheelFL , und die Koordinaten des Objekts VAZ2106_WheelFL ‚s Änderung um 0.
4) Durch Ziehen und Ablegen unseres VAZ2106_WheelFL in das WheelFL- Objekt .
5) Wiederholen Sie die Schritte 1 bis 4 drei weitere Male, um den Namen von GameObject zu ändernnach unseren rädern.

Wir sollten die folgende Dateistruktur haben:

Bild

Fügen Sie als Nächstes das Skript Wheel.cs zu unseren Rädern hinzu.
1) Wählen Sie WheelFL und gehen Sie zur Registerkarte Inspector .
2) Klicken Sie auf die Schaltfläche Komponente hinzufügen> Skript> Rad .
3) Wiederholen Sie die Schritte 1-2 noch dreimal für WheelFR, WheelRL, WheelRR .

Jedes Rad sollte folgende Komponentenstruktur haben:

Bild

Einstellungen für die Räder.

1) WheelFL:

Bild

2) WheelFR:

Bild

3) WheelRL:

Bild

4) WheelRR:

Bild

Die Haupteinstellungen sind hier:

Radius : - der Radius des Rades, dieser Wert muss abhängig von der Größe des Rades gewählt werden.
Suspresion reisen: - Fahrzeugfederung, in den vorhergehenden Teilen wurde diesbezüglich näher darauf eingegangen.
Dumping : - Federsteifigkeit.

Die übrigen Einstellungen sind ebenfalls sehr wichtig, aber ich denke, wir werden sie im nächsten Teil analysieren.

Mit Rädern fertig.

Hinzufügen eines Schwerpunkts und eines Autocolliders


Einen Schwerpunkt schaffen


1) Klicken Sie mit der rechten Maustaste auf die Prefabs unseres Autos> Create Empty .
2) Benennen Sie unser leeres Objekt mit dem Namen GameObject in CoG (kurz für Schwerpunkt) um.
3) Stellen Sie die Koordinaten in der Transformationskomponente des CoG- Objekts wie in den Abbildungen ein.

Es sollte

Bild
Bild

ungefähr so aussehen: Der Schwerpunkt sollte ungefähr vor dem Boden des Autos liegen. Im Prinzip wird es jedoch für jedes Auto individuell konfiguriert. All dies wird während des Testens getestet.

Erstellen eines Colliders für eine Karosserie


1) Klicken Sie
mit der rechten Maustaste auf die Prefabs unseres Autos> Create Empty. 2) Benennen Sie unser leeres Objekt mit dem Namen GameObject in Collider_body um.
3) Fügen Sie die Box Collider- Komponente hinzu. (Add component> Physics> Box Collider)
4) Nehmen Sie die Einstellungen der Komponenten wie in der Abbildung vor. Vielleicht hast du noch andere Einstellungen, wie der Box Collider das Auto abdecken soll .

Bild
Bild
Bild

Collider wird benötigt, um Kollisionen und die richtige Physik des Autos zu erzeugen.

Erstellen eines Colliders für ein Autodach


1) Klicken Sie mit der rechten Maustaste auf die Prefabs unseres Autos> Create Empty .
2) Benennen Sie unser leeres Objekt mit dem Namen GameObject in Collider_head um .
3) Fügen Sie die Box Collider- Komponente hinzu (Add component> Physics> Box Collider).
4) Nehmen Sie die Einstellungen der Komponenten wie in der Abbildung vor. Vielleicht hast du noch andere Einstellungen, wie der Box Collider das Auto abdecken soll .

Bild
Bild
Bild

Der Collider wird benötigt, um sicherzustellen, dass ein Gegenstand auf das Dach des Autos fällt, damit er mit dem Dach und nicht mit der Karosserie des Autos interagiert.

Im Allgemeinen sollten Sie so etwas bekommen:

Bild

Natürlich können Sie Mesh Collider verwenden, aber Mesh Collider benötigt mehr Ressourcen als primitive Objekte. Es liegt an dir.

Erstellen und konfigurieren Sie ein Auto


Wir haben also die Räder teilweise aussortiert, konfigurieren sie später und fügen jetzt Komponenten zu unserem Fertighaus hinzu.

1) Wählen Sie das Auto-Fertigteil aus.
2) Klicken Sie auf der Registerkarte Inspector auf die Schaltfläche Add Component> Script> Car Controller .

In Skript CarController und Abhängigkeit Knarren Antrieb

3) Klicken Sie auf die Schaltfläche Hinzufügen der Komponente> Script> die Sound - Controller - Software .
4) Klicken Sie auf die Schaltfläche Add Component> Script> Anti Roll Bar .
5) Wiederholen Sie Schritt 4.
6) Klicken Sie auf die Schaltfläche Add Component> Script> Aerodynamic Resistance .
7) Klicken Sie auf die Schaltfläche Add Component> Script> Traction Helper.

Bild

Nach dem Hinzufügen der Skripte nehmen wir die folgenden Einstellungen für unsere Skripte vor.

Bild

Bild

Bild

Hauptkamera - Einstellungen


Der letzte Teil bleibt, nehmen wir die Einstellungen für unsere Kamera vor.

1) Klicken Sie auf die Schaltfläche Komponente hinzufügen> Skript> Autokamera .
Wir nehmen die folgenden Einstellungen vor:

Bild

Ziel - das Objekt, auf das die Kamera fokussiert.
Höhe - Die Höhe der Kamera.
Distance_to_back - Entfernungen vom Objekt zur Kamera.
Distance_from_back - Abstand vom Objekt zur Kamera nach Beschleunigung des Fahrzeugs (Näherungseffekt).

Natürlich müssen alle diese Einstellungen für jedes Fahrzeug individuell konfiguriert werden. Eine Beschreibung aller Einstellungen ist nicht vorgesehen, da ich sie auch selbst verstehe und die Parameter nicht beschreiben wollte, bei denen 100% nicht sicher ist. Dieser Leitfaden kann jedoch der Ausgangspunkt für die Erstellung Ihres eigenen Automodells sein.

Jetzt auch beliebt: