Forrás: http://www.rozengain.com/blog/2009/06/11/beginners-tutorial-using-video-textures-in-the-blender-game-engine/
Fordító: stewet (2010) - szabad fordítás, néhol saját kiegészítésekkel
Verzió: 2.49b
Mozgókép textúra a Játékmotorban
(Korábban, már bennem is felmerült, hogy miért nem lehet a játék-motorban (továbbiakban GE) mozgóképet használni. A klasszikus példa erre, hogy sétálunk egy virtuális helyiségben, ahol a televízión láthatnánk mondjuk az esti mesét. - megj.: fordító)A Blender 2.49 megjelenése óta már nincs mit panaszkodni! Az egyik új funkciója a sok új funkció közül éppen a VideoTexture modul. Jó hír! Tehát hogyan működik? Az útmutató a Blender oldalon elég jó a kezdéshez, ha van némi tapasztalatod a Blender és a Game Engine használatában. Ha kezdő vagy, illetve kis mértékben ismered a programot, nem kell elkeseredni, (csak kicsit lesz nehezebb) - ez a leírás pont azt a célt szolgálja, hogy a kezdők is el tudják készíteni a munkát!
Hat menüpontban összefoglalható a feladatsor, és ezek szerint is haladunk a leírásban!
- Plane készítés
- Kép textúra betöltése UV unwrap módszerrel
- Megírni a Python kódot és betölteni, hogy lejátsza a videót
- Megírni egy másik Python kódot, mely frissíti a videót
- Felkészíteni a GE-t
- Indítani a játékot, és az eredményt örömteli módon (elégedetten) megszemlélni
Plane készítés
Nyisd meg a BlendertMentsd a .blend fájlt a háttérre
Töltsd le a videót (http://ftp.iasi.roedu.net/mirrors/blender.org/peach/trailer/trailer_400p.ogg) oda, ahova mentetted a .blend fájlt
Töltsd le a képet (http://www.rozengain.com/files/videotexture/bbb.png) és mentsd ugyan arra a helyre
Töröld az alapértelmezett kockát az [X] vagy a [DEL] billentyűvel
A [SPACE]-el adj a jelenethez egy plane (síkfelületet) “Add > Mesh > Plane”
Az [N]KEY-el hozd elő a Transform Properties ablakot
Itt keresd meg a DimX és DimY értéket és írd át 9.000 és 5.000 értékre
Kép textúra betöltése UV unwrap módszerrel
Oszd fel a munkaterületet a Jobb EgérGomb (továbbiakban ) használatával, és a felosztott képernyő valamelyik oldalán váltsd át a nézete UV/Image Editor-raAz UV/Image Editor menüjéből válaszd ki a “Image > Open” menüpontot, tallózd ki a bbb.png fájlt (Emlékezz! A képet, a videót és a .blend állományt egy helyre mentetted... legalábbis, az elején erre kértelek!! - megj.: fordító)
Térj vissza a 3D-s nézetre (a másik ablakrész), nyomd le a [TAB]-ot - ezzel átváltottál Edit Mode-ba Nyomj [U]KEY-t, és az előugró menüből - “UV Calculation” - válaszd a “Project from View (Bounds)" menüpontot. Az UV/Image Editor ablakban most ezt kell(ene) látnod:
Az []-tel lépj át Shading nézetbe (lent a kis paneleken - a “Links and Pipeline” tab-on) kattints az “Add new” gombra:
Ez létrehoz egy új anyagot a mi sík felület modellünkre. Most össze kell kapcsolni a "bbb.png" képet ezzel az anyaggal. Nyomj []-ot, amely átvált a Texturára, ahol szintén kattints az "Add New" gombra:
Válaszd az előugró menüből az Image menüpontot. Az Image panelen pedig be kell tölteni a bbb.png nevű képet (Egyszerű, mert csak ez az egy szerepel a listában):
Vissza a Shading Panel-re [] - A képernyő jobb oldalán látsz olyan panelt, aminek három "fülecskéje" (szakszóval tab) van. Válaszd a Map Input tab-ot, és kattints az UV kis zöld gombra.
Ha most RENDER-rel - [] - készítenél egy képet a munkádról, az alábbiakat kell látnod:
Mielőtt folytatnád, győződj meg róla, hogy nem vagy Edit Mode-ban (ha igen, válts Object Mode-ba a [TAB]-al), és a Megjelenítés típusa legyen Textured állapotban:
Megírni a Python kódot és betölteni, hogy lejátsza a videót
Az ablak-típusoknál az “UV/Image Editor” ablak helyett most válaszd a “Text Editor”-tKattints a Python gombra és az “AB” gombbra (ezzel engedélyezed, hogy a kód helyesírása színesen jelenjen meg (a python programozásról lásd a http://blender.hu/index.php?page=tut&l=hdoc/gealap leírást)
A “Text > New” alkalmazásával most létre kell hozni egy új fájlt, aminek a neve legyen: “LoadVideo”
Illeszd be a képen látható kódot (az alábbi szövegrész kép, az eredetileg beilleszthető szöveg e kép alatt)
...másolható formában is :
import VideoTexture
# -- Gets the Python controller associated with this Python script.
contr = GameLogic.getCurrentController()
# -- Gets the game object associated with this logic brick.
obj = contr.owner
# -- Check if the "video" property has been defined on "GameLogic"
if not hasattr(GameLogic, \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'video\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'):
# -- Get the material that is using our texture
matID = VideoTexture.materialID(obj, \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'IMbbb.png\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')
# -- Create the video texture
GameLogic.video = VideoTexture.Texture(obj, matID)
# -- Get the path to the video file
movie = GameLogic.expandPath(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'//trailer_400p.ogg\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')
# -- Load the file
GameLogic.video.source = VideoTexture.VideoFFmpeg(movie)
# -- scale the video
GameLogic.video.source.scale = True
# -- play the video
GameLogic.video.source.play()
a kód neve legyen LoadVideo
Megírni egy másik Python kódot, mely frissíti a videót
Tegyél ugyan úgy, mint az előzőekben, csak más kódot kell beilleszteni - az alábbi kód csak kép...
másolható formában:# -- Check if the "video" property has been defined on "GameLogic"
if hasattr(GameLogic, \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'video\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'):
# -- The video has to be refreshed every frame because
# it is not a background process
GameLogic.video.refresh(True)
A kód neve legyen UpdateVideo
Felkészíteni a GE-t
Az []-el lépj át a Logikai építőkockákat tartalmazó panelre, ahol most beállítjuk a működéshez szükséges értékeket, paramétereket.Kattints a széles Plane feliratú zöld gomb melletti Add gombra, ezzel adunk a sík felülethez (amire a képet is tettük) érzékelőt. (szakszóval szenzort). A szenzor típusát változtasd meg “KEYboard”-ra, (az alapértelmezett beállítás az Always), majd kattints a KEY felirat melletti üres helyre, ahol a megjelenő felirat után - Press a key - nyomd le az billentyűt: (persze használhatsz más billentyűt is, mert ez a paraméter arra szolgál, hogy mivel indítod ez a plane-on később látható videót. Röviden arról van szó, hogy az érzékelő típusa - most a billentyűzetet "figyeli". Ha az érzékelőnek megmondott billentyű lesz lenyomva, akkor az érzékelő kimenetén továbbad egy jelet, de erről később)
A következő lépés, hogy a középső - Controllers - Plane melletti Add gombra kattintással megadjuk az érzékelő kimenete indítsa el az általunk megírt Python kódot. Ha követed a képen látható információkat, nem is kell többet írnom ehhez. (Persze a szenzor kimenetét és a Controller bemenetét a Kattints és Húzd (Drag&Drop) módszerrelössze is kell kötni, az alapértelmezett AND menüből a Python feliratú mezőt válaszd ki, valamint a látható helyen írd be a megírt kód nevét - Itt a LoadVideo nevet adtuk a Python kódnak)
Most már a videó betöltésre kész, ha lenyomjuk az adott billentyűt, de ez még kevés. Frissíteni is kell a megjelenítendő információt, ezért újabb szenzort kell hozzáadni a Sensor-hoz. Kattints újra az Add gomba a Sensor Plane feliratú széles zöld gomb mellett. (Nincs megkötés, hogy egy objektumhoz, jelen esetben a Plane.-hez hány érzékelőt rendelünk hozzá)
Az új érzékelő típusát hagyd Always - alapértelmezett - típuson, de a kis sárga karikával jelzett gombot kapcsold be. A Controllers-nél is kattints az Add gombra, és az előző eljáráshoz hasonlóan állítsd Pythonra az AND beállítást, és add meg a másodikként megírt kód nevét - jelen esetben UpdateVideo, majd ezt a két információt is kösd össze egy vonallal.
nincs más hátra, a kamerát helyezd el úgy, hogy a Plane (síkfelület)-tel szemben legyen, esetleg adj 1-2 sima lámpát a jelenethez (SPACE->Add->Lamp), majd nyomd le a [P] billentyűt, ami a Blenderben a játékmotort indítja. Látnod kell a .png-s képet, majd ha lenyomod az -t, el kell indulnia a videónak.
A GE-ből az [ESC] billentyűvel léphetsz ki!
Jó szórakozást! Ha valami nem jött össze, vagy elakadtál, a Fórum Game Engine szekciójában nyugodtan írj!
Az eredeti .blend fájlt megtalálod a Letöltés->BLEND fájlok menüben game-engine_VideoTexture.blend néven! Önmagában nem fut, csak ha letöltöd a videót is hozzá!