„Szeretném megszerkeszteni a saját Tomb Raider pályáimat a TRNG programmal, de nem tudom, hogy milyen feladatok várnak rám”

Avagy a pályaszerkesztés fő feladatainak a bemutatása nagyvonalakban, kezdők számára, kedvcsinálás végett

Előfeltétel: TRLE, majd TRNG telepítése.

Jelen oktatóanyag a TRNG 1.2.2.7+ verziójának a használatával készült.

Ha Tomb Raider játékot szeretnél létrehozni, akkor választhatsz néhány lehetőség közül. Először is azt, hogy a szerkesztéshez valamilyen nem hivatalos szerkesztőt használnál (lásd: Dxtre3d), vagy a Core Design által hivatalosan publikált Tomb Raider szerkesztőcsomagot, a TRLE-t.

Nekünk a TRLE-re lesz szükségünk, úgyhogy az elsődleges teendőd feltelepíteni ezt a számítógépedre. Ez egy régi csomag, az 1999-es The Last Revelation játékprogram motorjára épít.

Hála a rajongók kitartó hozzáállásának, a csomagot több irányban is továbbfejlesztették (nem hivatalosan), melyek közül manapság talán a legismertebb irányvonal Paolone fejlesztése, a TRNG. Jelen oktatóanyag megértéséhez a TRLE-re ezt is „rá kell telepíteni”, mielőtt nekiállnál a pályáiddal foglalkozni.

1. A feladat nagysága

Amikor nekiállsz egy pálya elkészítésének, akkor ennyi, ami a rendelkezésedre áll:

1. ábra

Miközben a végeredménynek megközelítően ilyennek kell lennie:

2. ábra

Mint láthatod, kétségkívül hatalmas munka áll a mögött, hogy egy pályát elkészíthess. Kétségtelen, egy működőképes pályát akár egy-két hét alatt is összedobhatsz – csak aztán legyen valaki, aki játszik egy ilyen igénytelen munkával.

Szóval, készülj fel rá, hogy ha működőképes és igényes pályát akarsz a kezedből kiadni, mellyel minél több ember játszik szívesen, akkor több hónapnyi munkát kell rászánnod legalább – és akkor azt még nem is említettük, hogy sok játék több, mint egyetlen pályából áll.

Tehát, mielőtt nekigyürkőznél annak, hogy Tomb Raider pályákat készíts, jobb, ha megkérded magadtól:

Nem ajánlom, hogy addig nekiállj komolyan a pályakészítésnek, amíg bármelyik kérdésre is nemmel felelsz.

Azonban akkor sem érdemes feladni, ha belevágsz, de időközben balul sülnek el a dolgok. Hisz például, ha menet közben ráunsz a pályaszerkesztésre, még akkor sem biztos, hogy ki kell vágni a kukába az egész projektet. Hisz lehet, hogy csak pihenni kell egy-két hetet, valami egészen mással foglalkozni, és aztán újult erővel és kedvvel belevágni megint.

2. Végül is mi az, hogy „pálya”?

Nézz körül a szobában, ahol épp tartózkodsz. Van négy fala, egy padlója, egy mennyezete. Olyan, mintha egy szabályos, téglatest alakú dobozban lennél, igaz? És mi van akkor, ha kilépsz a szobaajtón a folyosóra? Nyilvánvalóan ott is látsz falakat, padlót, mennyezetet.

A Tomb Raider pályák is ezen az elven működnek. Azaz minden helyszín egy-egy dobozszerű szoba, ezek belsejében játszódik az egész játék, és a szobák ajtóknak nevezett lukakkal való összenyitása, azaz a helyszínek összekapcsolása alkotja magát a pályát.

Azaz a te feladataid lényegében véve „csak” az alábbiak:

Minden egyes nyers szoba úgy néz ki, ahogyan az 1. ábrán is láthatod: hatalmasak, semmi alakítás nincs még rajtuk, teljesen üresek.

Nézzünk egy igen-igen egyszerű példát, ahol is a teljes pálya csak három kis szobából áll:

Lara egy fapadlójú kis szobában tartózkodik, amint a pálya elkezdődik. Elindul egy kis folyosón. Ekkor kinyílik az orra előtt egy kis kapu, és ő kijut a szabadba.

Ekkor az alábbi három szobával akad dolgunk:

Fapadlójú szoba:

Padló: falécek

Falak: díszes festés

Mennyezet: freskó

Folyosó:

Padló: kőkockák

Falak: kőre vésett hieroglifák

Mennyezet: sima kőlapok

Szabadtéri helyszín:

Padló: fű, kis dombok

Falak: földhányások szélei és a horizont, illetve, a folyosó kapcsolódási pontja körül a folyosó száját jelentő hieroglifás kőfalak

Mennyezet: égbolt

A szobák felülnézeti képe (balról jobbra: szoba, folyosó, szabadtér):

3. ábra

És oldalnézeti képe:

4. ábra

Balra a szoba képét úgy látjuk, ahogy a szerkesztőprogramban kinéz, jobbra úgy, ahogyan a játékban:

1. A fapadlójú szoba (az a fura figura jelenti azt, ahol Lara majd elkezdi a pályát, a fehér luk meg az a hely, ahol a másik szoba kapcsolódik hozzá):

