Mumble Nézet News Hasábok Régi Játék oldalak Szolgáltatás oldalak Partner oldalak
Bezárás

CSHU - Hungarian Counter-Strike Portal

Fogadóiroda Tovább

Kredited: 0  |  Találati arányod: 0%

Hirdetés

Lipsync, azaz az 'ajakszinkron' használata

2006. szeptember 5. n/a 4384 olvasás

Hogyan szinkronizáljuk a képet a hanggal egy movieban

Perfekt angolosok előnyben!!!

Kezdésnek válassz ki egy számot (lehetőleg angolt, magyarral elég nehéz dolgod lenne, mivel csak az angol nyelvben használt fonémákat ismeri a program), majd egy rövid, 5-10 másodperces szöveges részt vágj ki valamilyen audio-szerkesztővel. Az elmentésénél figyeljünk, hogy 22050Hz, 16Bit, Mono legyen a formátuma. Minél rövidebb a hanganyag, annál nagyobb az esélye, hogy a program felismeri a fonémákat (magyarral egyáltalán nem működik az automatikus felismerő algoritmus). A megvágott .wav-ot mentsd el a "Steam/SteamApps/'felhasznalonev'/half-life 2/hl2/sound/" mappába (ha más mod-ot választasz ki a későbbiekben, akkor annak a játéknak a "sound" mappájába mentsd).
Töltsd le a Source SDK-k. Ezt a Games ablakban a Tools fülnél találod meg. Miután elindítottad, a "Current Game" opciónál válaszd ki melyik mod-ot akarod használni (én a Half-life 2-ot javasolom, mivel annak a gcf-jében van benne a legtöbb modell, aminél lehet használni a lipsync-et).

Duplaklikk a Face Poser-en. A rengeteg felnyíló ablak közül nekünk csak a következőkre lesz szükségünk: 3D view, Phoneme Editor, Choreography, Flex Animation. File > Load model: itt kiválaszthatjuk bármelyik, a HL2-ben szívünkhöz nőtt szereplőt, akit animálni fogunk. Nyisd meg a Phoneme Editor ablakot (duplaklikk a megfelelő fülön), majd a "Load" gombbal nyisd meg a lementett wav-ot. Az egér görgőjével tudunk zoomolni a hullámformánál. Jobb-egérgomb az ablakon, majd "Redo Extraction". A felugró szövegmezőbe értelemszerűen a zenerészlet szövegét kell beírni. Ha a példával dolgozol, akkor ezt a sort kell: "as your bony fingers close around me long and spindly death becomes me heaven can you see what i see". A program felülre berakja a beirt sort szavanként, majd alá ugyanazokat, de a hosszúságuk mar elviekben megegyezik a zenében hallottakéval. Ismét jobbklikk, és "Commit Extraction". Most a fenti sor szavainak hosszúsága megváltozik, és a legalsó sorban megjelennek a fonémákat képviselő dobozkák. A pé1da fájlal 20/12-es aranyt sikerült elérni, ennél jobbra ne nagyon számítsatok, főleg ilyen hosszúságú wav-oknál (a legjobb teljesítmény érdekében félmondatnyi, mondatnyi hosszúak legyenek). Mint minden Valve által készített 'kiegészítő' program, ez is tele van bugokkal... Najó, inkább nézzük, hogy mit is szedett ki. Ha az egeret rávisszük lent az egyes fonémákra, akkor a 3D View-ben láthatjuk, hogy fog csücsöríteni a modell. A fenti szavak, illetve a lenti fonémák helyzetét a doboz kiválasztásával, majd Shift+bal kattintás, hosszát Ctrl+bal kattintás tudjuk változtatni. A kiválasztást az Esc megnyomásával tudod törölni, a kiválasztott törléséhez pedig a Delete-et használd. A fenti sor nem játszik szerepet az animálásban, az tulajdonképpen egy referencia-anyag a fonémákhoz. Ha kiválasztjuk valamelyik szavat, akkor a hozzátartozó morfémákat is megjelöli a program a lenti sorban, de a szó helyzete és hossza nem befolyásolja a fonémák helyzetét és hosszát, tehát nem változik meg az animáció. Egyszerűbb csak az alsó sort módosítani, de hosszabb szövegeknél, ha nem igazítjuk hozzá a szavakat, könnyen elkavarodhatunk a sok értelmetlen 'ax' meg 'nx' között.
Fonéma hozzáadása egy szóhoz: Balklikk-el válaszd ki, Jobbklikkel hozd elő a menüt, és ott pedig az "Add phoneme to 'xyz'". A felugró táblázatban láthatod a fonémák írásos jelölését. Vegyünk egy példát: ha az angol szó a 'your', akkor ezeket a gombokat nyomd meg szépen sorjában: 'y' 'ow' 'r'. A 'Code' melletti mezőben kiírja hogy mit nyomkodtál eddig. A gombok és a Code között kiír egy kis segítséget, hogy mi-mit képvisel, ehhez elengedhetetlen legalább a középszintű angoltudás.
Ha már van rendelve fonéma a szóhoz, akkor viszont lent kell kiválasztanod valamelyik kis dobozkát, jobbklikk, és "Insert phoneme before/after 'xyz'".
Ha a példával dolgozol, akkor ezekhez a szavakhoz ezeket a fonémákat társítsd:
your: y ow r
me: m iy
and: eh n
death: d ae th
Ennél a résznél már nem csak a fonémákat nem ismerte fel, de a szó hosszúságát is elrontotta a program. Az ilyen tévesztéseket úgy a legkönnyebb orvosolni, hogy belehallgatsz a zenébe, mettől-meddig tart a szó, ezt a részletet kijelölöd (balklikk nyomva tartása mellett húzd az egeret), nyomsz egy 'Play'-t, meghallgatod hogy most jó-e, és hozzáigazítod a kék kijelöléshez a szavakat és fonémákat.
becomes: b ih c ah m z
you: y uh w
I: aa y
A 'see'-nél az 's' és az 'iy' közötti rublikát húzzuk egy kicsit balra, mivel az énekes az utolsó fonémát elnyújtja egy picit.
Nyomj a 'Play' gombra, és ellenőrizd, hogy jól dolgoztál-e. A 'Redo Exraction' és a 'Save Changes' gombok alatt 2 fül van, válts át az 'Emphasis'-re. Itt kihangsúlyozhatsz, illetve elnémíthatsz egyes fonémákat. Ctrl+Balklikk-el tudsz pontokat hozzáadni, majd a program a pontokat automatikusan összeköti. Ha fenn van a görbe, akkor hangsúlyos, ha lent, akkor néma lesz az adott fonéma.
Ha mindennel kész vagy, akkor 'Save Changes', ez elmenti a fonémákat a wav fájlba, és csukd be a 'Phoneme Editor' ablakot.

