Poprzedni temat «» Następny temat
[TUTORIAL] Dodawanie muzyki do obszarów
Autor Wiadomość
Lava Del'Vortel 
Avatar Sune
Łasiczy Szperacz


Wiek: 28
Posty: 3003
Podziękowania: 180/59

Wysłany: 2010-06-05, 16:40   [TUTORIAL] Dodawanie muzyki do obszarów

Dodawanie muzyki do obszarów bez ingerencji w songlist v.1 (opracowanie - Lava Del'Vortel)

1. Wstęp

Postanowiłem napisać ten mały tutorial z powodu błędów, jakie niosą ze sobą próby dodania nowych ścieżek do songlist. Niestety songlist ma ograniczoną liczbę liczbę miejsc na nową muzykę, co czyni dodawanie muzyki nie do końca bezpieczną czynnością - możliwe jest nadpisanie istniejących ścieżek, tych z innych modów. W romansach, muzykę dodaje się przez blank i drugi plik dźwiękowy. Używa się później PlaySound. Podobnie postaramy się przyrządzić pliki dla lokacji oraz skrypt, który będzie tym sterować.
Sposób przeze mnie zaprezentowany nie jest idealny, ale powinien wysterczać do większości przypadków.

2. Przygotowanie plików

-Pierwsze, czego powinniśmy być pewni, to, że do lokacji nowej nie jest przyporządkowana żadna muzyka. Jeżeli robiliście lokacje od początku i tego nie ustawialiście, to nie jest, więc tym punktem nie trzeba się przejmować.
-Poszukajcie muzyki, która będzie wam odpowiadać do lokacji. Jeżeli chcecie, by nie wybijała się za bardzo od klimatu BG to pamiętajcie, by wybrać muzykę spokojną, bez wysokich dźwięków. Ma być tłem. Zachęcam do przeglądania soundtracków z gier i filmów, bo muzyka z tła filmowego zazwyczaj pasuje. Jest robiona tak, by nie zagłuszała dialogów. Zapiszcie sobie ile trwa muzyka (w sekundach). To pomoże nam przygotować skrypt. Zapiszcie plik jako .ogg lub jako .wav. Pamiętajcie, że zwyczajne .wav ważą więcej niż .ogg, jednak pliki .ogg będą potrzebować dodatkowego dekodowania (opisane w tym tutorialu).

3. Skrypt w pliku .baf

To jak będzie działała muzyka, z jaką częstotliwością chcemy by grała będzie ustalane za pomocą 2 bloków skryptowych, które natomiast znajdują się w pliku .baf (.bcs po kompilacji). Oto przykładowy blok:

Kod:

IF
Exists(Player1)
AreaCheckObject("AR0000",Player1)
Global("AR0000Music","GLOBAL",0)
AreaCheck("AR0000")
THEN
RESPONSE #100
SetGlobal("AR0000Music","GLOBAL",1)
RealSetGlobalTimer("AR0000MusicTimer","GLOBAL",130)
PlaySound("AR0000M")
END

IF
AreaCheckObject("AR0000",Player1)
AreaCheck("AR0000")
RealGlobalTimerExpired("AR0000MusicTimer","GLOBAL")
Global("AR0000Music","GLOBAL",1)
THEN
RESPONSE #100
SetGlobal("AR0000Music","GLOBAL",0)
END


A teraz słowne wytłumaczenie tego co się stało - jeżeli istnieje postać Player1 (główna postać) oraz znajduje się na lokacji AR0000, zmienna AR0000Music ustawiona jest na 0 (dodatkowo dla pewności dodane jest jeszcze jedno AreaCheck, ale nie jest to niezbędne - bardziej dla pewności), zmienna zostaje przestawiona na 1, timer odlicza 130 sekund (długość timera zależna od długości utworu, którą mieliście zapisać przy przygotowaniu plików + ewentualny odstęp pomiędzy ponownym uruchomieniem piosenki), a na samym końcu "puszczenie" utworu (tutaj teoretyczna nazwa pliku AR0000M).
Drugi blok sprawia, że po upłynięciu timera i ponownym pojawieniu się na lokacji (sprawdzeniu, czy dalej na niej się znajdujemy), zmienna ustawia się na 0, a więc ponownie włączony zostanie utwór.

Wszystkie nazwy zmiennych, plików, długości timerów oczywiście są przykładowe.

Player1 może znajdować się tylko na jednej lokacji w tym samym czasie, więc nie musimy się obawiać, że w przypadku, gdy stoimy w domku, a drugą postacią na lokacji głównej zostanie odtworzona inna piosenka.

4. Dekodowanie plików .ogg (można ominąć w przypadku stosowania rozszerzenia .wav)

Wszystko odbywa się tak samo jak w przypadku tutoriala audio. Pozwolę sobie to po prostu przepisać:

-Otwieramy notatnik.
-Teraz tworzymy plik który będzie przy instalacji moda dekodował pliki. Wpisujemy:

Kod:

@echo off
cd override
oggdec AR*.ogg /// wszystkie pliki które zaczynają się od AR będą dekodowane
del AR*.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 ..


-Zapisujemy plik jako ARAudioInstall.bat gdzie AR to nazwa np naszego moda
-Plik umieszczamy w folderze modu.
-Teraz stworzymy plik który będzie usuwał pliki audio przy deinstalacji. Wpisujemy:

Kod:

del override\AR*.wav /// Wszystkie pliki .wav zaczynające się od AR zostaną usunięte.
@ECHO
@ECHO AR Audio Uninstalled /// AR to najlepiej nazwa modu
@ECHO


-Zapisujemy plik jako ARAudioUninstall.bat gdzie AR jest taka sama jak w punkcie 3 ("-Zapisujemy plik jako ARAudioInstall.bat gdzie AR to nazwa np naszego moda")
-Ściągamy dekoder -> kliknij by ściągnąć
-Do folderu plików audio wrzucamy plik oggdec z dekodera
-Dodajemy komendy do pliku instalacyjnego .tp2 naszego moda:
Kod:

COPY ~XXX\AUDIO~ ~override\~

COPY ~AR\ARAudioUninstall.bat~ ~ARAudioUninstall.bat~
COPY ~AR\ARAudioInstall.bat~ ~ARAudioInstall.bat~
AT_INTERACTIVE_EXIT ~ARAudioInstall.bat~
AT_UNINSTALL ~ARAudioUninstall.bat~


5. Zakończenie

Ten tutorial dotyczy audio dla lokacji. Jeżeli szukacie pomocy przy audio dla rozmów, soundsetów dla postaci NPC to zapraszam do zapoznania się z "siostrzanym" tutorialem -> Implementacja Audio.
Mam nadzieję, że tutorial pomoże Wam w stworzeniu nowych i ciekawych lokacji.
Ostatnio zmieniony przez L`f 2014-04-27, 18:08, w całości zmieniany 2 razy  
Podziękuj autorowi tego posta
 
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  
Powered by phpBB modified by Przemo © 2003 phpBB Group