Implementowanie plikow AUDIO
I. Eksportowanie plików Audio z gier IE.
Często pisząc dodatki potrzebujemy głosu dla naszej postaci. Niestety aktor do głosu nie zawsze jest pod ręką. Czasami robimy też kontynuację NPC z BG1 do BG2 i potrzebujemy oryginalnych dźwięków tej postaci. Oto jak importować pliki z gier opartych na Infinity Engine i jak je modyfikować.
1. Ściągnij i zainstaluj DLTCEP
2. Ustaw DLTCEP (musisz podać źródło z folderu gry IE czyli prawdopodobnie BG1 albo BG2. Jest to dość proste.)
3. Jeżeli nie wiesz jak nazywają się pliki które pragniesz pozyskać ale wiesz do jakiej postaci należały to otwórz plik postaci (edit-> .cre file) i wybierz zakładkę soundset. Tam będą nazwy plików i napisy do tych dźwięków. Łatwo się zorientować dzięki temu.
4. Znamy już nazwę pliku. Wybieramy więc zakładkę Sound w głównym menu DLTCEP. Wybieramy opcję WAWC to WAV.
5. Wybieramy odpowiedni plik.
6. Plik został już wyeksportowany do folderu Override w głównym folderze gry.
7. Nie możesz odtwarzać pliku? Potrzebujesz go edytować? Potrzebujesz więc programu do edycji, nagrywania i załatwiania podobnych spraw. Ja używam Audacity. Jest dość ubogi, ale może czytać wyeksportowane pliki oraz edytować je, można także zapisywać w nim w formacie .ogg. Ta część tutoriala będzie dalej napisana jak dla programu Audacity.
8. Zainstaluj Audacity.
9. Otwórz wyeksportowane pliki.
10. Teraz możesz odtwarzać, edytować, ciąć pliki jak tylko chcesz.
11. Zapisz plik.
Najlepiej jest zapisywać pliki w formacie .ogg bo ważą najmniej. Później można po prostu dodać dekoder do instalki moda. (O ile nam chodzi o dodawanie dźwięków do modyfikacji.)
II. Tworzenie dekodera plików .ogg i dodawanie go do Twojej modyfikacji.
Gdy piszemy modyfikacje najczęściej korzystamy z formatów .ogg dlatego, że ważą bardzo mało. Przez to mody nie mają 10 mb tylko 2 mb. Przydatne, prawda? Zajmujemy mniej miejsca na serwerach, szybciej upload'ujemy itd. Teraz dowiemy się jak tworzyć dekoder.
1. Otwieramy notatnik.
2. Teraz tworzymy plik który będzie przy instalacji moda dekodował pliki.
Wpisujemy:
@echo off
cd override
oggdec XXX*.ogg
/// wszystkie pliki które zaczynają się od XXX będą dekodowane.del XXX*.ogg
/// wszystkie pliki .ogg które już są po dekodowaniu zostaną usunięte a .wav zostaną.del oggdec.exe
/// plik dekodera będzie usunięty.cd ..
3. Zapisujemy plik jako XXXAudioInstall.bat gdzie XXX to nazwa np naszego NPC czy postaci której właśnie dajemy głos. (Pamiętamy, że format pliku musi być .bat!)
4. Plik umieszczamy w folderze modu.
5. Teraz stworzymy plik który będzie usuwał pliki audio przy dezinstalacji. Wpisujemy:
del override\XXX*.wav
/// Wszystkie pliki zaczynające się od xxx zostaną usunięte.@ECHO
@ECHO XXX Audio Uninstalled
/// XXX to najlepiej nazwa modu@ECHO
6. Zapisujemy plik jako XXXAudioUninstall.bat gdzie XXX jest taka sama jak w punkcie 3.
7. Ściągamy dekoder ogg.
8. Teraz załóżmy, że tworzymy NPC o imieniu XXX. Tak więc otwieramy folder XXX/AUDIO. Tam powinny być pliki dźwiękowe naszego moda. Wklejamy tam też plik oggdec.exe z dekodera który ściągnęliśmy. (SAM TEN JEDEN PLIK!)
9. Dodajemy w pliku instalacyjnym moda (.tp2) linijkę:
COPY ~XXX\AUDIO~ ~override\~
To skopiuje nasze pliki głosu do folderu override.
10. W tym pliku .tp2 dodajemy też linijki:
COPY ~XXX\XXXAudioUninstall.bat~ ~XXXAudioUninstall.bat~
COPY ~XXX\XXXAudioInstall.bat~ ~XXXAudioInstall.bat~
AT_INTERACTIVE_EXIT ~XXXAudioInstall.bat~
AT_UNINSTALL ~XXXAudioUninstall.bat~
To sprawi, że nasze pliki .ogg będą dekodowane.
11. Możemy się cieszyć poprawnym zdekodowaniem!
Zdarzyło się, że plik oggdec.exe szwankował. Wynika to z tego, że musi być to dobra wersja dekodera. Możecie ściągać z innych źródeł niż podałem bo niekoniecznie wiem czy to jest odpowiednia wersja. Swoją mam od dawna. Poza ściąganiem najprostszym sposobem jest skopiowanie pliku oggdec.exe z innego moda. Większość modów go posiada.
III. Dodawanie soundsetu i napisów do naszego NPC Moda.
Potrzebujemy dodać teraz dźwięki i napisy do naszego NPC, prawda? Tak więc otwieramy plik .tp2 i pod komendą w której była kopiowany plik .cre naszego NPC pod SAY NAME1 i pod SAY NAME2 wpisujemy:
SAY INITIAL_MEETING ~Witaj! A kim to ty jesteś?~ [SK#MEET]
SAY MORALE ~~ [SK#MORA]
SAY LEADER ~~ [SK#LEAD]
SAY TIRED ~~ [SK#TIRE]
SAY BORED ~~ [SK#BORE]
SAY BATTLE_CRY1 ~~ [SK#CRY1]
SAY BATTLE_CRY2 ~~ [SK#CRY2]
SAY BATTLE_CRY3 ~~ [SK#CRY3]
SAY BATTLE_CRY4 ~~ [SK#CRY2]
SAY DAMAGE ~~ [SK#DAMA]
SAY HURT ~~ [SK#HURT]
SAY AREA_CITY ~~ [SK#CITY]
SAY DYING ~~ [SK#DYIN]
SAY AREA_FOREST ~~ [SK#FORE]
SAY AREA_DUNGEON ~~ [SK#DUNG]
SAY SELECT_COMMON1 ~~ [SK#COM1]
SAY SELECT_COMMON2 ~~ [SK#COM2]
SAY SELECT_COMMON3 ~~ [SK#COM3]
SAY SELECT_COMMON4 ~~ [SK#COM4]
SAY SELECT_COMMON5 ~~ [SK#COM5]
SAY SELECT_COMMON6 ~~ [SK#COM3]
SAY SELECT_ACTION1 ~~ [SK#ACT1]
SAY SELECT_ACTION2 ~~ [SK#ACT2]
SAY SELECT_ACTION3 ~~ [SK#ACT3]
SAY SELECT_ACTION4 ~~ [SK#ACT4]
SAY SELECT_ACTION5 ~~ [SK#ACT5]
SAY SELECT_ACTION6 ~~ [SK#ACT3]
SAY SELECT_ACTION7 ~~ [SK#ACT4]
SAY SELECT_RARE1 ~~ [SK#RAR1]
SAY SELECT_RARE2 ~~ [SK#RAR2]
SAY CRITICAL_HIT ~~ [SK#CRIH]
SAY CRITICAL_MISS ~~ [SK#CRIM]
SAY TARGET_IMMUNE ~~ [SK#IMMU]
SAY INVENTORY_FULL ~~ [SK#FULL]
SAY HAPPY ~~ [SK#HAPP]
SAY UNHAPPY_ANNOYED ~~ [SK#ANNO]
SAY UNHAPPY_SERIOUS ~~ [SK#SERI]
SAY UNHAPPY_BREAKING ~~ [SK#BREA]
SAY SPELL_DISRUPTED ~~ [SK#DISR]
SAY SET_A_TRAP ~~ [SK#TRAP]
SAY HIDDEN_IN_SHADOWS ~~ [SK#SHAD]
SAY PICKED_POCKET ~~ [SK#PICK]
SAY AREA_DAY ~~ [SK#ADAY]
SAY AREA_NIGHT ~~ [SK#NIGH]
To jest spis dźwięków z soundsetu w BG2.
BG I:
SAY HAPPY ~No, no! Cańkiem nieőle.~ [aval02]
SAY UNHAPPY_ANNOYED ~No nie powiem... Jesteômy subtelni jak kupa ńajna na ôrodku Wrót Baldura.~ [aval03]
SAY UNHAPPY_SERIOUS ~Uwaöańem was za diamenty i rubiny... jak widaď, pomylińem siđ. Kroczcie dalej tî drogî poöogi. Ja postanowińem z niej zboczyď!~ [aval04]
SAY TIRED ~Moje zmysńy sî przytđpione przez nicoôď zmđczenia. Powinniômy odpoczîď zanim legniemy... przed stopami naszych wrogów.~ [aval05]
SAY BORED ~Strugi czasu pńynî, a my stoimy. Pozwalamy by przepńywańy pomiđdzy naszymi palcami.~ [aval06]
SAY BATTLE_CRY1 ~Do walki! Niech ponadziewajî siđ na nasze spragnione miecze!~ [aval07]
SAY DAMAGE ~Aa!~ [aval08]
SAY DYING ~Poöoga... Poöoga mnie dopadńa...~ [aval09]
SAY HURT ~Broczđ szkarńatem! Pomocy!~ [aval10]
SAY SELECT_COMMON1 ~No, no, no. A wiđc rubin potrzebuje mojej pomocy!~ [aval11]
SAY SELECT_COMMON2 ~(Nuci melodiđ.)~ [aval12]
SAY SELECT_COMMON3 ~A wiđc oto stojđ tu przed tobî.~ [aval13]
SAY SELECT_COMMON4 ~Twoje zachowanie jest, öe tak powiem, intrygujîco podniecajîce.~ [aval31]
SAY SELECT_COMMON5 ~Czego pragniemy tym razem?~ [aval32]
SAY SELECT_COMMON6 ~Niech oôwietla was tsuki akari.~ [aval33]
SAY SELECT_ACTION1 ~Naturalnie. Na-tu-ralnie.~ [aval14]
SAY SELECT_ACTION2 ~Sîdzisz, öe drzemie w tobiđ nie wiadomo jaka inteligencja? I co tak gńupio kiwasz gńowî?!~ [aval15]
SAY SELECT_ACTION3 ~Och, rubinie, nie traktuj nas jak psy na posyńki.~ [aval16]
SAY REACT_TO_DIE_GENERAL ~Nie pozwólmy by poöoga pochńoneńa kogokolwiek wiđcej!~ [aval17]
SAY MORALE ~Uciekajmy! Uciekajmy! Nie mierzyď siđ nam z losem!~ [aval18]
SAY LEADER ~Tak, teraz maestro jest na swoim miejscu.~ [aval19]
SAY AREA_FOREST ~Korzenie tych drzew zdajî siđ krđciď i wiď niczym strugi czasu.~ [aval20]
SAY AREA_CITY ~Ach, ten zgieńk...~ [aval21]
SAY AREA_DAY ~Piđkny mamy dzionek. Moöe odwiedzimy jakîô tawernđ? Pod Pomocnî Dńoniî?~ [aval22]
SAY AREA_NIGHT ~Noc sprawia, öe czujđ na karku powiew ômierci.~ [aval23]
SAY AREA_DUNGEON ~Mam nadziejđ, öe ten trzask pod mojî stopî to nie byńa ludzka koôď...~ [aval24]
SAY SELECT_ACTION4 ~Teraz mi zawracasz gńowđ, a gdy nie patrzđ to szperasz w mojej ksiđdze zaklđď, tak?~ [aval25]
SAY SELECT_ACTION5 ~Zgńodniańem... Zjadńbym smoka z pazurami.~ [aval34]
SAY SELECT_ACTION6 ~Zjadńbym sobie parđ ciastek przepisu mojej ciotki...~ [aval26]
SAY INSULT ~ëmierdzisz rzepî...~ [aval27]
SAY COMPLIMENT1 ~Masz tak piđkne rysy twarzy...~ [aval28]
Pomiędzy znaczkami ~~ wpisujemy napisy tak jak zaprezentowałem w INITIAL_MEETING, a pomiędzy kwadratowe nawiasy wpisujemy plik dźwiękowy jaki ma być wtedy odtwarzany np. [XXX01]
(Lista do BG2 która podałem jest wycięta z .tp2 dodatku Neh'Taniel Mod! Nie ma on napisów dlatego nie ma nic między znaczkami ~~ a tekst INITIAL_MEETING został napisany przeze mnie jaki przykład.
Lista do BG1 jest z modu Tsuki NPC który będzie częścią TWM. Są to moje zastrzeżone teksty. Ta część to nieodłączny fragment Tsuki NPC i nie jest do użytku w innych modach!)
Jeżeli jeszcze nie zrobiliśmy tego to wpisujemy nad komendą kopiowania postaci w .tp2 tą linijkę:
COPY ~XXX\AUDIO~ ~override\~
oraz komendy dekodowania jeżeli pliki są w formacie .ogg (patrz rozdział II tutoriala.)
IV. Dodawanie dźwięków do dialogów postaci.
Jeżeli chcemy by w trakcie dialogu odtwarzany był głos postaci to po komendzie SAY i tekście dodajemy kwadratowy nawias z plikiem jak ima być odtwarzany. Oto przykład:
IF ~NumTimesTalkedTo(0) Global("XXXQuestOne","GLOBAL",0) Global("XXX01Joined","GLOBAL",0)~ THEN BEGIN FirstMeeting
SAY ~Ojej! Witaj! Co taki ktoś jak ty tutaj robi?!~ [XXX045]
IF~~THEN REPLY ~W sumie to nic.~ GOTO answer1
IF~~THEN REPLY ~Spadaj!~ GOTO answer2
END