Jump to content

Dodajemy nowy dźwięk


Recommended Posts

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-добавляем-новый-звук/

  • Positive 1
  • Important 1
Link to comment
Share on other sites

  • 6 months later...

@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

  • Positive 3
  • Important 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.