VL, 2 SWS. Fr. 10-12 in Raum: H2

Your Link
01 Einführung
Vorlesung vom 20.04.2012
Folien (PDF)

 

02 Animation
Vorlesung vom 27.04.2012
Folien (PDF)

 

03 Shading
Vorlesung vom 04.05.2012
Folien (PDF)

 

Die Vorlesung am 11.05. fällt aus

04 Computerarchitektur

05 Einführung in UnityScript
Screencasts und Skripte vom 25.05.2012

01 Skripting | skripting.js
02 Variablen | variablen.js
03 Position | position.js
04 Bewegen | bewegen.js
05 Bedingte Anweisungen | BedingteAnweisungen.js
06 GetKey | GetKey.js

06 Grundlegende Algorithmen
Screencasts und Skripte vom 02.06.2012

Animation
AnimationSkript | AnimationSkript.js
PowerUp | PowerUp.js
LevelChange | LevelChange.js
Explosion | Explosion.js

07 Physik
Screencasts vom 08. Juni 2012

Projektdatei Gravity.zip (9.8 MB)
01 PhysX Projekt
02 Game Manager
03 Box
04 Jedi Force
05 Create Box
06 Bullets
07 Explosion

08 GUI
Screencasts vom 15. Juni 2012

Projektdatei der Screencasts (25,3 MB)
1. 3D-Texture
2. Mouse-Events
3. Das GUI-Objekt
4. Das GUILayout-Objekt
5. GUI-Skins
Projektdatei mit großem Bonuslevel (193 MB)

09 KI
Projekt vom 22. Juni 2012

10 Gamemaker

Gamemaker ist ein Tool für die Erstellung von 2D-Spielen und ab sofort in zwei Studio-Lizenzen im iLab verfügbar.

11 Unity und Arduino

Projekt vom 20. Juli 2012

Heute verbinden wir einen Arduino mit Unity. Der Arduino verarbeitet Daten von Sensoren, z.B. Drehpotis, Licht-, ohder Biegesensoren und kann Aktoren wie LEDs, Servos oder eine Funksteckdose ansteuern. Mit Hilfe eines Ethernet-Shields ist unser Arduino sogar in der Lage, als Webserver aufzutreten.

Als erstes schreiben wir für den Arduino eine Web-Api mit Clean URLs, um die wichtigsten Arduino-Funktionen über den Browser anzusteuern.

Als nächstes benötigen wir ein Unity-Skript, das die passenden URLs aufruft. Kern ist das WWW-Objekt zum Verarbeiten von Webanfragen. Das Problem ist hierbei der Umstand, dass wir nicht wissen, wie lange die Antwort benötigen. Wir müssen also mit einer Coroutine arbeiten, die mit ‚yield‘ beliebig unterbrochen, angehalten oder verzögert werden kann. Dies geht aber nicht in der Update-Funktion, weil die ja pro Frame aufgerufen wird und gerade nicht unterbrochen werden kann. Also schreiben wir eine eigene Funktion Loop() die mit while(1) in einer Endlosschleife dreht und dabei permanent den Arduino per Webanfragen kontaktiert. Da der Arduino nicht als Unity-Server eingerichtet wird, beschränken wir uns auf HTTP-Anfragen.

Das Skript LightTrigger schaltet bei Betreten einer Trigger-Zone ein Licht ein und aus und sollte an ein GameObject mit Trigger gehängt werden,

Das Skript LightDimmer ist für den Einsatz an Lampen bestimmt und dimmt ihre Helligkeit.

Die Skripte sind nur im Zusammenspiel zu verstehen und verlassen sich auf bestimmte Konfigurationen sowohl beim Arduino als auch bei GameObjects in Unity. Insofern sind sie nicht für den robusten Feldeinsatz geeignet, sondern müssen für jedes Projekt individuell angepasst werden. Die Technik ermöglicht die Verknüpfung beliebiger Parameter in der Spielwelt (Helligkeit, Schwerkraft, Animationen etc.) mit Sensoren (Druck, Helligkeit, Lautstärke) und Aktoren (Motoren, Licht, Töne) in der Echtwelt. Mögliche Anwendungen sind mixed reality platform games oder kooperative escape-the-room-Spiele, deren Spielziel darin besteht, über verschiedene Sinnes-Modalitäten eine gemeinsame Sprache zu finden.