Itharu Team

Forum grupy modderskiej Itharu Team.

  • Nie jesteś zalogowany.

Ogłoszenie

PATRONITE
  • Index
  •  » Samouczki
  •  » [G1,G2] Zespół muzyczny na przykładzie InExtremo z G1

#1 2018-07-16 17:01:09

Kruk
Administracja Itharu Team
Zarejestrowany: 2016-12-09
Posty: 982

[G1,G2] Zespół muzyczny na przykładzie InExtremo z G1

Zanim przejdziemy do samych elementów świata, należy najpierw wyjaśnić na jakiej zasadzie działa w gothicu odtwarzanie muzyki.

Przede wszystkim w świecie znajdują się sześciościenne przezroczyste voby oCZoneMusic. Odpowiadają one za utworzenie obszaru, który steruje odtwarzaniem muzyki. Działa to w taki sposób, że gra wykrywa wszystkie obszary, w jakich znajduje się kamera, i odtwarza muzykę z najwyższym priorytetem. Jeśli natomiast kamera nie znajduje się w żadnej strefie muzycznej, wtedy będzie odtwarzana muzyka z obszaru oCZoneMusicDefault.

Ale to nie wszystko! Bo zCZoneMusic odpowiada jedynie za obszar, na którym odtwarzana jest muzyka, a nie za same jej odtwarzanie. Od tego służy obiekt typu zCVobSound. To tutaj ustawiamy jaki utwór ma być odtwarzany, czy ma być zapętlony, oraz inne jego parametry. Kontrolowanie odtwarzania muzyki odbywa się poprzez wysyłanie do obiektu odpowiednich sygnałów Wld_SendTrigger i Wld_SendUnTrigger.

Poniżej pokazuję ustawienia tychże obiektów specjalnie dla koncertu inExtremo.

https://cdn.discordapp.com/attachments/306529988666982401/468426270347100162/tutek1.png

https://cdn.discordapp.com/attachments/306529988666982401/468426273589428244/tutek2.png

Jak wspominałem, w obiekcie oCZoneMusic, ustawiony jest priorytet, dzięki któremu odgrywany utwór zastąpi te z mniejszą wartością. Natomiast w obiekcie INEXTREMO_MUSIK ustawiamy takie parametry jak głośność utworu - sndVolume, typ odtwarzania sndMode (LOOPING oczywiście odpowiada za to, że utwór będzie zapętlony), sndStartOn - dzięki temu ustawiamy czy odtwarzanie utworu ma być włączone wraz ze startem świata, czy na początku ma to być wyłączone.

Teraz trochę kodu sterującego tym wszystkim.

Kod:

func void B_InExtremoStartMusic()
{
//   Um die Musikzone zu aktivieren (damit die OC-Musik um die Bühne herum nicht zu hören ist, solange IE spielen!)
   Wld_SendTrigger ("INEXTREMO_IE");

// SoundVob zu aktivieren, der das Musikstück spielt
   Wld_SendTrigger ("INEXTREMO_MUSIK");

   InExtremoPlaying = TRUE;
};

func void B_InExtremoStopMusic()
{
// Sound-Vob deaktivieren, der das Musikstück spielt
   Wld_SendUnTrigger ("INEXTREMO_MUSIK");

// Um die Musikzone zu deaktivieren (OC-Musik-Zone wieder aktiv)
   Wld_SendUnTrigger ("INEXTREMO_IE");

   InExtremoPlaying = FALSE;
};

I tak funkcja B_InExtremoStartMusic uruchamia nasz obszar - dzięki czemu domyślny utwór ze Starego Obozu nie będzie słyszany w tym obszarze, uruchamia nasz utwór - dzięki czemu będziemy go słyszeli xD, i zmienia wartość zmiennej InExtremoPlaying na TRUE. Funkcja zaś B_InExtremoStopMusic ma dokładnie odwrotne działanie. Wyłącza obiekty i ustawia wartość zmiennej na FALSE.

W ten sposób sterowanie takowym koncertem odbywa się poprzez odpowiednie wywoływanie tych dwóch funkcji.

Jedynym mankamentem jest to, że muzyka będzie stale odtwarzana niezależnie od tego czy NPC będą wykonywały swoje animacji gry, nie mówiąc nawet o tym, że również nie jest w jakikolwiek sposób sprawdzane czy niezbędni do tego NPC w ogóle jeszcze żyją, bo przykładowo któremuś z graczy zapragnęło się ich pozabijać. Niestety trudno o lepsze rozwiązanie, choć oczywiście są, to jednak dużo lepszego efektu nie osiągniemy, a nakład pracy będzie większy.


while (!success) try{...}

https://media.discordapp.net/attachments/359470928389865483/410858992965910538/Leiwark_ITH_TEAM_Kruk.png

Offline

 

#2 2018-07-16 17:29:07

ParzivalZ
Administracja Itharu Team
Zarejestrowany: 2016-11-27
Posty: 2192

Re: [G1,G2] Zespół muzyczny na przykładzie InExtremo z G1

A jeśli chciałbym by te utwory się zmieniały, bo np mam 3 utwory, to lipa, nie?


https://i.imgur.com/4MytkTe.png

Offline

 

#3 2018-07-16 17:32:53

Kruk
Administracja Itharu Team
Zarejestrowany: 2016-12-09
Posty: 982

Re: [G1,G2] Zespół muzyczny na przykładzie InExtremo z G1

Jakbyś miał 3 obiekty zCVobSound i odpowiednio wyłączał je i włączał to możliwe, że dałoby radę.

Ewentualnie w Mrocznych Tajemnicach było to chyba tak zrobione, że wszystko było połączone w jeden utwór xD


while (!success) try{...}

https://media.discordapp.net/attachments/359470928389865483/410858992965910538/Leiwark_ITH_TEAM_Kruk.png

Offline

 

#4 2018-07-16 18:14:18

ParzivalZ
Administracja Itharu Team
Zarejestrowany: 2016-11-27
Posty: 2192

Re: [G1,G2] Zespół muzyczny na przykładzie InExtremo z G1

Dobra, pokombinuję, dzięki img/smilies/wink


https://i.imgur.com/4MytkTe.png

Offline

 
  • Index
  •  » Samouczki
  •  » [G1,G2] Zespół muzyczny na przykładzie InExtremo z G1

Stopka forum

Powered by PunBB
Host by: Hosting
© Copyright 2002–2005 Rickard Andersson



Założ : stronę za darmo