Unity3D KI/AI Tutorial: #2 – Questgeber – Dialoge mit NPCs
Weitere Tutorials zum Thema Künstliche Intelligenz in Unity findet Ihr in der Übersicht dieser Unity3D KI/AI Tutorial Serie.
Nachdem ich mit Euch im ersten KI Tutorial ein kleines Test-Szenario, bestehend aus einem Player-Charakter und einem Non Player Character, erstellt habe, will ich in diesem Teil den NPC mit etwas Künstlicher Intelligenz ausstatten.
Tutorial-Inhalt
Im ersten Schritt werden wir den NPC dazu bringen, dass er mit uns spricht, wenn unser Spiel-Charakter vor ihm steht. Im Tutorial realisieren wir dies über Textausgaben. Genauso könnte man auch Animationen mit Sprach-Samples abspielen. Aber hier soll es nur um das Wesentliche gehen.
Im nächsten Schritt bzw. Tutorial werden wir dann diese KI erweitern, sodass wir aus dem NPC einen Quest-Geber machen. Dieser wird dann, wenn wir seine Aufgabe annehmen, schließelich anders reagieren als zuvor. Und der erste kleine Schritt in Richtung Künstliche Intelligenz ist getan.
Was aber viel wichtiger ist, sind die unterschiedlichen Elemente, die wir in diesem Tutorial verwenden werden. Die im Tutorial benutzten Trigger zum Beispiel eigenen sich ideal, um alle Arten von einfachen KI-Aktionen auszulösen.
So kann beispielsweise das Schießen einer Kanone kann genauso ausgelöst werden wie das Öffnen eines Zauberportals oder das Zeitmessen beim Überqueren einer Ziellinie.
Video-Tutorial
Wie ich in diesem Zusammenhang die Trigger nutze und wie ich den Dialog programmiere, seht ihr aber im folgenden Video.
Hat Euch das Tutorial gefallen? Hoffentlich hat den Javascript-Programmierern unter Euch jetzt nicht die Nutzung von C# durcheinander gegracht. War denn soweit alles okay und verständlich?
Im nächsten Tutorial werden wir uns dann darum kümmern, dass aus dieser sehr einfach gehaltenen Künstlichen Intelligenz einen echten Questgeber machen.
So werden wir natürlich mit dem Spieler interagieren und auf verschiedene Zustände reagieren müssen. Ich hoffe, dass Euch das Thema gefällt und Ihr auch das dritte Tutorial dieser Reihe anschaut.
Hier geht es zum nächsten Unity3D KI/AI Tutorial: #3 – Questgeber programmieren – Aufgaben übertragen .
Ich als Js´ler der kein Stück
C# kann, hat alles verstanden.
Vieles aus C# kenn ich aber auch durch Java.
Die beiden sind sich im Syntax ja ziemlich ähnlich.
Aber dennoch: Super erklärt!
lg Kevin 🙂
Hallo Kevin,
vielen Dank für Deine Rückmelung und natürlich für das Lob!
Ich hatte schon etwas bedenken, dass ich die Leute etwas vor den Kopf stoße, wenn sie bisher mit C# keine Berührung hatten. Aber dann hat das ja anscheinend geklappt 🙂
Carsten
hey , carsten!
find ich cool das du dass mit C# machst weil das werden wir in der schule bald lernen 😉 und ich bin auch JS-Mensch ^^ und hab alles verstanden, wie kevin gesagt hat, sind sich der syntax ziemlich ähnlich. 😉
PS: ich hab den banner da oben gelesen, das du noch developer suchst. ich meld mich sehr gerne als freiwilliger, kann auch modelln 😉
mfg
tomkro
@Thomas: Das mit der Syntag Ähnlichkeit war auf Java bezogen und nicht
auf JavaScript. Ist ein schon ein „kleiner“ Unterschied^^
@Carsten: Warum hast Du das eigentlich mit C# gemacht?
Die OnTriggerEnter() Fkt. gibts doch auch in Javascript.
@Thomas: Das Banner ist ein Werbebanner von der Firma Weltenbauer. Da kannst Du dich gerne mal melden 🙂
@Kevin: Da hast Du absolut recht. Aber die Serie wird ja noch etwas länger.
Im Grunde hätte ich die Serie auch in Javascript machen können. Aber das Entwickeln unter C# ist meiner Meinung nach wesentlich komfortabler. Gerade wenn der Code etwas komplexer wird, kommen die Vorteile von C# zum Tragen (Intellisense, Debugging-Unterstützung, Datentypen, OOP,…)
Normalweise programmiere ich sogar mit Visual Studio, was dann noch einige Features mehr für C# bietet als MonoDevelop, aber das wollte ich wegen der Nachvollziehbarkeit nicht machen. MonoDevelop geht ja auch 😉
Ich hoffe, dass es für die JS Programmierer okay ist, nun mit C# weiter zu machen. Wie gesagt, die Unterschiede sind echt nicht so gravierend 🙂
Gruß Carsten
Also wirst Du in den nächsten Tutorials mit C# weiter programmieren?
An sich gar nicht so schlecht, da könnte man z.b. die Datenbank
Nutzung so wie ich es mir gewünscht habe gut mit einbeziehen, was ja mit Javascript nicht möglich ist. 🙂
Wirst Du jetzt ein FPS programmieren oder gehst du später wieder
zwecks KI auf das Rennspiel zurrück?
Gruß Kevin
@Kevin: Richtig, ich werde erstmal mit C# weitermachen.
Ich werde hier kein ganzes Game entwickeln, so wie bei dem Autorennspiel. Dieses Mal werde ich viele kleine Szenarien entwickeln, um unterschiedliche KI-Themen anzusprechen, die dann sowohl FPS, RPGs wie auch Rennspiele betreffen.
Was die Datenbank angeht, muss ich mal sehen, ob ich das in dieser Reihe irgendwie unterbringen kann oder ob ich das gesondert behandel.
Gruß Carsten
Kann man Dich irgendwie in einem Messenger erreichen?
ICQ, MSN etc. ?
Würde gerne mit Dir mal etwas besprechen.
Du kannst mir ja eine E-Mail schicken.:)
Gruß Kevin
Hallo,
ein super toller Blog, na der wird mir von grossen Nutzen sein. Viele nützliche Informationen. Genial. Was will man mehr :):)
achso 😉 danke!
C# ist echt klasse das find ich Super das du auch mit C# programmierst die Vorteile der Sprache sind Top vorallem mit XNA hat man schon die halbe miete:mrgreen: