Skocz do zawartości

Dodajemy nowy dźwięk


Gość Diegtiariow

Rekomendowane odpowiedzi

Gość Diegtiariow

NAZWA: Dodajemy nowy dźwięk
TWÓRCA: AziatkaVictor

 

Od twórcy: „To jest mały przewodnik po wprowadzaniu nowych dźwięków do Stalkera. Jest kilka podstawowych pojęć, o których po prostu musisz wiedzieć - bez nich nic nie będzie działać”.

 

PRACA W EDYTORZE AUDIO:

Spoiler

Pierwsze, co trzeba wiedzieć, to jaki dokładnie dźwięk jest nam potrzebny. Prościej mówiąc, należy określić, w jaki sposób dźwięk będzie odtwarzany. Jest to ważne na początku pracy. To typ dźwięku.

Są dwa możliwe warianty, od których będzie zależeć efekt:

  • Mono. Taki typ jest potrzebny w celu odtwarzania dźwięków przedmiotami, bronią, itd. To wszystko z powodu tego, że dźwięk jest odtwarzany w jednym z uszu z określoną głośnością. Pozwala to stworzyć efekt 3D. Natomiast dla stereo to nie pasuje, ponieważ w stereo dźwięk jest odtwarzany różnie w każdym z uszu, a tutaj jest całkiem inna zasada działania.
  • Stereo. Ten typ jest wykorzystywany w celu odtwarzania dźwięków u "GG w głowie", tzn. dźwięk będzie odtwarzany z jednakową głośnością w trybie stereo. Jest to wykorzystywane dla dźwięków GG, lektora SMS i ambientów. 
    • UWAGA: Nie róbcie Stereo dla dźwięków, które będą odtwarzane z przedmiotów w przestrzeni 3D. Jeśli dźwięk jest w Stereo, to jest tak, jakbyście go nie ustawiali - będzie on odtwarzany w głowie, a wy będzie mówić, że jest nie w porządku.

Wszystko jest proste. Wybieramy typ dźwięku, dla naszych potrzeb i eksportujemy wybrany dźwięk w formacie *.wav. 
UWAGA: Częstotliwość dźwięku powinna być 44100 Hz.

 

PRACA W SDK:

Spoiler

Aby SDK zobaczył nasz dźwięk, trzeba go dodać do folderu "rawdata/sounds". Później uruchamiamy SDK i otwieramy zakładkę "Sounds/Sound Editor". To panel, który pomoże nam w ustawieniu dźwięku. 

Poszczególne parametry oraz to, za co odpowiadają:

  • Quality - szerokość pasma częstotliwości, otaczająca centralną częstotliwość (dla bardziej płynnego zanikania dźwięku lub jego stabilności)
  • MinDis - odległość, od której głośność dźwięku będzie się obniżać (im niższa do MaxDist, tym płynniejsze przejście, ale Quality trzeba zwiększyć)
  • MaxDist - maksymalna odległość, z której dźwięk będzie słyszeć GG
  • MaxAIDist - maksymalna odległość, z której dźwięk będzie słyszeć NPC
  • BaseVolume - głośność
  • GameType - element wpływający na reakcję NPC.

Parametry zostały wzięte z Wiki

 

Dla dźwięku, który będzie odtwarzany w głowie GG, większości parametrów nie trzeba ustawiać. Można od razu z edytora audio eksportować do formatun *.ogg. A dla dźwięku mono, ustawiamy potrzebne parametry, naciskamy "ОК" i nasze dźwięki pojawiają się w folderze "gamedata/sounds" w formacie *.ogg. Czeka nas później praca z konfigami. 

 

PRACA Z KONFIGAMI:

Spoiler

Aby gra widziała nasz dźwięk i nie było wylotu do pulpitu podczas próby odtworzenia, trzeba go dopisać w konfigu "script_sound_lokacja". Jeśli utworzysz ten plik specjalnie dla swojej lokacji, to trzeba dołączyć go do głównego konfigu "script_sound", pisząc w nim:

#include "script_sound_lokacja.ltx"

Również dołączamy listę:

[list]: list_music_and_stories, list_script_sound_zaton, list_script_sound_jupiter, list_script_sound_pripyat, list_script_sound_underpass, list_script_sound_lokacja

Następnie dopisujemy dźwięk w konfigu. Trzeba go dopisać do listy i stworzyć jego sekcję. Np. chcemy dodać muzykę dla radia. Dopisujemy w konfigu to:

[list_script_sound_lokacja]
nasz_dźwięk

[nasz_dźwięk]
type = 3d
npc_prefix = false
path = music\nasz_dźwięk
shuffle = loop
idle = 0,0,100

 

Parametry z sekcji:

  • Type
    • Actor - określa dźwięk odtwarzany od strony aktora. To dźwięki z PDA, wszelkiego rodzaju wiadomości SMS-owe, rozmowy pilotów - wszystko, czego potrzebujesz, aby grać bez utraty głośności od usunięcia źródła. Za inicjalizację i odtworzenie dźwięku odpowiada skryptowa klasa actor_sound.
    • 3D - określa dźwięk odtwarzany przez obiekty. Skryptowa klasa object_sound odpowiada za inicjalizację i odtwarzanie dźwięku.
    • NPC - określa dźwięk odtwarzany przez NPC. Skryptowa klasa npc_sound odpowiada za inicjalizację i odtwarzanie dźwięku.
  • Path - ścieżka do dźwięku w folderze "sounds" 
  • npc_prefix - jeśli "true" i "type = aktor" lub "false" i "type = npc", to do wartości ścieżki do dźwięku zostanie dodane "characters_voice" na początku. Jeśli true i type = npc, to zostanie dodane coś w rodzaju "character_voice\human_01\bandit", to znaczy zawartość npc:sound_prefix(). Wartość domyślna to false.
  • Shuffle - wartością domyślną jest rnd.
    • rnd - wybiera losowy plik z tablicy dźwięków
    • seq - odtwarza w kolejności do końca stołu,
    • loop - tak samo jak seq, przeskakuje po końcu tablicy tylko do pierwszego dźwięku w tablicy dźwięków. Wartość domyślna to 3,5,100.
  • idle - trzy liczby oddzielone przecinkami. Parametry odtwarzania dźwięku
    • Pierwsza wartość - minimalny odstęp między dźwiękami.
    • Druga wartość - maksymalny interwał (w sekundach).
    • Trzecia wartość - prawdopodobieństwo, z jakim dźwięk zostanie odtworzony, gdy nadejdzie jego czas.