5./a ábra                                    5./b ábra

2. A folyosó (balra és jobbra a szoba két fehér vége a fal hiányát jelzi, mert ott kapcsolódik a másik két szobához), a játékbeli képen már nyitott kapuval:

6./a ábra                                    6./b ábra

3. A szabadtér – a folyosó szája felé fordulva (igen, jól látod, a hegyvidéket mutató horizont és az égbolt képe a szerkesztőprogramban soha nem látható):

7./a ábra                                    7./b ábra

A miheztartás végett lássuk, hogy miképp nézhet ki egy teljes egészében elkészített, működőképes és igényes pálya felülnézeti képe (a színjelölésekkel most ne foglalkozz):

8. ábra

3. A szoba teljes egészére vonatkozó formázási műveletek

Szobát létrehozni lényegében véve csak egy kattintás az egérrel. Általában ekkor egy olyan jellegtelen és ormótlan szoba a „jutalmunk”, mint amit az 1. ábrán is láthatunk.

Amint a szobád létrejött, akár máris elvégezhetsz rajta olyan formázási műveleteket, melyek kihatnak az egész szobára:

Szobák átméretezése:

Az 1. ábrán látható óriási szoba a lehető legnagyobb alapterületű. Tehát az alapterület átméretezése csakis az alapterület csökkentését jelentheti.

Ellenben a szintén hatalmas belmagasság csökkenthető, és – elvileg akár extrém méretekig is – növelhető is.

Az alábbi ábrákon balra az látható, hogy egy hatalmas szoba egy részét pirossal kijelöltük. A jobb oldali ábrán az alakítás utáni végeredmény látható: a kijelölt terület vált a szoba új alapterületévé, és egyben a hatalmas belmagasság is csökkent:

 

9./a ábra                                    9./b ábra

Szobák koordinátái:

A szobákat az x/y/z koordináták mentén horizontálisan és vertikálisan is elmozdíthatjuk.

Az alábbi ábrákon ugyanazt a (piros) szobát láthatjuk két különböző pozícióban a pályán:

 

10./a ábra                                            10./b ábra

A szoba alapfénye:

A fények beállítása az alapszínek beállítását jelenti. Minden alapszínnek van egy-egy 256 fokozatú skálája, a piros, zöld és kék alapszínek így kapott aránya határozza meg a fény színét.

Az 5./a ábrán látható szoba, ezúttal két különböző alapfénnyel:

 

11./a ábra                                  11./b ábra

(Azért „alapfényről” beszélünk, mert a fényviszonyok koncentrált fényekkel módosíthatóak – lásd később.)

Szobastátuszok:

Többnyire csak egy-egy egérkattintásba kerül, hogy bizonyos státuszokat be- vagy kikapcsolj a szobákban: hogy víz legyen a szobában, és ott Lara úszkálhasson, hogy láthasd onnan a napkorongot, vagy, hogy essen ott a hó. Stb.

A 7./b ábrán is látható szobának ezúttal esőstátusza van, azaz szakad ott az eső (ezért is vannak a fényviszonyok sötétebbre állítva):

12. ábra

Átjárók a szobák között:

Miképp a 3. ábrán is láthatod, a szorosan egymás mellé illesztett szobák egymással összekapcsolhatóak. Ekkor a szobák egymással érintkező részei eltűnnek, mindkét szoba „kilukad” ott, egy olyan átjáró (ajtó) keletkezik, mint amit például az 5./a ábrán is láthatunk egy fehér foltként.

Egyéb szobaműveletek:

Most csak egyetlen példát mutatnék be e speciális műveletekre – lássuk az alábbi szobát két különböző irányba beforgatva, amihez nyilvánvalóan a forgatási műveletet használtuk:

13./a ábra              13./b ábra

4. A felszín formálása

Lássunk pár példát arra, hogy a felszín formálásával miféle jelenségeket tudunk megvalósítani:

a, egy megemelt blokk a szoba közepén (amire Lara felmászhat, hogy felvegye onnan az egészségcsomagot), illetve szegély a szoba körül, illetve kupolás szobamennyezet:

14. ábra

b, a 7./a ábrán is látható szoba dimbes-dombos padlója (a füvet elmozdítottam, hogy a domborzat jobban látható legyen):

15. ábra

Figyeld meg a fenti ábrán, hogy a padlón látható négyzetrács egyes négyzeteit helyenként két-két háromszögre „törheted”, amivel további érdekes domborzati hatásokat tudsz elérni.

16. ábra

Mint a 16. ábrán láthatod, néhány ilyen háromszög belekerülhet a „fehér lukba”, azaz a szobák közti átjáróba is. A piros szín azt jelzi, hogy a háromszög átjárható – tehát, mint láthatod, az U alakú átjáró sarkában a 90 fokos letörés helyett ezúttal egy szebben kidolgozott megoldás készült.

c, lépcső:

17. ábra

d, lejtő:

18. ábra

e, szoba fölé benyúló perem:

19. ábra

f, ívelt szoba:

20. ábra

g, tölcsér alakú szoba:

21. ábra

5. Speciális tulajdonságú területek

