Mein Asset im Asset Store: AI Driver Toolkit
Nach etlichen Tagen und Nächten des Planens und Programmierens war es letzte Woche endlich soweit:
Pünktlich zu Ostern hat Unity hatte mein erstes kleines, bescheidenes Unity-AddOn, das AI Driver Toolkit, in ihren Asset Store mit aufgenommen.
Was kann das AI Driver Toolkit?
Das Toolkit hab ich dafür entwickelt, um Fahrzeuge mit wenigen Klicks mit Künstlicher Intelligenz auszustatten. Ursprünglich war es nur für mich gedacht. Aber nachdem ich bemerkte, dass auch andere daran Interesse haben, entwickelte ich es weiter zu einem kleinen eigenen Produkt.
Die Fahrzeugsteuerung basiert auf Waypoints, die ich ja bereits in den letzten beiden Tutorials erklärt hatte. Ergänzt hab ich das System um ein kleines Respawn-System, welches die Fahrzeuge wieder auf die richtige Spur verhelfen soll, sollten die KI-Fahrzeuge mal in einen Crash oder ähnliches verwickelt werden.
Der letzte Baustein meiner Unity-Extension ist ein Feature namens Speed Areas. Auch wenn der Name vielleicht nicht ganz richtig ist, so beschreibt er gut, was gemeint ist: Der Entwickler kann die Fahrgeschwindigkeiten für einzelne Streckenabschnitte vorgeben.
So sind z.B. hohe Geschwindigkeiten auf Geraden möglich, während in Kurven etwas langsamer gefahren wird.
Das AI Driver Object
Als Basis zur Entwicklung eines neuen AI Fahrzeuges dient immer das AI Driver Object. Diesem müsst Ihr nur Euer Fahrzeug-Modell hinzufügen, die Rad-Objekte meinen Containern zuweisen, kurz die Objekte zentrieren und das war es auch schon so ziemlich.
Auf meiner Produktseite für das AI Driver Toolkit hab zwei (Beta-) Videos hochgeladen, in denen ich das Vorgehen noch einmal zeige.
Für einen schnellen Einstieg liegt dem Toolkit übrigens noch ein fertig konfiguriertes Fahrzeug sowie eine komplette Demo-Szene bei.
Problematik Waypoints
Was am nervigsten meiner Meinung nach bei Waypoint-Systemen ist, ist das Erstellen dieser Wegpunkte und das Zuweisen dieser der jeweiligen KI.
Gerade wenn ich mehrere Fahrzeuge bzw. Strecken zu verwalten hab, verliere ich da gerne mal die Übersicht. Hierfür hab ich einen Waypoint-Editor entwickelt, mit dem der Entwickler wirklich im Handumdrehen Waypoints erstellen kann und sich um nichts weiter kümmern muss.
Auch das Hinzufügen verschiedener Waypoint-Strecken für unterschiedliche Fahrzeuge ist kinderleicht, genauso wie das Nutzen der gleichen Strecken durch unterschiedliche Fahrzeuge.
Fahrverhalten anpassen und optimieren
Um die Fahrzeuge Euren Bedürfnissen anzupassen, bietet Euch das AI Driver Toolkit jede Menge Parameter an, mit denen Ihr das Fahrverhalten beeinflussen könnt. Wenn Euch dies nicht reicht, dann habt Ihr auch noch die Möglichkeit jeden einzelnen WheelCollider zu modifizieren.
Beispiel Game
Wenn Ihr mal ein kleines Beispiel-Projekt spielen wollt, wo ich zwei Fahrzeuge mit dem AI Driver Toolkit ausgestattet habe, dann schaut Euch mal dieses Beispiel Game an. Achtung, das Spiel dient nur als Anschauungsobjekt, es ist kein vollständiges Online-Game!
Fazit
Es ist schon ein großer Schritt für einen Entwickler aus der Deckung herauszukommen, um sein Produkt der Öffentlichkeit zu präsentieren. Aber jetzt ist dieser getan und ich hoffe nun, dass die Kritik mich nicht völlig zerreist 😉
Aber ein erster Erfolg war ja bereits die Aufnahme in den Unity Asset Store 🙂
Gruß
Carsten
Der Anfang ist getan und ich wünsche dir viel Erfolg im Store!
Was ich bis jetzt sehen konnte, gefällt mir schon recht gut. Jedoch vermisse ich noch eine Logic um z.B. Hindernissen auf der Strecke auszuweichen. Das bedeutet natürlich, dass der KI Wagen seine Route verlassen muss und parallel dazu fahren müsste. Wäre schön, wenn du sowas noch einbauen könntest, auch wenn es eine harte Nuß ist! 😉
Hallo Andreas,
da hast Du absolut Recht und ich hab mir auch schon einige Gedanken dazu gemacht. Eine Idee ist schon da, aber es fehlen noch ein, zwei Mosaikstückchen, um es vernünftig umzusetzen.
Die Geschwindigkeit ist da z.B. ein großes Problem – ich sag nur Elch-Test.
Hallo Carsten,
Ich habe deine Auto Tutorialreihe Komplet durch und bastel gerade am meinem Auto rum, Hier meine kleine Lösung zu dem Elch Test, und zwar ändere ich da den SteerAngle des schneller ich fahre desto weniger kann ich lenken.
max SteerAngle ist 30, min SteerAngle ist 10. die Formel kann man ja noch anpassen.
void SetupSteerAngle(){
if (currentSpeed 100){
maxSteerAngle = 10F;
} else {
maxSteerAngle = (-0.2F * currentSpeed + 30F);
}
}
Ich wolte mich auch nochmal bedanken, deine Tuts sind super!
grüße aus Bielefeld
Jura
Ähnliche Parameter gibt es bereits in dem Toolkit
Für gewisse Fälle müsste es auch funktionieren. Nur wenn die KI sehr schnell unterwegs ist, sind selbst fünf Grad zu viel. Aber ich hab da schon einen gedanklichen Ansatz. Danke 🙂
void SetGravity() {
rigidbody.AddForce(Vector3.up * -5000);
}
Schon mit AddForce rumgespielt? wenn du es gelöst hast, ruhig posten 😉
Hi Jura,
das wäre natürlich eine Idee. Mir schwebt da zwar noch was anderes im Kopf herum, aber ich werde beides testen und dann mal weiter schauen! Wenn es sich für einen Artikel eignet dann kann ich das gerne auch posten 🙂
Gratuliere zum ersten Asset Store Inhalt, war nur eine Frage der Zeit. 🙂
Danke, Danke 🙂
man can you send me this project? i haven’t got any money for this. i need this. please send me?? i’m waiting a response
mail: freaka61@gmail.com
Hey englishboy,
I’m glad about your interest. But if you need it so urgent, you should buy it 😉