Meg ha az előzőekben mindent tökéletesen beállítottuk, akkor is elég sivár és egyhangú marad a jelenet, ezért most a 'Choreography' ablakra lesz szükségünk. (Ha meg nincs megnyitva, akkor duplaklikk lent a megfelelő fülön.) File sorban Choreography > New. A fájlnév bármi lehet, de mindenképpen ebbe a mappába mentsd: "Steam/SteamApps/'felhasznalonev'/half-life 2/hl2/scenes/". A felugró Name mezőbe a kiválasztott model nevét írd. (Gman: gman, Alyx: alyx, stb...) FONTOS hogy megegyezzen, vagy különben a hl2 motorja nem fogja tudni lejátszani az animációt.
'gman'-en jobbklikk, New > Channel. A 'Name'-hez akármit beírhatunk, például 'audio'.
'audio'-n jobbklikk, 'WAV File...'. Sajnos ez is bugos, csak úgy tudod behozni a lementett zenét, hogy a 'Sound' mezőbe beírod a nevét kiterjesztéssel együtt. A 'Start time' 'Absolute' legyen, és az értéke pedig '0' (A 'Name' itt is barmi lehet).
Jobbklikk a 'gman'-en, 'New' > 'Channel...'. Jobbklikk a 'flex_face'-en, majd 'Look at actor'. A 'Name' ismét jelentéktelen, de a 'Look At Actor' mezőben a '!player' legyen megadva. 'Start Time': '0', 'End Time': mindegy, csak nagyobb legyen mint nulla. Ezzel azt érjük el, hogy a modell a játékos szemébe fog nézni (nem lesz kancsal xD).
Jobbklikk a 'flex_face'-en, 'Flex animation...'. Név lényegtelen, 'Start Time' nulla, 'End Time' mindegy, csak nagyobb mint 0.
Most ezt kell látnod a 'Choreography' ablakban:
Az 'audio' csatornán nem változtatunk, az a 'Phoneme Editor'-al lementett wav, a két piros csíkot pedig a Ctrl+drag-el állítsd az audio sávval megegyező hosszúságúra. Duplaklikk lent a 'Flex Animation' fülre. Itt vannak felsorolva az "arcizmok", amiket tudunk animálni. Duplaklikk amelyiken változtatni akarsz. Ez is úgy működik, mint az előzőekben az 'Emphasis'; ha lenn van a görbe, akkor a negatív, ha fent, akkor a pozitív irányba mozdulnak a virtuális izmok. Tovább nem részletezném, alkossatok kedvetekre, majd Choreography > Save (fent). Elviekben kész vagyunk, megnyomod a play-t, és már énekel is. A 3D View-ban megjelenítetteket Fraps-al fel tudod venni, és mar keverheted is a moviedba.

De ez nem valami látványos, nincsen árnyékolás, és a háttéren se tudsz változtatni. Éppen ezért mapperkedjünk is egy picit ;]. Zárd be a Face Poser-t, es nyisd meg a Hammer-t (ez is a Source SDK-ban van). Nagyon részletesen nem mennék bele, ha nem vagy tisztában az alapokkal, nézz körbe egy-két magyar oldalon, biztosan találsz valamit.
Kell nekünk két db extra entity: logic_choreographed_scene és npc_gman (ez lehet npc_breen, npc_alyx, attol függ kit választottál Actor-nek a Face Poser-ben).

npc_xyz:
Name: xyz

logic_choreographed_scene:
Name: ami tetszik
Scene file: amit lementettél a Face poser-el
Outputs fül:
My output named: OnStart
Targets entities named: xyz
Via this input: StartScripting
Delay: érdemes egy olyan 5-6 másodpercet beállítani, hogy legyen időd 'elfoglalni a helyed' ;] Lényeg a lényeg, csinálj egy gombot, vagy egy trigger_multiple brush-t, ami outputja a logic_choreographed_scene, majd állítsd be az általad elképzelt fényhatásokat. Ha homogén, egyszínű hátteret akarsz, amire nincsenek kihatással a fényforrások, akkor használd a 'Block Light' textúrát. Compile, és nézd meg HL2-ben, mit alkottál. Ha hibát írna ki a Hammer a pálya automatikus betöltésénel, akkor kapcsold ki, indítsd el a HL2-t, és a consoleban a 'map' paranccsal töltsd be. Aktiváld a gombot, és vedd fel a jelenetet a ’startmovie’-val.
Mára ennyi! HF! ^^