A fenti ábrákon a padlót és a mennyezetet általában kék, a falakat zöld színnel láthatod. Ha valamely más szín van ott, akkor az azt jelenti, hogy ott valami speciális tulajdonsága van a területnek.

Nézzünk pár példát:

Az alábbi ábrán a zöld padló (az ülő, az útból elhúzható szobor alatt) azt jelenti, hogy ott „létra van”, azaz mászható a fal. A barackszínű terület felett Lara elkaphatja a mennyezet kapaszkodóit, hogy majomként lengjen tova. A szürke területre ellenség nem léphet be, csak Lara.

A zöld falak a szoba közepén szintén speciálisak, abban az értelemben, hogy létrehozásukról külön gondoskodni kell, hisz alapesetben falakat csak a szobák körül találhatunk.

22. ábra

Csak egy-egy egérkattintásba kerül az efféle tulajdonságok lehelyezése a kijelölt területekre.

6. Textúracsempék

Természetesen nem olyan kék-zöld-stb. színű síkidomokat fogsz látni a játékban, mint amilyeneket például a 22. ábrán is látsz, hanem a síkidomokra lehelyezett textúracsempék tűnnek majd ott fel.

A 22. ábra szobájának a képét itt a síkidomokra lehelyezett textúracsempékkel együtt láthatod:

23. ábra

A textúracsempéket minden pályához egy-egy olyan csempekészletből választhatod ki, mint például ez (nem feltétlenül a teljes csempét, hanem esetleg csak egy részletét kiválasztva a lehelyezéshez):

24. ábra

Elvileg használhatsz akár „előregyártott” csempekészleteket is, de elsősorban a te feladatod ezek összeállítása – hisz minden pályához eltérő készletre lehet szükség, az „egyiptomi romok” és az „űrbázis” pályák nyilvánvalóan más képet kell, hogy mutassanak.

Falszekciók:

A fenti ábrák némelyikén azt láthatod, hogy egyes szobaelemek részekre vannak osztva. Így például a 22. ábrán a fal paneljei egymás alatti szekciókra vannak felosztva. (Ezért vannak eltérő zöld árnyalataik.) Ennek textúrázási oka van, amit még jobban szemléltet a 7./a és a 15. ábra: az itt látható szoba falainak az alsó részét „földhányás” textúrával, felső részét a horizonthoz szükséges „átlátszó textúrával” (ezért látszik mögötte a háttér fehérsége) textúráztuk.

A szekciók kialakítása a te feladatod.

Átjárók textúrázása:

25. ábra

A fenti képen ezúttal nem látsz fehér foltot az átjáróknál, hanem jól láthatod az összekapcsolt szobákat. Több helyen is láthatod, hogy rács zárja le az átjárót a két szoba között. Nem, ezúttal ez nem olyan rácsos kapu, mint amit a 6./a ábrán is láthatsz, hanem egy textúracsempe.

De hát hogyan lehet átjárót textúrázni, hisz az csak egy luk, nincsenek ott kék, zöld stb. síkidomok?

Nos, a probléma megoldásához egy „hamis” faldarabbal kell eltömni az átjárót, és a „rács” csempe erre lesz majd lehelyezve.

Animált textúrák:

Egy-egy kék, zöld stb. síkidomon a textúra esetenként nem állandó, hanem „mozog”, animált, mert arra van szükségünk a kívánt hatás eléréshez.

Lássunk egy példát:

A 3. fejezetben említettem, hogy miként kell vizet létrehozni egy szobában. A nyitott medence és a felette lévő „levegős” tér közti átmenetnek azonban szépen kell kinéznie, ezért a vízfelszínt „hullám” textúrával látjuk el (lásd a 26. ábrát), és mivel a hullám mozog, ezért ennek a textúrának animálódnia kell.

26. ábra

A textúra animálódáshoz az kell, hogy az animációs panelen (lásd a 27. ábrát) összekapcsolj néhány textúracsempét (ezt zöld keret jelzi).

27. ábra

Látható, hogy az összekapcsolt csempék mind „hullám” csempék, egymástól némiképp kicsit eltérnek. Nem igazán számít, hogy közülük melyik van lehelyezve a vízfelszín tetejének egy-egy pontjára, mivel a játékprogram gyorsan váltogatni fogja ott e csempéket egymással, miáltal úgy tűnik, hogy a hullámalak tényleg mozog – azaz „hullámzik”.

Lépések zajai:

Lara általános lépészaja bizonyos körülmények között változhat. Így például, ha a padlón „hó” textúracsempe van lehelyezve, akkor ott értelemszerűen nem kopogó lépteket kívánunk hallani.

A „textúrazaj” panel igencsak hasonló a fent mutatott animációs panelhez. A textúrazaj panelen tudjuk beállítani azt, hogy egy-egy textúracsempe efféle extra lépészajjal bírjon.

Bucka leképzés:

A bucka leképzés (bump mapping) során egyenetlenebb felület illúzióját fogja kelteni a textúra.

Azokat a textúrákat, melyekhez bucka leképzést rendelsz, a textúrazaj panelen tudod megadni.

Égbolt és horizont:

