Intro


Hier programmierst Du nicht direkt eine Spiel. Du entwickelst eine kleine Animation, die Du als Trailer für Deine Spiele oder z.B. für eine Video-Kanal verwenden kannst.



Das hier ist eine gute Einführung in Unity. Dabei lernst Du auch einiges was Dir spähter hilft mit Unity ein Spiel zu schreiben.

Der Boden


Lege eine neues Unity-Projekt an. Dabei ist es wichtig, dass Du "3D" auswählst, denn das Projekt wird ein 3D-Projekt.
Erzeuge nun als Boden eine Eben (Plane) in der Ansicht "Hierarchy" mit der Schaltfläche "create".



Die Ebene, die Du erhälst ist viel zu klein, denn der Boden soll ja bis zum Horizont zu sehen sein. Ändere desshalb die Größe der Ebene in x und z Richtung (das sind die Richtungen nach links und rechts und nach vorne und nach hinten - nach oben und unten wäre in diesem Fall y). Du änderst die Werte in dem Fenster "Inspector". In dem Fenster "Inspector" siehst Du immer die Informationen zu dem Object, das Du zuletzt im Fenster "Hierarchy" angeklickt hast (Das Fenster "Hierarchy" ist das, das vorher zum Erzeugen der Ebene verwendet wurde).
Ändere also den X- und Z-Wert für die Größe der Ebene auf 100 (das sind die Werte in der Zeile Scale im Bereich Transform):





Die Stadt


Lege nun für das erste Hochhaus der Stadt einen Quader (cube) an. Das funktioniert wie bei der Ebene, nur dass Du diesmal nicht plane, sondern cube auswählst (auch den cube findest Du bei den 3D-Objekten). Damit der cube auch wie ein echtes Hochhaus aussieht, verößere ihn etwas in der Y-Richtung (also nach oben). Du änderst die Werte wieder, wie eben, in dem Fenster "Inspector" der Zeile Scale im Bereich Transform. Denk daran: Wenn Du den Cube nicht im Fenster "Inspector" siehst, musst Du ihn einfach nochmal im Fenster "Hierarchy" anklicken.

Lege nun für das zweite Hochhaus der Stadt noch einen Quader (cube) an. Du weisst jetzt ja wie das geht. Dabei wirst Du feststellen, dass Du den zweiten cube in der Szenendarstellung nicht siehst. Das liegt daran, dass das zweite Haus gneau auf dem (oder besser in dem) ersten Haus steht. Um das zu beheben, verschiebst Du nun den zweiten cube. Dazu änderst die wieder Werte in dem Fenster "Inspector" im Bereich "Tranform", diesmal aber in der Zeile "Position". In dem Du hier die Werte für x und Z veränderst kannst Du das Hochhaus beliebig in der Ebene verschieben.



Baue jetzt mit weiteren cubes deine Stadt zusammen. Erzäuge für jedes Hochhaus einen Cube und verschiebe ihn. Denke auch daran, dass Du mit scale die cubes auch unterschiedlich hoch und breit machen kannst. Vergiss auch nicht, an ein Ende der Stadt ein ganz breites Haus zu bauen. An diesem Haus wird am später der Schrifzug Deines Trailers zu sehen sein. Wenn Du mit Deiner Stadt zufrieden bist, arbeite mit dem nächsten Punkt weiter.



Der Kamerawagen


Lege nun als "Kammerawagen" eine Kugel (sphere) an und verschiebe sie so, dass seitlich und nach hinten zu dem breiten Haus in Deiner Stadt versetzt ist. Das Ziel ist es nämlich erst seitlich und dann, nach einer Drehung, von vorne auf dieses Haus durch die Stadt hindurch zu zu fahren.



Nachden Du die Kugel angelegt und an der richtigen Stelle positioniert hast, erzeugts Du für sie noch ein Script. In einem Script kann ein Programm für eine Komponente definiert geschrieben werden. Dazu schaust Du Dir die Kugel im Inspector an, und klickst dort ganz unter auf "Add Comopnant" und wählst dann "New Script". Gib dem Script den Namen "Bewegung" und schaue ob als Sprache "C Sharp" dort steht (sonst musst Du es entsprechend einstellen).



Nachdem Du das Script angelegt hast öffnest Du es, um Dein Proramm zu schreiben. Es ist etwas kompliziert mit Worten zu beschreiben wie ein Script geöffnet wird. Das follgende Bild sollte es aber klar machen:



In dem neuen Editor, der jetzt gestartet ist, kannst Du Dein Programm für den Kamerawagen eingeben. Unity hat schon ein paar Zeile für Dich geschrieben. Passe das Programm entsprechend an:



Mit der Variable "Zeit" werden die Bewegungsabschnitte gesteuert. So wird erreicht, das der Kamerawagen sich erst seitlich zum breiten Gebäude und dann darauf zu bewegt. Die beiden Bewegungsphasen werden in den zwei "if"-Abfragen behandelt. Für die eigentliche Bewegung (also Verschiebung) verwendest Du den Befehl "transform.position" der als Parameter je einen Wert für die neue X-, Y- und X-Position bekommt.
Nun speicherts Du das Script mit "File"->"Save" und wechselst zu Unity (Du must den Edito für das Script nicht zu machen). Mit dem Anklicken des "Play"-Schalters () oben in der Mitte von Unity startest Du das Programm. Solltest Du einen Fehler gemacht habe so erscheint unten rechts in Unity in roter Schift eine Fehlermeldung. Diesen Fehler musst Du dann erst noch beheben. Leider sind die Fehlermeldungen auf Englisch. Wenn Du aleine nicht weiter kommst frage einen Deiner DojoTutoren oder eine andere Person die Englisch kann um Hilfe.
Wenn alles richtig ist, siehst Du nun wie die Kugel sich so bewegt wie es geplant war. Es kann aber sein, dass sich die Kugel durch eine Haus bewegt, den immerhin sieht ja jede Stadt anders aus. Das kannst Du aber beheben indem Du die Zahlen in den beiden "IF"-Bedingungen im Script änderst. Spiel ein wenig damit herum, bis die Kugel den Weg nimmt der Dir gefällt. Zur Not kannst Du auch Deine Stadt ein wenig anpassen.



Die Kamera am Kamerawagen befestigen


Damit es jetzt so aussieht, als wenn der Zuschauer selber auf der Kugel sitzt, wenn diese sich bewegt, befestigst Du nun die Kamera an der Kugel. Von Anfang an war ja schon eine Kamera in dem Projekt. Dabei ist die Kamera aber eigentlich eher nur der Punkt von dem aus die Kamera aufnimmt. Um die Kamera zu etwas Griffigerem zu machen, das man auch wirklich an einer Kugel befestigen kann, braucht diese noch eine Art Körper. Das erreichst Du indem Du die Kamera im "Inspector" anschaust und wieder ganz unten auf "Add Component" gehst. Wähle dort "Physics"->"Rigidbody" aus.
Bevor Du nun zu der Kugel wechselst, solltest Du noch die Kamera genau auf die Position der Kugel legen. Trage hierf├╝r im Transfrom-Bereich der Kammera, die gleichen Werte ein wie die der Kugel.
Wechsele nun zu der Kugel und füge dort "Physics"->"Fixed Joint" ein.
Über Fixed Joints kann man zwei Objekte (aber nur zwei Objekte mit Rigidbody) so miteinander verbinden, dass sich das eine immer mitbewegt, wenn sich das andere bewegt.
Den so erzeugten Fixed Joint verwendest Du nun, um die Kamera an die Kugel zu binden. Wie das genau geht siehst Du im folgenden Bild:




Wenn Du magst kannst Du kurz mal mit () ausprobieren wie das jetzt aussieht.
In der Tat sieht das sehr verwirrend aus, weil die Kugel anfängt sich zu drehen. Das liegt daran, dass die Kugel sich durch das Programm im Script nach vorne bewegt. Weil es aber eben eine Kugel ist, fängt sie dabei an zu rollen und dreht sich so. Und wegen dem Fixed Joint, bewegt sich die Kamera dann mit. Das Problem ist also, dass sich die Kugel so verhält wie eine reale Kugel. Zu Glück kannst Du das ausschalten. Gehe dazu in den Rigidbody von der Kugel und setzt dort den Haken bei "is Kinematik".
Probiere das Programm nochmal mit () aus. Es sieht nun schon besser aus. Das Problem ist, dass an der zweiten Hälfte der Bewegung das Bild seitlich an Dir vorbeifährt. Das liegt daran, dass die Kugel sich zunächst nach vorne, dann aber zu der Seite bewegt. Dadurch wird die Kamera aber auch nicht gedreht. Damit sich als die Kamera dreht, drehst Du eben auch die Kugel an der Stelle an der sie ihre Richtung wechselt. Dazu äderst Du das Script der Kugel wie folgt:



Die mittlere "IF"-Bedingung übernimmt nun das drehen der Kugel.

Stadt und Boden einfärben


Die Animation sieht im Moment noch etwas langweilig aus, weil alles die selbe Farbe hat. Um das zu ändern erstellst Du nun unter "Assets->Create->Material" ein neues Material. Gib ihm einen Namen der Dir auch späner noch sagt wozu es da ist (z.B. Boden_Material(Schritt 3 im Bild)). Klicke dann auf die Pipette um eine Farbe auzuwählen (Schritt 4 im Bild) und wähle eine Fahrbe aus.



Das Ganze machst Du dann gleich noch einmal um die Fahrbe für die Hochhäuser zu erzeugen.
Schau Dir nun im "Inspector" die Plane für den Boden an und gehe zu dem Bereich "Mesh Renderer". Klicke dort auf den kleinen Kreis mit dem Punkt in der Mitte bei "Materials->Element 0" und wähle dann das Material für den Boden aus.



Mache das ganze auch für die Hochhäuser.

Der Text


Den Text erzeugst Du wie die anderen Objekte im Fenster Hierarchy mit "Create->3d Object -> 3D Text". Auch er hat im "Inspector" einen Bereich "Transform" über den Du den Text so verschieben und vergrößern kannst bis er direkt auf der breiten Hausseite des breiten Hauses in Deiner Stadt liegt.

Gratulation! Du hast das Intro fertig gestellt! ... und jetzt?


Probier mal:
Die Kamera kann ja über viel mehr Ecken zum Ziel gelangen.
Könnte die Kamera auch in die Stadt schweben oder aus ihr herausfliegen?
Vielleicht gibt es in Deiner Stadt ja Gebäde in verschiedenen Farben.
In der Stadt gibt es vielleicht auch Tunnel oder einen Torbohgen. Wie wüde es wohl aussehen, wenn die Kammera dort hindurch fährt?

Schwer:
Bekommst Du es hin, dass man in dem Trailer, die ganze Zeit während der Fahrt die Motorhaube vom Kamerawagen sieht?