Blender Tutorial
 Kontrolle über dynamische Objekte (Controlling a Dynamic Object) Beginner Using sensors, controllers and actuators 2000 07 24 
>> zurück zu www.psycho3d.de << Bart Veldhuizen 
Einführung
Nachdem wir eine Welt gebastelt haben, ist es jetzt Zeit, etwas Interaktion einzubauen. In diesem Tutorial benutzen wir eine vorgefertigte Labyrinth-Szene und lassen darin einen Spieler umherwandern. Die Prinzipien sind relativ einfach und lassen sich auf jedes Objekt in der GameEngine anwenden.

Ladet erst einmal die Datei runter und öffnet sie in Blender. [von mir erstellte Ersatzdatei]

Download:  download Maze.zip
Die Physik vorbereiten
Zuerst muss ich die Physik für meinen Spieler einrichten, wenn ich das nicht mache, wird er nicht auf Kräfte wie Gravitation und Reibung reagieren. (Drückt p im 3D Fenster, um den interaktiven Modus zu starten, und ihr seht was ich meine - das Objekt sitzt nur in der Gegend herum. Drückt esc um die Spielsimulation zu stoppen).

Wählt die Kugel aus und drückt f4. Das bringt euch zu den RealtimeButtons.
Die Buttons auf der linken Seite kontrollieren die physikalischen Eigenschaften des Objekts. Zuerst klickt ihr auf "Actor", damit legt ihr fest, dass euer Objekt auch tatsächlich etwas in eurem Spiel tun kann. Zwei neue Buttons, "Ghost" und "Dynamic", erscheinen. Wählt "Dynamic" - damit wird Blenders Physiksimulation für das Objekt aktiviert.

Drückt wieder p um die Simulation zu starten, und schaut zu, wie euer Objekt auf den Boden fällt. Wegen Blenders eingebauter Physik wird der Aufprall auf den Boden automatisch erkannt und das Objekt fällt nicht durch.
Sensoren
Real-time buttons.
Echtzeit-Buttons.
Sensor parameters
Sensorparameter
Sensoren sind die Augen und Ohren für Blender. Erzeugt jetzt einen, indem ihr den "Add" Button neben dem Namen eures Objekts anklickt ("Character" im Fall der Beispieldatei). Die folgende Zeile erscheint. [wir sind hier in der "Sensors" Spalte (links)]
Sensor types.
Sensortypen.
Wenn ihr auf das "X" Symbol klickt, wird dieser Sensor aus der Sensorliste des Objekts gelöscht. Klickt auf den orangenen Pfeil, um die Sensorinformation zu- und aufzuklappen. Der untere Abschnitt enthält die Information über diesen Sensortyp - andere Sensortypen haben andere Parameter. Der Standardsensor ist "Always". Dieser Sensor gibt immer nur Wahr oder Falsch zurück. Klickt darauf, um einen anderen Sensortyp auszuwählen.
Recorded keystroke.
Der Tastatursensor.
Wählt "Keyboard". Damit dieser Sensor auf nach oben anspricht, klickt ihr in das "Key" Feld. Wenn dann "Press any key" angezeigt wird, drückt ihr nach oben um diese Taste einzutragen. Wenn ihr das gemacht habt, sieht der Sensor so aus: [Bild unten]
Controller
Die zweite Reihe von Buttons sind die Controller. Sie werden dazu benutzt, die Daten von verschiedenen Sensoren zu kombinieren. In unserem Fall gibt es nicht viel zu kombinieren - ich will nur das Ereignis an den Actuator [Umsetzer, Antreiber] weitergeben. Klickt auf "Add" in der Spalte der Controller und lasst den Controllertyp beim Standard "AND". Ein AND Kanal in Blender gibt das Signal einfach weiter, wenn nur eines kommt.

Als nächstes verbindet ihr den Ausgang des Sensors mit dem Eingang des Controllers, indem ihr auf den gelben Kreis rechts beim Sensor klickt und die Maus mit der Linie, die erscheint, zum gelben Ring links beim Controller zieht.

Um diese Verbindung zu löschen, wählt ihr sie durch Überfahren mit der Maus und drückt x.
Actuator
Showing local coordinates.
Die lokalen Achsen anzeigen.
Jetzt müssen wir eine Aktion veranlassen. Das macht man in der dritten Spalte: die Actuatoren [?!]. Fügt einen neuen Actuator ein und lasst ihn beim Standardtyp "Motion". Mit diesem Actuator könnt ihr verschiedene Kräfte auf ein Objekt wirken lassen oder es auch Verschieben. Bei allen Einstellungen habt ihr die Wahl, welches Koordinatensystem ihr verwenden wollt. Normalerweise arbeitet der Objektactuator mit dem Koordinatensystem des Objekts. Um diese Koordinaten anzuzeigen, wählt ihr das Objekt und wechselt zu den EditButtons (f9) [oder bei neueren Versionen zu den ObjectButtons F7]. Auf der linken Seite klickt ihr dann auf "Axis" [um die Achsen anzuzeigen].

In diesem Bild seht ihr, dass eine Kraft nach vorne in die Y Richtung wirken muss, und dass Drehungen (wenn ihr nach links oder rechts drückt) um die Z Achse ausgeführt werden müssen. Jetzt gebt ihr im "Force" Feld für Y den Wert 10.00 ein. Das ist das zweite Feld in der Force Zeile. Verbindet den Controller mit dem Actuator für nach oben und drückt p um euer Spiel zu starten. Jetzt solltet ihr euren Spieler nach vorne bewegen können.

Was ist jetzt los? Wenn ihr nach oben gedrückt habt, hört euer Objekt nicht mehr auf, sich zu bewegen! Wenn ihr an die Physikengine denkt, ist die Lösung offensichtlich - fügt einfach etwas Dämpfung dazu! Schaut auf der linken Seite der EchtzeitButtons und erhöht den Wert im "Damp" Feld.
!
Wenn ihr mehr Kontrolle über das physikalische Verhalten eures Objekts haben wollt, erzeugt ihr ein Material für euer Objekt und wählt den "DYN" Button im Material (f5).

Unter anderem könnt ihr die Reibung und den Widerstand beim Springen für ein Material einstellen. Experimentiert damit, um eure Umgebung zu verbessern!
Jetzt macht weiter und erzeugt Sensoren, Controller und Actuatoren für die anderen Pfeiltasten. Für nach unten benutzt ihr eine Kraft von -1 in Y Richtung. Für nach links und nach rechts benutzt ihr 1 und -1 im "Torque" Feld Z (rechts).

Das war's! Jetzt geht ihr in die Oberansicht und drückt p um euren Spieler durch das Labyrinth zu steuern.
!
  • Um die Ansicht im Echtzeitfenster zu verschieben, haltet die mittlere Maustaste und zieht.
  • Für eine komplette Übersicht über Blenders Spielfunktionen schaut ihr bitte in Carstens gameBlender Documentation
übersetzt von:  pat  -  www.psycho3d.de  -  26.12.2003  -  überarbeitet 02.05.05