A 7./a és b ábrák jól mutatják: ha égboltot és horizontot kívánsz láttatni, akkor – mint fent említettem - csak „átlátszó textúrára” van ott szükséged a szerkesztőprogramban, egyébként semmiféle égbolt vagy horizont rajzolata nem látszódik ott a szobában. Tehát egyéb műveletekre van szükséged az égbolt és a horizont képének kialakításához. Az égbolt rajzolatát például egy RAW kiterjesztésű fájlban kell megadni, amit a pályádhoz csatolsz.

7. Effektikonok

Csak egy-egy egérkattintásba kerül egy-egy effektikon létrehozása, melyeket ezek után a szobákban kell lehelyezned.

Nézd például a 26. ábrát, ahol is számos effektikont találhatsz. A „villanykörte” alakú ikonok a szoba alapfényét változtathatják meg az adott pontokon, míg a piros vonalakkal bíró ikonok kamerákat jelentenek, amelyek hosszabb-rövidebb időre mutatják az általános kamera helyett a történéseket.

Az effektikonok különböző koncentrált (azaz egy adott pontból, az ikonból magából származó) hatások elérésére szolgálnak:

Példák:

Piros fényű terület a sötét szobában, fényikon segítségével:

28. ábra

Szokatlan szemszögből láthatjuk Larát, egy kamera ikonnak köszönhetően:

29. ábra

8. Látótávolság és térköd

A látótávolság azt határozza meg, hogy a pálya mely távolságait láthassa be maximálisan Lara. Az alábbi ábrákon magas, illetve alacsony látótávolság mellett láthatjuk ugyanazt a pályarészletet. Mint látható, alacsony látótávolság mellett a pálya távoli részei nem kerülnek megrajzolásra. Mégsem ajánlott a túl magas látótávolság, mert ez magasabb gépkapacitást igényelhet.

30./a ábra                                                                30./b ábra

A térköd alapvető szerepe az, hogy jótékony homály képzésével a meg nem rajzolt távoli részek ne nézzenek ki olyan csúnyán (a ábra). Azonban (lásd: b ábra) az is látható, hogy a térködnek dekoratív szerepe is lehet: például, ha kiszínezzük, és úgy elnyújtjuk, hogy akár már a Larához közelebbi részeket is elborítsa.

31./a ábra                                                                31./b ábra

9. Objektumok

Az objektumok kisebb-nagyobb tárgyak, melyeket el kell helyezni a szobákban. Az alábbi fajtáikat különböztetném meg:

A „fáklyatartó kar” díszlet objektumon látható piros gúla a játékban tűzként fog lobogni:

32. ábra

Mint ahogy a csempéknél is mondtam, elvileg használhatsz akár „előregyártott” objektumkészleteket is, de elsősorban a te feladatod ezek összeállítása – hisz minden pályához eltérő készletre lehet szükség, az „egyiptomi romok” és az „űrbázis” pályák nyilvánvalóan más objektumokat kell, hogy tartalmazzanak.

Mozgó és Statikus objektumok:

Az úgynevezett Mozgó objektumok nem feltétlenül mozdulnak meg, lehetnek akár díszletek is, de célunk általában az, hogy animációik révén mozgassuk őket.

Ezzel szemben az úgynevezett Statikus objektumok mindig mozdulatlan díszletek.

Több előnye és hátránya is lehet annak, hogy egy objektum Mozgó vagy Statikus. Most kiemelném azt, hogy a szoba fényviszonyai csak a Mozgó objektumokra hatnak, a Statikusok számára saját fényt tudsz beállítani.

Az alábbi képen jól látható, hogy a szoba erőteljes zöld fénye csak a Mozgó szoborra van hatással, miközben a Statikus váza saját erőteljes, vörös fényével világít:

33. ábra

Eldobott objektumok:

Érdemes egyes lényekhez (értelemszerűen emberi ellenfelekhez) menübe való tárgyakat elhelyezned, mert akkor a haláluk pillanatában elejtik azt (épp, ahol akkor tartózkodtak), így Lara ezt követően felveheti azt.

Például: a fegyveres fickó Uzival lő, így megéri esetleg Uzi lőszert lehelyezni ott a játékban, ahol a lényt is lehelyezted, így halála helyszínén Uzi lőszert fog elejteni, hogy Lara onnan felvehesse azt.

OCB beállítások:

Minden objektumhoz tartozik egy úgynevezett Object Code Bit panel (OCB), ahol is speciális tulajdonságokat rendelhetünk az objektumhoz – például megváltoztathatjuk a lobogó tűz nagyságát.

TRNG objektumok:

Bár a TRLE a The Last Revelation motorjára épít, a különféle felhasználói ügyeskedések lehetővé tették, hogy olyan objektumok legyenek itt működőképesek, melyeket ez a motor eredetileg nem támogatott (például tigris).

Hála a TRNG-nek, több olyan objektum szerves részévé válhatott a rendszernek, mint például a TR2-ben látható motorcsónak, a TR3-ban látható búvár vagy a TR5-ben felbukkanó elektronikus kapcsolótábla.

