Fejlesztői napló: A vb-sárkány megidézése
Így alakítottuk át a pekingi Madárfészket egy sárkány barlangjává.
Mindig is próbáltunk izgalmas, emlékezetes versenyeket szervezni, de 2017-ben még magasabbra akartuk tenni a lécet. Ezért amikor elkezdődött az idei döntő nyitóceremóniájának összeállítása, toboroztunk egy csapatot, akik megvalósíthatják a mindannyiunkban ott élő kocka titkos álmát: egy sárkány megidézését.
A LoL életre keltése
A nemzetközi rendezvények esetében az egyik elsődleges cél mindig a házigazdák előtti tisztelgés. A Kínában rendezett vb-n tehát a kínai kultúrát kellett beépítenünk valamilyen módon. 2017 februárjában kezdett összeállni a nyitóceremónia programja. Találtunk egy kiváló kínai erhuművészt, a pekingi opera stílusában készítettünk maszkokat a LoL hőseiről, továbbá szerződtettük Jay Chou tajvani szupersztárt, az Against the Current pedig az élőben előadott „Legends Never Die” című dallal készült. Mindezek ellenére is volt némi hiányérzetünk. Szükség volt valami pluszra, amivel érzékeltetni tudjuk a híres pekingi Madárfészek lenyűgöző méreteit.
Sok ötletet megtárgyaltunk, de végül a kiterjesztett valóság mellett döntöttünk. Ezzel a technikával grafikai elemeket lehet beilleszteni a valós környezetbe. A kiterjesztett valóság (Augmented reality – AR) létrehozásakor egy valódi kamera vezérel egy virtuális kamerát egy renderelőmotorban, majd egyesíti a két képet, hogy valóságosnak tüntesse fel, ami valójában nincs is ott. Az AR nem ismeretlen eszköz a sportközvetítésekben, valamilyen formáját több hagyományos sportban, valamint e-sport-eseményeken is alkalmazták már, például a Dota The International nevű versenyén (de az NA LCS, az MSI és a vb-ink során is láthattátok). Mi viszont minden eddiginél grandiózusabb látványosságra készültünk.
Az idei nyitóceremóniával kapcsolatos első AR-ötletek között szerepelt, hogy Ryze hajigáljon varázslatokat a stadionban, vagy hogy Ashe lőjön ki nyilakat a kivetítő képernyőjéből. De aztán szóba került egy régi viccünk: „Csak ültessünk egy sárkányt a színpadra.” Nincsen Runaterrára nyíló portálunk, hogy szerezzünk igazi sárkányt (bár dolgozunk rajta), és amikor a vicc született, még nem volt elég fejlett a technika ahhoz, hogy egy valódi stadionban egy jó minőségű sárkányt reptessünk (mármint megfizethető áron). 2017-re azonban eljutott oda az AR-technológia, hogy belevághattunk a megvalósításba. Összetrombitáltunk egy csapatot a legelvetemültebb technológiaújítókból, és feltettük nekik a kérdést: „Tudtok csinálni nekünk egy sárkányt?”
Bár a televíziós közvetítésekben használt AR sokat fejlődött az elmúlt években, egy kicsit mégis tartottunk attól, hogy a sárkány megjeleníthető-e életszerűen, kellő részletességgel. A főbb kihívások a következők voltak:
- Hogyan érjük el, hogy a sárkány körberepüljön a stadionban, és leszálljon a Madárfészek peremén?
- Hogyan fog a sárkány realisztikus árnyékokat vetni a padlóra és a stadion falaira?
- Képesek leszünk az adott nap időjárási viszonyaihoz igazítani a bevilágítást? Hogyan?
- Hogyan lehet a legjobban összehangolni a sárkány megjelenését az élő fellépőkkel?
A sárkány megálmodása
Hatalmas, félelmetes teremtményt akartunk Peking egére varázsolni, és a LoL-ban nincs erősebb, ijesztőbb és menőbb ellenfél az Ősi Sárkánynál.
Több partnerünket is bevonva elkezdtük megtervezni az Ősi Sárkány egyedi modelljét, amely a későbbi animáció alapjául szolgált. Nagyon sok különböző lehetőség merült fel, de végül azokra esett a választásunk, amelyek a Szurdok legveszélyesebb lakójának amúgy is lenyűgöző tulajdonságait hangsúlyozták. Az egyik legfontosabb cél az volt, hogy a játékosok azonnal felismerjék a helyszínre lecsapó bestiában a sokszor látott, jól ismert Ősi Sárkányt.
Ki kellett találnunk, hogyan festene az életben az Ősi Sárkányt, ezért alaposan megvizsgáltunk rajta minden részletet, a fejétől kezdve a végtagjain át a szárnyakig.
Minden elemnél számos variációt pörgettünk végig, mire összeállt a végső látványterv.
A látványterv elkészülte után kezdődhetett a modellezés folyamata. Az előre renderelt hagyományos karaktermodellekkel ellentétben ezúttal arra is ügyelni kellett, hogy mennyire legyen részletes a modell, hiszen valós időben kellett megjeleníteni.
Mi az a valós idejű renderelés?
Valós idejű renderelést használva olyan gyorsan hozható létre az animáció, mintha élőben történne. Ez jelentős eltérés az előre renderelt animációkhoz képest, ahol egy 10 másodperces jelenet renderelése órákat vehet igénybe (a Toy Story 3 esetében például átlagosan hét órát vett igénybe egyetlen képkocka renderelése). Ha nem is hallottál még a valós idejű renderelésről, biztosan élvezted már az előnyeit: a grafikus kártyák is így renderelik a játékok képeit.
A mi esetünkben valós időben kellett renderelni a stadionba berepülő sárkányt, de úgy, hogy szabadon mozgathassuk a kamerákat, és folytathassuk a nyitóceremónia felvételét. Ehhez nyomon kellett követnünk a poligonok és a töréspontok számát, amelyek a sárkányt alkották, hogy ne legyen például folytonossági hiba, vagy ne akadozzon. Ez alapvetően ugyanaz a feladat, mint figyelni a poligonok számát a játékbeli modellek tervezésekor: meg kell találni az arany középutat a minőség és a teljesítmény között.
Valahogy így festett a modellezési folyamat:
Mindeközben egy külön csapat dolgozott magán az animáción, ahogy a sárkány berepül a stadionba. Megnéztük a kedvenc sárkányainkat a Trónok harcából és a Sárkányszívből stb., hogy kitaláljuk, hogyan hatna egy sárkány a Madárfészekhez hasonló környezetre. Hogyan repülne? Hogyan érne földet? Hogyan reagálna a lábánál álló emberekre?
A legelső animációs koncepcióban az Ősi Sárkány hozta volna magával az Idézők kupáját a színpadra. Ezt az ötletet végül elvetettük, és inkább a 16 méteres felfújható trófea emelkedett fel, miközben a sárkány a közönség felett körözött. Ráadásul az Idézők kupája olyan nehéz, hogy egy sárkány sem bírja el.
Szóba került, hogy a sárkány a színpad egy másik pontján érjen földet, és legyen valamiféle interakció közte és az előadók között, mondjuk megijesztené a táncosokat, vagy lebuknának előle. Végül arra jutottunk, hogy ha egy sárkány leszállna egy több ezer emberrel teli stadionban, akkor tudatni akarná mindenkivel, hogy ő a főnök. Egy Ősi Sárkányról van szó, az ő helye a reflektorfényben van.
Ahogy elkezdett formát ölteni az animáció, újabb akadályba ütköztünk: A sárkány túl nagy lett. A szárnyai belelógtak a stadion falába leszállás közben, ami elég hervasztó látvány volt. Ezenkívül nem láttuk az árnyékát sem, amit pontosan a nézőkre kellett volna vetítenünk, hogy a kép valósnak hasson (gyakorlatilag ezzel értük volna el az illúziót, hogy a sárkány árnyéka a stadionban lévő valódi emberekre vetül). Felmerült, hogy lekicsinyítjük a modellt, de aztán azt tettük, amit egy valódi óriássárkány tett volna: megváltoztattuk a repülési útvonalat. Finomítottunk az ereszkedésen, hogy az árnyékok stimmeljenek, és pikkelyes barátunk ne olvadjon a stadion falába.
Valódi hextech
Következő lépésként összegyűjtöttük mindazt, ami szükséges ahhoz, hogy az animáció lejátszása hiba nélkül menjen, és a tervezés során megalkotott élethű megjelenítés se szenvedjen csorbát:
- Garantálni kell, hogy az animáció valós időben fusson, a közvetítésünkével megegyező képkockasebességgel, ami 59,94 képkocka/másodperc.
- Biztosítani kell, hogy a sárkány lágy árnyékot vessen a környezetre, a Madárfészek méretének és léptékének megfelelően.
- A 3D-s maszkolásnak lehetővé kell tennie, hogy a sárkány az érkezésekor és a távozásakor megjelenhessen a stadion mögött, illetve leszállhasson a porondra.
- A színpadi világításnak folyamatosan és valós időben kell igazíthatónak lennie, hogy bármilyen időjárási körülményhez gyorsan lehessen alkalmazkodni.
- Szükséges, hogy valós időben lehessen igazítani a sárkány színét, a helyi kamerák expozíciójához és kontrasztjához igazodva.
- Két, nyomkövető képességgel rendelkező kamerát kell használni, amelyek két különböző, valós idejű képalkotó motornak küldik az adatokat.
- El kell tudni indítani az animációt ugyanabban az időben mindkét motoron, hogy a kamerák közötti váltás zökkenőmentes legyen.
- Az animációnak egy meghatározott pillanatban kell elindulnia, hogy tökéletes összhangban legyen a megnyitóünnepség zenéjével.
- A megfelelő tervezés és próbafolyamat elengedhetetlen ahhoz, hogy az operatőrök tökéletes felvételeket készíthessenek ebben a mozgalmas környezetben.
Hogy leteszteljük, vajon képesek vagyunk-e mindezek megvalósítására, fogtuk az összes cókmókot, és megidéztük az Ősi Sárkányt a parkolóban. Íme, a teszt (a kamera piszkos lencséjéért elnézést kérünk), amitől nagyon izgatottak lettünk:
Miután megérkeztünk a helyszínre, a Madárfészek stadionba, mindössze egy hét állt a rendelkezésünkre ahhoz, hogy mindent elrendezzünk, gondoskodjunk a zökkenőmentes lekövetéshez szükséges biztonságos és stabil hálózati kapcsolatokról, biztosítsuk, hogy a sárkányhoz tartozó hang a megfelelő helyre kerüljön, ellenőrizzük, hogy az animáció indítása jól működik-e, és ami a legfontosabb: a kamerán keresztül is láthassuk, hogy a sárkány tökéletesen illeszkedik-e a stadion paramétereihez. A nyilvános LoL-események egyébként is nagy felfordulással járnak, de ez egy külön kategória volt.
Emellett hat vagy hét alkalommal a táncosokkal is elpróbáltuk a sárkány műsorszámát, így derült ki, hogy ha a koreográfia, illetve az előadók és a kamera mozgása nincs tökéletes összhangban, akkor a sárkány eltiporja a színpadon táncolókat (ami az ő szempontjából nem nagy dolog, de nem néz ki túl jól). A táncosok ekkorra már több hete gyakorolták az időzítést, tehát bármilyen apró módosításunk kibillenthette volna a kényes egyensúlyt.
Ezért úgy döntöttünk, hogy a problémás részeket összehangolt kamerás ráközelítéssel fedjük el:
Az összes felvételt valódi operatőr készítette. Számtalanszor átvettük a sárkány körét az operatőreinkkel, hogy biztosan tudják, mikor kell elindítaniuk a felvételt, milyen mozdulatokat kell tenniük, illetve mikor kell a ráközelítést alkalmazniuk. Azt szerettük volna elérni, hogy a felvételek kellően tökéletlennek tűnjenek, mintha a sárkány meglepte volna a készítőjüket.
Íme, az egyik operatőr, amint épp felvételt készít a közönség felett repülő sárkányról:
Tíz perccel a közvetítés kezdete előtt észrevettük, hogy a sárkány maszkolásának pozíciója nem megfelelő (úgy tűnt, mintha a szörny a falon belül, és nem rajta landolna). A problémát elég sok minden okozhatta, például olyan apróság is, hogy a kameraállvány esetleg pár centimétert elmozdult a rezgés miatt. Pár perccel a kezdés előtt be kellett lépnünk a valós idejű grafikai szerkesztőalkalmazásba, hogy feljebb emeljük a sárkányt. Ha már ott voltunk, megragadtuk az alkalmat, és a napszaknak megfelelően a színeken is igazítottunk, hogy se túl élénkek, se túl sötétek ne legyenek. Azután eljött az idő, hogy az Ősi Sárkány berepüljön a döntőbe.
Amikor hallani lehetett, hogy a tetőről elrugaszkodó sárkány láttán a közönség felmorajlik, abba mindannyian beleborzongtunk. Ezt az egészet azért hoztuk létre, hogy láthassuk a játékosok reakcióját. Mindig az a célunk, hogy olyan emlékezetes pillanatokat szerezhessünk a játék híveinek és rajongóinak, amelyeket szívesen megosztanak a barátaikkal is. Ameddig csak lehetőségünk van rá, ebben a szellemben fogunk dolgozni a következő nagy dobáson. Amíg a kísérleteink eredményeképpen a házi keleti indigósiklónknak nem sikerül egy kis Baront a világra hoznia, addig kihívásnak tekintjük, hogy egyre izgalmasabb pillanatokkal színesítsük a világbajnokságot, és olyan élményeket szerezzünk, amelyek méltók a közösség szenvedélyes lelkesedéséhez.