12.07.2026 02:44

Silnik gier: muzyka, która ścisza się pod dialogiem (ducking)

⏱️ 2 min czytania
Udostępnij:

Silnik gier 2D Moonlight Studio dostał ducking — automatyczne przyciszenie jednej kategorii dźwięku na czas, z płynną obwiednią. To ten mało zauważalny, a wszechobecny zabieg: gdy postać zaczyna mówić, muzyka schodzi o kilka decybeli, a po kwestii wraca. Bez tego dialog ginie w podkładzie.

Jedna linijka przed dialogiem

mp.duck("music", 0.3, 0.1, 1.0, 0.5)

Czyli: przycisz „music" do 30% w 0,1 s, potrzymaj 1 s, i przez 0,5 s wróć do pełnej głośności. Efekty i głosy grają przez ten czas bez zmian — ściszasz tylko wskazaną kategorię.

Do sterowania w locie:

mp.stop_duck("music")     -- natychmiast zacznij powrót
local trwa = mp.is_ducking("music")

Osobna oś od suwaka gracza

Najważniejszy szczegół jest niewidoczny: ducking nie walczy z ustawieniem głośności z opcji. Gracz może mieć muzykę na 60%, a ducking i tak przyciszy ją względem tego — dwa niezależne mnożniki. Gdyby ducking i suwak dzieliły jedno pokrętło, ruszenie suwaka w trakcie ściszania zdejmowałoby duck na jedną klatkę i słychać by było „pyknięcie". Tutaj to po prostu nie może się zdarzyć — pod maską jedna wspólna formuła liczy końcową głośność każdego dźwięku z obu osi naraz.

Zaprojektowane, by nie „pyknąć"

  • Ponowny duck w trakcie startuje z bieżącego poziomu, nie od zera — kilka nakładających się wyzwoleń (np. seria szybkich kwestii) nie robi skoku głośności w górę.
  • Powrót jest dokładny — obwiednia wraca do pełnej głośności co do joty, bez dryfu, który po wielu duckach zostawiłby muzykę odrobinę za cicho na zawsze.
  • Liczy się w czasie gry — pauza zamraża obwiednię, spowolnienie ją rozciąga; ściszenie zachowuje się jak reszta świata.

Co dalej

Fundament jest gotowy. W kolejce: automatyczne wyzwalanie ducka, gdy zagra dźwięk na kanale dialogu (sidechain), oraz więcej kategorii do osobnej regulacji.

📚 Powiązane posty

14.07.2026 22:19

Silnik gier: od szablonu do grywalnej gry RPG top-down

Startowy szablon silnika gier to teraz kompletny, grywalny wycinek gry RPG top-down: chodzenie po siatce, rozmowy z postaciami, przeciwnik goniący gdy...
Czytaj dalej →
14.07.2026 19:16

Moonlight Animate — system dialogów w grach

Silnik gier 2D w Moonlight Animate ma teraz kompletny system dialogów: kwestie z efektem maszyny do pisania, wybory z warunkami, zmienne fabularne i g...
Czytaj dalej →
14.07.2026 18:40

Moonlight Animate: ruchoma panorama dźwięku także w wyeksportowanym wideo

Dźwięk przejeżdżający z lewego do prawego głośnika brzmiał dobrze w podglądzie, ale eksport przez serwer zamrażał go w miejscu. Ostatnia luka parytetu...
Czytaj dalej →

📧 Bądź na bieżąco!

Zapisz się na listę oczekujących, aby otrzymywać powiadomienia o nowych postach na Dev Blog oraz informacje o starcie platformy Moonlight.