Parametry z Wiki

 

"I to wszystko. Następnie wykorzystujemy dźwięk do własnych celów, odtwarzamy go za pomocą logiki lub skryptów lub umieszczamy w SDK."

 

ŹRÓDŁO:

https://ap-pro.ru/forums/topic/245-добавляем-новый-звук/

Odnośnik do komentarza
Udostępnij na innych stronach

  • 6 miesięcy temu...

@Wojownik Jestem w trakcie tłumaczenia moda Чужой среди чужих Epizod 2. 
Problemem nie jest samo tłumaczenie ale to, że autor wprowadził takie rozwiązanie
w którym dialogi są tylko czytane. Nie ma do nich zapisów w plikach tekstowych.
I w większości sytuacji pomaga operowanie na plikach:
gamedata\configs\misc\closecaption.ltx
Przykładowy wpis:
["characters_voice-scenario-escape-tot_sidor"]    = {-4, 4000, "ui_inGame2_Hero", "stalker", "Bumer"},
gamedata\configs\text\pol\st_closecaption.xml 
<string id="characters_voice-scenario-escape-tot_sidor">
        <text>
        Ten sam Sidorowicz, o którym mi mówili? Interesujące...  
        </text>
    </string>
To rozwiązanie działa w przypadku wiadomości przychodzących - wychodzących, dialogów, komentarzy ale nie zawsze. 
Wyświetlenie napisów w takim rozwiązaniu związane jest z rozpoczęciem odtwarzania pliku audio tot_sidor.ogm  
Są jednak takie miejsca gdzie dźwięk (zanim pojawi się np. dialog) jest odtwarzany 7 sek.
Tu taki przykładowy problematyczny plik eto_kto_tam.ogg

Spoiler

 

 

 

 

Tekst musiałby być wyświetlany przez 24 sek. 
Żeby to dobrze wyszło trzeba podzielić plik na cztery części.
Snap17.thumb.jpg.7780d313af1df2b593178a017045dcca.jpg

I pytanie jak zmusić moda, żeby odtwarzał 3 nowe pliki i wyświetlał do tego tekst ?
eto_kto_tam_1.ogg
eto_kto_tam_2.ogg
eto_kto_tam_3.ogg
Wpis w  gamedata\configs\misc\closecaption.ltx
["characters_voice-scenario-escape-eto_kto_tam_1"]    = {-4, 11000, "ui_inGame2_Hero", "stalker", "Bumer"}, 
["characters_voice-scenario-escape-eto_kto_tam_2"]    = {-4, 3000, "ui_inGame2_Hero", "stalker", "Bumer"},  
["characters_voice-scenario-escape-eto_kto_tam_3"]    = {-4, 2000, "ui_inGame2_Hero", "stalker", "Bumer"}, 
Wpis w  gamedata\configs\text\pol\st_closecaption.xml 
<string id="characters_voice-scenario-escape-eto_kto_tam_1>
        <text>
        Text Text Text Text Text Text Text Text Text
        </text>
    </string> 

<string id="characters_voice-scenario-escape-eto_kto_tam_2>
        <text>
        Text Text Text Text Text Text Text Text Text
        </text>
    </string> 
<string id="characters_voice-scenario-escape-eto_kto_tam_3>
        <text>
        Text Text Text Text Text Text Text Text Text
        </text>
 </string>
W pliku script_sound_escape.ltx
dodałem nazwy plików
eto_kto_tam_1.ogg
eto_kto_tam_1.ogg
eto_kto_tam_1.ogg
i skopiowałem wpis

[eto_kto_tam]
type = actor
npc_prefix = false
path = characters_voice\scenario\escape\eto_kto_tam
shuffle = seq
idle = 0,0,100

x3 ze zmienianym  [eto_kto_tam] na [eto_kto_tam_1] potem z dwójką i trójką
i zmienianymi ścieżkami 
path = characters_voice\scenario\escape\eto_kto_tam
na 
path = characters_voice\scenario\escape\eto_kto_tam_1 potem z dwójką i trójką

Wszystkie wpisy powodują to, że pierwszy plik jest poprawnie odtwarzany (tu nie powinno być napisów).
Potem jest cisza brak napisów ale po odpowiednim czasie potrzebnym na odtworzenie _1 _2 _3,
mod działa i akcja toczy się normalnie dalej.
Używanie do rozwiązania problemu pliku game_tutorials.xml nie wchodzi w grę. 

Nie wiem czy dobrze powiązałem problem z tematem wątku?
A piszę ogólnie bo może ktoś jeszcze coś od siebie doda.
W załączniku dwa pliki na których pracuję. 

closecaption.ltx

st_closecaption.xml

  • Dodatnia 2
  • Ważne 1
Odnośnik do komentarza
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.
Uwaga: Twój wpis zanim będzie widoczny, będzie wymagał zatwierdzenia moderatora.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Korzystając z tej strony, zgadzasz się na nasze Warunki użytkowania.