Plusz, szemben a TRLE-vel, a TRNG olyan extra objektum-tulajdonságokat is lehetővé tesz, melyeket eddig a Core Design egyik klasszikus Tomb Raider játékában sem láthattunk. Például, a Statikus objektum felrobban, ha Lara megérinti azt, vagy kioltani a tüzet Larán, anélkül, hogy vízbe ugrana stb.

Ütközések:

Az ütközés azt jelenti, hogy ha Lara nekimegy valaminek/rálép valamire (például szobafal/padló), akkor nem fog azon áthatolni, mintha az levegőből lenne.

Az objektumok ütközése néha azonban kényelmetlen, az alábbi okok miatt:

Ennek megoldása a te feladatod, melyeket például az alábbi módokon érhetsz el:

Az alábbi ábrán az látható, hogy Lara kinn áll az erkélyen, azaz „benne áll az ütközési doboz nélküli erkély objektumban”. Mint látod, a korlátok ütközése úgy lett megoldva, hogy fekete (a játékban átlátszó) ütközési objektumok állják ott el az ő útját, hogy le ne essen.

34. ábra (forrás: http://trlevelmanager.net/ng.htm)

Az alábbi ábrán az látható, hogy két szobor és egy szarkofág helyén miféle ütközéseket szimuláltunk. Látszik például, hogy a szarkofág helyén szimulált blokk tetejére Lara úgy mászhat fel, hogy úgy tűnjön, mintha a szarkofág tetején állna. - Természetesen az A ábra mutatja a valós képet, a B ábra csak az érthetőség kedvéért készült, valójában semmiféle felszínformálás nem történt ott ezúttal.

(De az is látható például, hogy az oroszlánszobor helyén létrejövő „lejtő” szimuláció kicsit pontatlan, nem túl sikeresen szimulálja az oroszlán alakját.)

35. ábra (forrás: http://trlevelmanager.net/ng.htm)

10. Cseretérképek

Cseretérképet alkalmazunk, ha egy szobának két különböző képet akarunk. Ha például földrengés effektusát használjuk, és a szoba a földrengésben összedől. Ekkor a szoba egyik képe a földrengés előtti ép, másik képe a földrengés utáni romos állapotot mutatja.

A cseretérkép a szoba „alternatív”, változás utáni kinézetét tárolja.

Szoba két különböző képe a szerkesztőprogramban – látható, hogy a homokbuckák eltűntek (a játékmenet szerint azért, mert aláhullottak a padlón lévő rácsozaton át):

36./a ábra                                  36./b ábra

A szobakép körüli fehérség azért változott feketére, mert ez jelzi azt, hogy ezúttal a cseretérkép szobaképe látható.

11. Zene és zaj

Bármi, amit hallasz a játék alatt, azt kisebb-nagyobb hangfájlok (jellemzően WAV fájlok, de a TRNG lehetőséget ad egyéb kiterjesztésekhez is) formájában a játék mappáiban tárolni kell.

E fájlok lehetnek:

12. Szövegek

Lehetőséged van bármiféle szöveget bármikor kiírni a képernyőre, melyhez rengeteg paramétert (betűtípus, betűméret stb.) te határozhatsz meg – sőt, lehetőséged van a TRLE klasszikus szövegeinek (lásd főleg: menük) kinézetén is változtatni.

37. ábra

Minden szövegnek, ami a játékban valaha is kiírásra kerül, annak benne kell lennie a szövegtárban:

38. ábra

13. Képek

BMP fájlokat vagy sprite-okhoz tartozó állóképeket helyezhetsz el a képernyőn.

39. ábra

Néhány képnek speciális funkciója van – így valósítható meg például a napló is:

40. ábra

14. Filmek és jelenetek

Lehetőség van AVI, WMV vagy MPG kiterjesztésű videofájlok bejátszására is, játék közben, de akár a főmenüben is.

A jelenet (cutscene) a pályán játszódik, de a szereplők nem a játékos vagy a mesterséges intelligenciájuk által vezérelve mozognak, mint általában a játékban, hanem tulajdonképpen „filmkockáról filmkockára” fel kell venni a mozdulataikat, szavaikat stb. Ezeket a beállításokat és a felvételt magát neked kell véghezvinni, hogy aztán a rögzített jelenetet később bejátszhasd a játékban.

Pillanatkép a The Last Revelation játék legelső jelenetéből:

41. ábra (forrás: www. skribblerz. com)

15. Kioldók

Kioldók nélkül a pályán lényegében semmi nem történne: Larát mozgatná a játékos, a víz hullámozna, a háttérben pedig szólna valami, a pálya alaphangulatát megteremtő háttérzaj – és ezáltal Lara haja is mozogna a szélben. De nagyjából ennyi.

Nevüknek megfelelően a kioldók mindig kioldanak, engedélyeznek, aktiválnak egy eseményt. A kioldókat te helyezed le a pályán, ezzel meghatározva azt a pontot, ahol az esemény aktiválódhat – például egy fegyveres fickó életre keltése, egy üres medence feltöltése vízzel, vagy egy harsány zenei betét megszólaltatása.

A fenti ábrák némelyikén lila foltokat látsz a padlón. Ezek a kioldók. Általában úgy működnek, hogy ha Lara egy ilyen lila folt fölé fut, gyalogol, kúszik, ugrik, úszik stb., akkor az esemény aktiválódni fog. - Van persze más lehetőséged is a kioldók beindítására: például az, hogy Larának muszáj a lila foltot érintenie a padlón, hogy az esemény aktiválódjon (azaz nem elég, ha például átugrik felette), vagy az, hogy egy kapcsológombot kell használnia, vagy az, hogy nem Lara, hanem más lény képes a beindításra.

Sőt, egyes esetekben olyan speciális körülményeket is kialakíthatunk, hogy például kettő vagy több kioldót is aktiválni kell a pálya különböző pontjain ahhoz, hogy az esemény aktiválódjon.

Az eseményeket mindig a lehelyezésük előtt kell beállítani a kioldókban – ezután már csak egy kattintás a padló kívánt részére, hogy a kioldó oda lekerüljön, hogy a padló ott lila legyen.

Az alábbi ábrán a kioldók beállítására szolgáló Set Trigger Type panelt (STT) láthatod. Épp egy olyan kioldó van beállítva, ami egy objektum aktiválására szolgál (OBJECT), ami egy tűz (FLAME_EMITTER), 10 másodpercre (azaz a tűz ezután magától kialszik), de csak akkor, ha Lara érinti a kioldó foltját (PAD).

42. ábra

A bevezetőben említettem, hogy mi a TRNG-vel dolgozunk, ami a TRLE továbbfejlesztése. A TRNG egyik fő attrakciója az, hogy rengeteg új kioldót tudsz beállítani, azaz jóval több fajta eseményt tudsz kreálni, mint amire a The Last Revelation képes volt. Ez azt jelenti, hogy az alapvető történések egyszerű, a TRLE által nyújtott kioldókkal is véghezvihetőek, nem kell a TRNG kioldói között keresgélned, ha épp a pálya alapvető működtetéséhez keresel kioldókat, azaz épp nem valami rendkívüli, TRNG-kreálta eseményt kívánsz aktiválni.

A TRNG használata folyamán az alábbi, már a TRLE által is használt kioldókkal találkozhatsz:

A TRNG által kreált kioldók elsősorban ACTION vagy FLIPEFFECT névvel találhatóak meg. Az ACTION-ök főképp Mozgó objektumokra hatnak, míg a FLIPEFFECT-ek egyéb eseményeket definiálnak.

Lássunk pár példát arra, hogy miféle lehetőséget teremtenek számunkra a TRNG által kreált kioldók:

A TRNG emellett egészen új aktiválási feltételeket is képes alkalmazni a kioldókhoz. Azaz olyanokat, hogy például, a kioldó beindításához Lara ottlétén kívül az is kell, hogy:

16. A szkript

A szkriptben olyan adatokat rendelünk szövegesen a pályához, vagy akár a teljes játékhoz, melyeket a szerkesztőprogramban nem tudunk megadni.

[Level]

Name=                   Temple Of Karnak

Horizon=                ENABLED

Layer1=                 128,96,64,7

Puzzle=                  2,Canopic Jar 1,          $0001,$0320,$0000,$0000,$0000,$0002

Puzzle=                  3,Canopic Jar 2,          $0001,$0320,$0000,$0000,$0000,$0002

Puzzle=                  1,Sun Talisman,          $0000,$0500,$0000,$0000,$0000,$0002

PuzzleCombo=       1,1,Sun Disk,          $0000,$0180,$0000,$0000,$0000,$0002

PuzzleCombo=       1,2,Sun Goddess,          $0000,$04b0,$0000,$0000,$0000,$0002

Puzzle=                  5,Golden Vraeus,    $0003,$0300,$0000,$0000,$0000,$0002

Puzzle=                  7,Guardian Key,              $0009,$0300,$0000,$0000,$0000,$0002

Key=                      2,Hypostyle Key,             $0000,$0400,$0000,$c000,$0000,$0002

LoadCamera=         89366,-258,48077,88372,-1300,45701,0

Level=                    DATA\KARNAK,110

A fenti részlet a TRLE-ben megtalálható karnaki pálya teljes szkriptjét tartalmazza. Ez a szkript az úgynevezett parancsok révén az alábbi adatokat adja meg:

A TRLE-ben nagyjából ilyen és hasonló parancsokkal találkozhattunk – de a TRNG további, speciális parancsok garmadájával látott el minket, melyek például az alábbiakra használhatóak:

A TriggerGroup parancs:

A TRNG által létrehozott kioldókat a szkriptbe lehet exportálni. Ez azt jelenti, hogy amint a kioldót beállítottad az STT panelen, rákattintasz egy gombra, ami megnyitja a kioldó exportadatait – például ezt:

; Set Trigger Type - FLIPEFFECT 91

; Exporting: TRIGGER(532:0) for FLIPEFFECT(91)

; <#> : Lara. (Health) Lara invulnerable for <&>time with (E)effect

; <&> : 20 seconds

; (E) : Blinking transparency - fast

; Values to add in script command: $2000, 91, $214

A kioldó exportértéke az a $2000, 91, $214 kódszám, amit neked a szkriptbe be kell másolnod.

Az exportált kioldó azért jó, mert a TriggerGroup szkript parancs lehetőséget ad olyan bonyolult kioldó-kombinációk definiálására, mint például ez:

„Ha Feltétel1 és Feltétel2 közül bármelyik igaz, akkor Kioldó1 és Kioldó2 végre lesz hajtva. Ha egyikük sem igaz, akkor Feltétel3 lesz megvizsgálva. Ha igaz, akkor Kioldó3 lesz végrehajtva. De ha nem, akkor Feltétel4 és Feltétel5 lesz megvizsgálva. Ha Feltétel4 igaz, de Feltétel5 nem, akkor Kioldó4, Kioldó5 és Kioldó6 lesz végrehajtva.”

Ezeket a kombinációkat egy olyan kioldó „lila foltjával” indíthatod be például, mely kioldó e TriggerGroup parancs azonosítószámára vonatkozik.

A TriggerGroup parancsok másik nagy haszna ott van, hogy egyes egyéb szkript parancsok (lásd például alant az Organizer és a GlobalTrigger parancsokat) csak TriggerGroupokon keresztül hivatkozhatnak kioldókra.

Az Organizer parancs:

Az Organizer parancsok az események közti időzítést képesek kezelni. A TRLE csak egyedi eseményeket képes időzíteni, és ott se mindegyiket – a TRNG Organizer parancsa azonban megoldja ezt a problémát. (Bár ügyes trükkök révén néha a TRLE is képes ilyesmire.)

Két példa:

- Az Organizert egy kioldó beindítja. Ez azt jelenti, hogy pár másodperc múlva kigyullad egy tűz, majd újabb pár másodperc múlva egy másik tűz is.

- Az Organizert egy kioldó beindítja. Ez azt jelenti, hogy pár másodperc múlva a szoba képe a cseretérképes képre változik, majd újabb pár másodperc múlva visszaváltozik.

Mindkét Organizerben mindkét eseményt egy-egy TriggerGroup-ban kell definiálni. Ez például azt jelenti, hogy az első Organizerben az első tüzet meggyújtó kioldó egy TriggerGroupban szerepel, és a második tüzet meggyújtó kioldó egy másik TriggerGroupban szerepel.

De hát azt mondtuk, hogy az olyan kioldók, melyek objektumokat aktiválnak (így például, melyek tüzet gyújtanak) nem a TRNG termékei – és hát azt is mondtuk, hogy csak a TRNG kioldóit lehet exportálni.

Nos, ez nem ellentmondás, ugyanis a TRLE kioldóinak, azért, hogy exportálni lehessen őket, elkészült a TRNG-féle verziójuk is.

A GlobalTrigger parancs:

A GlobalTrigger parancsok olyan eseményeket vezérelnek, melyek nem köthetőek a pálya egy-egy adott pontjához.

Magyarán szólva, ha egy feltétel bekövetkezik, bárhol a pályán (bár megadhatunk akár egy szűkebb területet is), akkor a GlobalTrigger aktiválni fogja az eseményt.

A GlobalTrigger parancsnak tehát szüksége van egy globális feltételre, és (egy TriggerGroup-ban) egy exportált kioldóra, ami beindul, ha a feltétel igaz.

17. Változók

A változók számokat vagy szövegeket tárolnak. A változók jelentik jelenleg a TRNG magasiskoláját, mert körülményes a munka velük, de ezért cserében olyan rendkívüli hatásokat tudunk megvalósítani, mint például az ellenség életerejét mutató kijelzőcsík ábrázolása, az Angel of Darkness játékban látott „Lara elfárad, ha sokáig kapaszkodik” szituáció beállítása, annak megváltoztatása, hogy az ellenséges dzsip mekkora időközönként lövi ki a gránátokat stb.

A változókat általában az alábbi célokra használjuk:

Ennek alapján lássunk egy egyszerű példát változó használatára:

Az alábbi TriggerGroup lefuttatása révén a pisztoly helyett az Uzi lesz Lara kezdőfegyvere, amikor elkezdi a játékot:

TriggerGroup= 1, $2000, 96, $1, $2000, 48, $5E, $2000, 50, $785F, $2000, 232, $352, $2000, 245, $752, $2000, 100, $E10

A TriggerGroupban az alábbi kioldókkal találkozhatunk:

$2000, 96, $1 – a pisztoly (és lőszerei) eltűnnek a menüből

$2000, 48, $5E – Uzit helyez el a menüben

$2000, 50, $785F – némi Uzi lőszert helyez el a menüben

$2000, 232, $352 – az Uzi értékét (3-t) írja be egy numerikus változóba

$2000, 245, $752 – a változó 3-as értékét a „kiválasztott fegyver” paraméterbe erőlteti

$2000, 100, $E10 – a fegyverövben látható pisztolyokat lecseréli Uzi géppisztolyokra

18. A csalások

A csalások lehetőséget adnak arra, hogy egyszerűen teszteld a pályát. A TRLE csak a repülési csalásra ad lehetőséget (melynek során Larával körberepülheted a pályát), de a TRNG még ennél is több lehetőséget biztosít.

A repülő csalás:

43. ábra

19. A szerkesztőprogram testreszabása

Lehetőséged van például különféle magyarításokra, vagy az alábbihoz többé-kevésbé hasonló gomb-blokk megalkotására, melynek sajátossága, hogy ilyen blokk alapvetőleg nem létezik, a blokkot te hozod létre, formátumát és tartalmát (a létező funkciók felhasználásával) te határozhatod meg:

44. ábra

20. A teljesség igénye nélkül néhány egyéb program, melyekre szükséged lehet a TRNG használatához

A TRNG ezek nélkül a programok nélkül is működőképes, de ha bizonyos célokat el akarsz érni a pályádon (például nem „előregyártott”, hanem általad összeállított objektumkészlet használatát), akkor mindenképpen használnod kell majd e programok egyikét-másikát.

TBuilder:

A 6. fejezetben említettem a textúrakészlet összeállítását. Remek eszköz erre ez a program.

Bal oldalon a forrás látható, melyből csempéket vehetsz át, a jobb oldalon pedig a pályád textúrakészlete, amit összeállítasz:

45. ábra

WADMerger:

Számos dolgot, ami az objektumokkal kapcsolatos, csak itt tudsz végrehajtani. Például ez a program szükséges ahhoz, hogy a 9. fejezetben említett objektumkészleteket (az úgynevezett WAD fájlokat) össze tudd állítani.

A bal oldalon az összeállítás alatt álló WAD látható, a jobb oldalon pedig a forrás, melyből objektumokat helyezhetsz át balra. A kis képen látható objektum az a kijelölt objektum, mellyel épp foglalkozol:

46. ábra

A WADMerger egyik legfontosabb része az Animation Editor, ahol is a Mozgó objektumokhoz köthető animációkkal foglalkozhatsz:

47. ábra

Az animáció úgynevezett képkockákból áll. E képkockák sorozatát a játékban lejátszva, megkapod magát az animációt. Minden képkockához több adat tartozik. Elsősorban természetesen az a pillanatkép, ahogy az objektum annál a képkockánál kinéz, de például úgynevezett animációs parancsokat is hozzárendelhetsz egy-egy képkockához.

Az animációs parancsok olyasfélék, mint a kioldók, beindításukhoz az szükséges, hogy épp az a képkocka kerüljön sorra a lejátszásban. Ezáltal olyan eseményeket rendelhetsz egy-egy képkockához, mint például valamiféle zaj lejátszása, vagy (ha a képkocka épp azt ábrázolja, hogy egy hatalmas szörny a földre helyezi a lábát) a nehéz léptek nyomán rengő föld effektusa stb.

A WADMergernek nemcsak saját animációs parancsai vannak. Azaz, kihasználva azt a lehetőséget, hogy az animációs parancsok lényegében véve kioldók, kioldókat nemcsak a szkriptbe exportálhatsz az STT-ből, hanem animációs parancsként a WADMerger-be is.

A fentebb példaként felhozott $2000, 91, $214 kódszámú kioldónak így néznek ki a WADMerger-be szánt exportadatai, feltételezve, hogy azt a kiválasztott animáció 5. képkockájához kívánjuk rendelni:

Add a SetPosition anim command with following values:

Set Position [-24571] [91] [532]

Infos about exported trigger

-------------------------------------------------------------------------------

Set Trigger Type - FLIPEFFECT 91

Exporting: TRIGGER(532:0) for FLIPEFFECT(91)

<#> : Lara. (Health) Lara invulnerable for <&>time with (E)effect

<&> :   20 seconds

(E) : Blinking transparency - fast

AnimCommand: Frame=5 

-------------------------------------------------------------------------------

A kioldó exportértéke az a [-24571] [91] [532] kódszám, amit az Animation Editorba be kell gépelned.

StrPix:

Szintén az objektumokkal történő egyes műveletekhez szolgál.

Vegyük például a textúrázást. Nemcsak a szoba kék, zöld stb. síkidomaira kell textúrát lehelyeznünk, hanem az objektumokra is, hisz az objektumoknak is ki kell nézniük valahogy. A StrPix egy kiváló eszköz például arra, hogy az objektumok textúrázását megold.

Balra a WAD fájl textúrakészletét (azaz annak egy részletét) látod, ami az objektumokhoz szükséges (tehát nem azonos a szobához használt textúrakészlettel). Jobbra egy objektum, mellyel épp foglalkozol:

48./a ábra                                  48./b ábra

Metasequoia:

Rengeteg objektumra lelhetsz az Interneten, de ha úgy döntesz, hogy megszerkeszted a saját objektumaidat, akkor figyelmedbe ajánlom ezt a programot.

49. ábra

Meta2TR:

Ez a program lehetőséget ad például arra, hogy valóságosabban tűnjön fel a szobában mindaz, ami túl szögletes:

50. ábra (forrás: www.aspidetr.com)

FLEP:

Talán hallottál már a TREP-ről, ami arra szolgál, hogy olyan hatásokat érj el a játékban, melyeket egyébként nem tudnál.

A FLEP gyakorlatilag nem más, mint a TREP-nek a TRNG-kompatibilis verziója, segítségével olyan hatásokat érhetsz el, melyre a TRNG fejlesztései (még) nem adnak lehetőséget.

51. ábra

Készítette: Ákos(AkyV)