Hallo zusammen,
habe jetzt meine "Forschungsarbeiten"
abgeschlossen. Alle Dateien können in der aktuellen Version (letzte Version) unter den unten abgegebenen Links heruntergeladen werden.
Folgende Fragen habe ich mit den Test versucht zu beantworten:
1. Wie verhalten sich Properties.
2. Welchen Gültigkeitsbereich haben sie.
3. Wie werden Daten von einem Objekt an das andere Objekt übertragen.
4. Wie können kontinuiereliche Datenströme (z.B. eine gedrückteTaste, die zu einer Motion Action
führt) an Properties übertragen werden.
5. Wie können Conditions verarbeitet werden.
6. Können Variablen in den Motion fields varbeitet werden.
7. Können Python-Funktionen in den Motion fields verarbeitet werden.
8. Wie funktioniert ein IOC (Inter Object Communication).
9. Wie kann ein Objekt ein anderes Objekt triggern.
10. Wie kann durch einen gleichen Tastendruck (z.B. Spacetaste) eine Flip/Flop-Funktion (Anzeigen
bzw. verdecken) realisiert werden.
Die gesamte Lösung ist ausschließlich mit den Logicbricks realisiert.
Im Flymode selbst nimmt die Rotationsgeschwindigkeit der Kamera mit dem Cursorabstand zum Zentrum zu. Das ist nach meinen jetzigen Erkenntnissen ausschließlich mit
Logicbricks nicht möglich. Ein Hindernis ist, dass die Cursorposition oder ein entsprechender logischer Wert über die angebotenen Sensoren nicht verfügbar sind. Um diese Mausposition zu erhalten, könnte man ein sehr einfaches Script im Controller vom
Typ Python schreiben, dass dann diese Position in vier Properties schreibt, die dann über die Logicbricks ausgelesen könnte. Um mal zu testen, wie eine Mausbewegung zu einer Motion passt, habe ich für alle
Dimensionen X,Y und Z eine
Boosterfunktion eingebaut. Drückt man z.B. die Pfeiltaste nach Links, schwenkt man gemütlich nach Link. Bewegt man aber zusätzlich die Maus hin und her (wedeln), erhöht sich die Drehgeschwindigkeit. Das gleiche gilt für alle anderen Raumdrehungen auch. Natürlich alles nur mit Logicbricks und
ohne Scripte. Ebenfalls habe ich soetwas wie ein Gyroskop eingebaut. Kann man ein und ausschalten (Space-Taste). Wichtig war in diesem Zusammenhang für mich, wie man Werte (z.B. Properties) von einem Objekt in ein anderes überträgt, also eine echte Kommunikation zwischen Objekten aufbaut. Das Gyroskop erhält einen Trigger von der Kamera. Durch diesen Trigger ändert das Gyroskop seine Rotationspositionen. Natürlich ist das ein einfacher Test. Das Gyroskop ist sehr einfach und funktioniert nur in ganz einfachen Fällen. Wer Interesse hat, kann ja das Ding mal verbessern und hier posten.
Als Gimmek habe ich den Test in eine zweite Szene verlagert.
Dazu habe ich ein Testbeispiel aus
Ter2Blen genutzt. Zuerst habe ich die Fly-Camera in eine leere Szene gestellt (alles, bis auf die Camera aus dem Test löschen oder entsprechende Datei von unten laden). Dann
257_HavasuFallsAZ.TER importieren und mit etwas Farbe und Textur versehen. Kamera ausrichten und durch die Schluchten fliegen.
Super Super Super.
Alles ist in der ZIP-Datei am Ende enthalten. Kann frei genutzt werden. Über Kommentare würde ich mich sehr freuen. War viel Forschungsarbeit in den letzten Tagen.
Hier nochmal die Links für die aktuellen Blender-Dateien und die ausfürhliche technische Beschreibung:
http://www.esdesystems.de/BlenderProject/GameTest-Flymode.blend (Blender Datei)
http://www.esdesystems.de/BlenderProject/GameTest-Flymode.PDF (Technische Beschreibung)
http://www.esdesystems.de/BlenderProject/GameTest-Flymode.ZIP (alles Zusammen)
http://www.esdesystems.de/BlenderProject/GameTest-Flymode-EmptyScene.blend (Für Imports)
http://www.esdesystems.de/BlenderProject/GameTest-Flymode-HavasulFalls.blend (Geiler Test)
Viel Spaß