Author Topic: FS9 konvertálás FSX-re (forrás fájlból, gmax)  (Read 7147 times)

Offline tsGucci

  • Administrator
  • Hero Member
  • *****
  • Posts: 4.538
    • LHSimulations
FS9 konvertálás FSX-re (forrás fájlból, gmax)
« on: February 22, 2011, 08:55:57 AM »
Már jópár "munkaórámban" benne van a fent említett "kihívás" teljesítése. A debrecen scenery okából viszont nem halaszthattam tovább és neki kellett látnom egy módszer kidolgozásának. Tegnap este sikerült valamilyen szinten megoldanom. El kell hogy mondjam a cím lehetett volna az is hogy "hogyan szívassuk meg magunkat". Gondoltam megosztom a tapasztalataimat.

Szóval a sztori háttere hogy tulajdonképpen mir?l is van szó:
A Debrecen reptér objektumai (a ground kivételével) FS9 alapon készülnek jelenleg, tehát a gmax FS2004-es gamepackjával, persze amib?l fs9-es mdl majd fs9 alapú bgl lesz. Ez alapvet?en nem is gond, mert az FSX simán megjeleníti ?ket. Persze itt is jönnek a kivételek. Kivételt képeznek az effektek (pl. világítótestek, villogó lámpák, füst stb.) ezek abszolút nem jelennek meg. Gond van még az ún. átlátszó textúrákkal (vagyis alpha csatornás) cuccokkal. Átlátszanak végülis, de a mögöttük lév? objektumok nem látszanak csak a ground, ami elég furcsán néz ki.
Az effektet és átlátszóságot tartalmazó objektumokat úgymond FSX-esíteni kell. Néhány hét kérdez?sködés, tutorialok olvasgatása után kialakult bennem egy elképzelt folyamat hogy is lehetne ezt megcsinálni. Alap elképzelésem az volt hogy a gmax fájlt megnyitom FSX gamepackkal, újra kiexportálom FSX mdl-ben, azt beforgatom egy új FSX alapú bgl-be, a pozíciókat tartalmazó bgl-ben pedig kicserélem a régi objektum GUID számát az újra. Gondoltam én hogy csak ennyi, én naív.
Tegnap belekeztem a dologba konkrétan. Szóval fogtam a debreceni reptér egyik objektumát - tankolóállomást - és megnyitottam FSX gamepackkal. Sajnos az FSX gamepack egyedi material típust használ, ugye az FS9 a gmax standard-ot használja. Vagyis a régi materialokat, jelen esetben 2-?t mivel 2 textúrán van a tankolóállomás, törölni kellett. Ekkor persze elt?nik a textúra az objektumról. Létre kell hozni ?ket újra de most már FSX material típussal. Ha az új material elkészült akkor az objektumra újra kell alkalmazni, a szívás az hogy tudni kell az objektum melyik részén van az egyik és melyiken a másik material, különben rossz textúrát fog ráhúzni az objektumra. Persze én el is csesztem úgyhogy a földkupacon nem f? hanem ablakok meg táblák jelentek meg. Jó hír az hogy legalább nem kell a polykat újra mappolni. Könnyítés az lehet hogy nem töröljük ki az elején az FS9 materialokat, hanem létrehozzuk az FSX-eseket, a material library-t megnyitva pedig lenézzük melyik objektumon melyik material van és arra alkalmazzuk az új fsx-es materialt egészen addig amíg az fs9-es materiálról el nem fogy az objektum. A dolog pikantériája hogyha LOD-k vannak az objektumon akkor természetesen azokon is el kell játszani a fenti játékot. Én esetemben 2 material 3 LOD volt. Dolog még ott is f?szerezve van hogy az FSX material opciókban azért több beállítás is van, de azokat is ki kell tapasztalni, pl. az éjszakai textúra nem az ambienten hanem a self illumination helyen van.
Jött az exportálás kérdése. Ez relatív egyszer?en ment. El?ször GUID nevet kell adatni neki, vagyis fent menü LOD Name tool, add new guid. Ekkor a file properties menu 3. tabulátorán ad neki egy FriendlyName-et és egy GUID-ot. GUID tulajdonképpen egy azonosító az FS-en belül huszonvalahányjegy? egyedi karakter (az objektum rendszáma). Itt megjegyezném hogy az export a GUID-ot az mdl-ben tárolja nem hoz létre xml-t (esetleg .x fájlt ha kérjük). A GUID-ot a gmax fájlonként lehet visszakeresni. Tehát egy gmax fájl egy GUID nem úgy mint az FS9 ahol a GUID nem volt tárolva a gmax-ban hanem az mdl mellé exportált xml fájlban. Ez nagy szívás pl. ha FS9-hez egy gmax fájlba több objektumot raktunk le amit egyenként exportálgattunk ki. FSX esetén az összes objektumot egy külön gmax fájlba kell tenni... Szóval export megtörtént. Létrejött egy mdl fájl. Fogtam a library creatort és csináltam vele egy új libraryt beletettem ezt az egyetlen tankolóállomást majd FSX-es bgl-be fordítottam. A tankolóállomást tartalmazó régi libraryba nem tehettem mivel az FS9 alapú bgl. És egy bgl belül nem lehet kétfajta mdl.
Aztán jött az újabb szívás. Ugye a régi tankolóállomás már el volt helyezve a reptéren. Szerettem volna ha nem kell elhelyezni újra hanem már az új X-es objektumra hivatkozik. Mivel a tankolóállomás új GUID-ot kapott ezért persze az nem jelenik meg (s?t jelen esetben még mindig a régi jelenik meg). Van egy bgl ami a pozíciókat tartalmazza vagyis hivatkozik a GUID-ra és annak a koordinátáira, irányára, magasságára, nagyítására. Ez persze egy FS9-es ala?pú bgl. Az elképzelésem az volt hogy visszabontom ezt a bgl-t, jegyzetömbbel megkeresem a régi fs9-es tankolóállomás GUID-ját és kicserélem az új FSX-es GUID-ra. Visszaforgatom bgl-be és voila. Ugyancsak : én naív. Persze a bgl-be visszaforgatás hibával elszállt. Sajnos az FSX-es GUID-ok kicsit más formátumúak. Az a huszonvalahány karakter között van 4 köt?jel is, úgy néz ki mint egy számlaszám. Gondoltam kitörlöm a köt?jeleket hátha úgy jó lesz. Megintcsak hiba. Aztán eszembe jutott hogy a GUID számot ha akarom én is megadhatom a gmax-ban ha akarom. Gyors visszanyitottam a gmax fájlt, fogtam a régi fs9-es tankolóállomás GUID-ját és bemásoltam. Megpróbáltam kiexportálni. Persze a gmax is elszállt hibával a fent említett GUID formátum különbség miatt. Túl szép lett volna hogy igaz legyen. (akkor még a pozíciós fájlt sem kellett volna módosítanom).
Nem maradt más mint hogy egy új poziciós fájlt hozzak létre aminek FSX-es alapja van. Találtam is a neten egy xml kódot ami szinte megszólalásig hasonlít az fs9-re, nagyon kicsi különbséggel. Ebbe gyorsan beleraktam az új GUID számot. Akkor megnéztem a régi tankstation koordinátáit és paramétereit és átmásoltam az új poziciós fájlba. Visszaforgattam bgl-be. Ekkor persze még a régi fs9-es pozíció fájlt is módosítanom kellett hiszen a régi FS9-es objektum sorát törölnöm kellett különben az is megjelent volna (ugyanott). Így jó is lett. Haleluia. Szóval a végeredmény hogy az FSX-esített objektumok külön bgl-be kerültek, külön pozíció leíró fájllal.

