A Ghoul2 a még ma is népszerű Q3 engine-re épülő Jedi Academy animációs rendszere, amelyet a Raven fejlesztett ki.
Dokumentáció sajnos nincs hozzá mindössze header-ök alapján lehet kikövetkeztetni, hogy mit tartalmaznak a file-ok. Kétféle file-ban tárolja az adatokat: .glm és .gla.
A .gla-ban tárolt animációt kétféle módon használhatjuk fel:
- a csontváz kiszámítása után az eredeti vertexeket skinneljük vele. Ennek az a hátránya, hogy a csontvázat nem tudjuk felhasználni másra, mivel nem világba lesz transzformálva; ehhez még a basepose mátrixszal történő szorzást is be kell iktatni.
- az animáció előfeldolgozása után a basepose-ba transzformált vertexekkel skinnelünk.
Ez utóbbi módszer két lépcsőből áll.
- A vertexeket beszorozzuk a megfelelő csont basepose inverzével - amely mátrixokat eltárolja a .gla.
- A csontok basepose mátrixát kombináljuk az animációval. Erre a következő módszert használom:
- kiszámolom az első módszerrel az animációt és
- ezt beszorzom a basepose mátrixszal
- az így kapott valóban világban lévő mátrixokat beszorzom a szülő inverz mátrixával így átviszem lokális csont térbe - Az így kapott mátrixokat visszakonvertálom kvaternió + pozíció párosba és visszaírom az animációba.
Elég sok számolást igénylő folyamat mivel minden animáció, minden frame-jére le kell futtatni, de szerencsére csak egyszer kell elvégezni az importáláskor.