Logic Bricks und Python
Jetzt wechseln wir in die Game Logic Ansicht.
Wir erzeugen einen neuen Text, nenne ihn InitVideo und schreiben folgendes hinein:
# Importieren der benoetigten Module
import VideoTexture
import GameLogic
# Welcher Pythen-Controller
contr = GameLogic.getCurrentController()
# Welches Objekt hat das ganze aufgerufen?
obj = contr.owner
# Gibt es ein video Attribut? (Vermeide doppelte Initialisierung)
if not hasattr(GameLogic, 'video'):
# Bekomme Material, welches unsere Textur benutzt
matID = VideoTexture.materialID(obj, 'MA' +obj["material"])
# Erstellen der Videotextur
GameLogic.video = VideoTexture.Texture(obj, matID)
# Waehle den Pfad zum Video
movie = GameLogic.expandPath(obj["file"])
# Lade die Datei
GameLogic.video.source = VideoTexture.VideoFFmpeg(movie)
# Passe die Größe des Videos an.
GameLogic.video.source.scale = True
# Beginne das Video zu spielen.
GameLogic.video.source.play()
Erzeuge einen neuen Text und nenne ihn UpdateVideo:
import GameLogic
# Ist das Video schon initialisiert?
if hasattr(GameLogic, 'video'):
# Das Video muss jetzt jedes Frame aktualisiert werden
# da dies nicht automatisch passiert
GameLogic.video.refresh(True)
Das war's schon mit Python, jetzt müssen wir das Video nur noch aufrufen.
Setze die Logic Bricks wie folgt:
Außerdem brauchen wir die beiden Variablen auf die wir im init-Skript zugreifen:
material und file
material ist der Materialnahme mit dem Video und file ist der Pfad zum Video (// ist das Verzeichnis des .blend-Files)
Natürlich kannst du das Video auch anders initialisieren. (zB mit einem Near-Sensor wenn dein Charakter sich etwas nähert)
So das war's. Starte die Game Engine und drücke Leertaste.