Persze még vannak gondok a materialokkal, mert csillogást is akarunk tenni az ablakokra és az átlátszóság sem tökéletes, de már legalább megjelennek az fsx-es objektumok.

Ha valaki erre vetemedne akkor legalább a fenti hisztériát nem kell végigcsinálnia.
« Last Edit: February 22, 2011, 09:12:11 AM by tsGucci »

Lima Hotel Simulations - Flight Simulator scenery design for Hungary

Offline tsGucci

  • Administrator
  • Hero Member
  • *****
  • Posts: 4.538
    • LHSimulations
Re:FS9 konvertálás FSX-re (forrás fájlból, gmax)
« Reply #1 on: June 13, 2011, 17:20:04 PM »
Id?közben megint er?sen dolgozok a témán. Már sikerült a materialokat átrakosgatnom FSX-re és az effekteket is.  A pozíciós fájlnál viszont egy dolgot nem próbáltam ki ezel?tt, a következ?t:

Az eredeti FS9-es fájlt visszaforgattam xml-be. Fogtam az xml-t megkerestem az objektum régi FS9-es GUID számát és felülírtam az új FSX-es GUID azonosítójával. Ezután az xml-t FSX alapú bglcompilerrel visszaforgattam bgl-be. És hihetetlen módon m?ködött. Az FSX BlgCompiler engedi hogy két fajta (FS9 és FSX) formátumú GUID-ra hivatkozzunk egy pozíciós bgl fájlon keresztül. Ez jó hír mert így egy csomó plusz melótól megszabadultam.

Az eredményt majd a kijöv? LHDC FSX-ben látjátok.

Lima Hotel Simulations - Flight Simulator scenery design for Hungary