Technologia dźwiękowa Dreams
Silnik dźwiękowy Dreams
Dreams zawiera kilka potężnych narzędzi, które pomogą ci zrozumieć działanie dźwięku w swoich dziełach. Większość twórców nie musi zawracać sobie nimi głowy, ale tym, którzy chcą wydobyć z silnika dodatkową moc, mogą się one przydać! Pomogą ci one ustalić, dlaczego niektóre dźwięki są ucinane, zniekształcane lub odtwarzane z opóźnieniem.
Zacznijmy od zapoznania się z technologią silnika dźwiękowego Dreams. Dźwięk w Dreams generują zazwyczaj gadżety dźwiękowe umieszczone w scenerii. Gdy gadżet dźwiękowy jest uruchamiany przez logikę, tworzy on instancję samego siebie. Gadżet może utworzyć więcej niż jedną instancję w tym samym czasie, jeśli na przykład zostanie ponownie uruchomiony, zanim poprzednia instancja zakończy odtwarzanie dźwięku.
Każda instancja dźwięku może tworzyć pewną liczbę głosów. Efekt dźwiękowy zazwyczaj uruchamia jedną instancję z jednym głosem – głos jest tym, co faktycznie odtwarza dane próbki dźwiękowej. Urywek muzyczny instrumentu utworzy jedną instancję dźwięku, która stworzy wiele głosów, po jednym dla każdej nuty w urywku. Poniżej znajduje się przykład takiego przepływu, który ukazuje, co może być zawarte w tych jednostkach.
Na jeszcze niższym poziomie Dreams używa silnika granularnego, a każdy głos odtwarza dźwięk w postaci pojedynczych kawałków zwanych granulkami. Przypominają one trochę plamki używane w grafice Dreams!
Analizator dźwięku
To narzędzie pozwala sprawdzić, ile zasobów dźwiękowych wykorzystuje w danym momencie twoje dzieło. Przygotowaliśmy pomocny film o analizatorze dźwięku, który znajdziesz tutaj!
Włącz funkcję analizuj dźwięk i uruchom swoje dzieło, a wraz z upływem czasu narzędzie będzie gromadziło informacje, wyświetlając w trakcie gry na ekranie powiązane z tym liczby. Po wyjściu z narzędzia pojawi się przegląd analizy (widoczny poniżej). Jest to raport przedstawiający dane z przebiegu gry na wykresie umożliwiającym sprawdzenie, które części twojego dzieła są kosztowne. Możesz przeglądać wykres dla dowolnego punktu w czasie, a obraz po prawej stronie wykresu pokaże ci, co się działo w danym momencie.
Najważniejszą statystyką jest tutaj koszt dźwięku. Jest to łączny koszt głosów, instancji, granulek i wszystkich efektów, takich jak pogłosy, opóźnienia, kompresory i tak dalej. Im bardziej koszt ten zbliża się on do wartości maksymalnej, tym agresywniej silnik wycina głosy, by uniknąć osiągnięcia 100% – zwykle towarzyszy temu ostrzeżenie. Gdyby koszt osiągnął 100%, Dreams nie byłoby w stanie prawidłowo odtwarzać dźwięku, więc silnik zrobi wszystko, co w jego mocy, by tego nie doszło.
Z instancjami i głosami związane są ograniczenia, których przekroczenie sprawi, że nowe dźwięki mogą nie być odtwarzane, a te, które są już odtwarzane, mogą zostać ucięte. W dziele znaleźć się może maksymalnie 128 instancji. W przypadku głosów sprawa jest nieco bardziej skomplikowana, ale ograniczyliśmy wykres do 128. Teoretycznie możesz mieć uruchomionych więcej głosów, ale zazwyczaj ich liczba ma duży wpływ na wydajność uzależnioną od systemu, na którym uruchamiasz Dreams.
Im więcej głosów i instancji jest uruchomionych, tym bardziej wzrasta koszt dźwięku. Przyglądając się wykresowi, zorientujesz się, w którym miejscu należy dokonać optymalizacji.
Pamiętaj, że nie wszystkie głosy są sobie równe. Z właściwości silnika granularnego wynika, że niektóre głosy mogą odtwarzać więcej nakładających się na siebie granulek niż inne i dlatego ich koszt jest większy. Koszt granularny to średnia kosztu tego typu dla wszystkich odtwarzanych dźwięków w scenerii. W przypadku większości głosów średni koszt granularny wynosi x1, ale może on znacznie wzrosnąć, jeśli użyjesz opcji syntezy granularnej i losowości granularnej gadżetów dźwiękowych. Poniższe diagramy ilustrują przykłady kosztownych i oszczędnych ustawień nakładania granulek.
Nakładanie się granulek można ustawić na stronie syntezy granularnej w menu regulacji dźwięku. Ta regulacja pojawia się również na stronie losowości granularnej, gdzie za pomocą kilku innych suwaków również można wpływać na koszt granularny.
Koszt głosów może też wzrosnąć, jeśli włączysz funkcje takie jak oscylator, zniekształcenia, kompresor dynamiki i tak dalej. Najmniej kosztowne głosy to zwykle proste efekty dźwiękowe, które nie wymagają żadnych ekscytujących regulacji.
Jak więc wykorzystać te informacje do optymalizacji swoich dzieł? Najlepiej zacząć od obniżenia limitu polifonii wykorzystywanych dźwięków. Jest to ograniczenie liczby głosów, które mogą zostać utworzone przez dźwięk. Jeśli zrobisz to ostrożnie, nie zauważysz nawet różnicy w brzmieniu. Oto kilka przykładów, w których ograniczenie polifonii może być przydatne:
– Klip muzyczny, który odtwarza wiele następujących po sobie bardzo długich nut, np. fortepianu lub syntezatora z długą obwiednią zwolnienia. – Dźwięk eksplozji lub broni, który nakłada się na siebie, bo jest uruchamiany w bardzo krótkich odstępach czasu.
Domyślna wartość limitu polifonii wynosi 20, co oznacza, że większość dźwięków może niepotrzebnie odtwarzać do 20 swoich instancji, na przykład w przypadku wielokrotnego uruchamiania w bardzo krótkich odstępach czasu.
Inną możliwością jest przyjrzenie się dźwiękom, w których występuje duże nakładanie się granulek, i zmniejszenie go, choć należy pamiętać, że zazwyczaj wpływa to na efekty uzyskiwane za pomocą opcji granularnych.
Można również przejść na stronę efektów dźwiękowych, aby wyłączyć niektóre lub wszystkie z nich, co powinno również pomóc w obniżeniu kosztu większości z tych dźwięków.
Oczywiście w ostateczności warto też przejrzeć scenerie w poszukiwaniu dźwięków, które można po prostu usunąć.
Termometr dźwięku i gotowość dźwięków
Porozmawiajmy o termometrze dźwięku! Ale zanim do tego przejdziemy, przyjrzyjmy się jeszcze raz silnikowi.
Dźwięk w Dreams występuje w postaci próbek, które są dzielone na wycinki. Próbki są tym, co nagrywa mikrofon, a wycinki to fragmenty widoczne w oknie mapowania wycinków.
Istnieje limit całkowitej liczby unikatowych próbek (w termometrze określanych jako unikatowe dźwięki) oraz limit ilości pamięci wykorzystywanej przez te próbki.
Może się zdarzyć, że przekroczysz limit liczby próbek, umieszczając w swoim dziele bardzo dużą liczbę bardzo małych nagrań, lub zabraknie ci pamięci, jeśli umieścisz w dziele kilka bardzo długich nagrań. Innym ograniczeniem jest maksymalna liczba zaimportowanych lub nagranych własnych dźwięków. Warto zapamiętać pewną bardzo użyteczną informację dotyczącą podstaw, na których opiera się system dźwiękowy Dreams:
Cała zawartość audio od Mm, w tym instrumenty i efekty dźwiękowe z kolekcji, mają zerowy koszt pobierania.
Dane audio zazwyczaj zajmują bardzo dużo miejsca i długo się pobierają, więc dołączanie standardowego zestawu sampli w Dreams drastycznie skraca czas ładowania się dzieł społeczności. Zawsze, gdy wykorzystujesz zawartość audio przesłaną przez siebie lub kogoś innego, wydłuży ona wczytywanie się dzieł, przez co np. przejścia z poziomu na poziom będą trwać dłużej i mogą się zacinać. Jeszcze gorzej, jeśli importujesz długie pliki audio, np. całe piosenki.
Dlatego zawsze lepiej jest korzystać z muzyki stworzonej w Dreams za pomocą instrumentów Mm lub pochodnych – w wielu przypadkach biblioteka sampli Mm w zupełności wystarczy do stworzenia mnóstwa różnorodnych dźwięków przy użyciu wbudowanych efektów. Jeśli chcesz, żeby twoje dzieła ładowały się bardzo szybko, upewnij się przynajmniej, że twoje importy są poprzycinane oraz wykorzystywane ponownie przy każdej okazji.
Istotnym faktem jest to, że przycinanie sampli w mapowaniu wycinków nie zmniejszy żadnego z tych kosztów. Samych sampli nie można zmieniać po nagraniu, ale można – i trzeba – importować je w sposób możliwie zbliżony do postaci docelowej. Jeśli importujesz do Dreams plik, który ma być pocięty, dokonaj jego edycji wcześniej, by usunąć jak najwięcej ciszy i niepotrzebnych fragmentów. Jeśli przekroczysz którykolwiek z limitów, nie będzie można opublikować ani zapisać dzieła.
Oto dwa przykładowe dźwięki i ich koszty. Ten po lewej wykorzystuje dwa wycinki z dwóch różnych sampli. Ten po prawej składa się z dwóch wycinków z jednego sampla. Dźwięk po prawej jest najtańszy, ale można by było ograniczyć jego koszt jeszcze bardziej, wycinając niewykorzystywane fragmenty przed importem. Ten po lewej jest dość kosztowny! Jako Mm wolimy tworzyć efekty dźwiękowe oraz instrumenty z wycinków pozyskiwanych z jednego sampla – to redukuje całkowite koszty.
Istnieje bardzo istotne ograniczenie, które zawsze było obecne, ale nie zawsze zwracaliśmy na nie uwagę. Chodzi o gotowość dźwięków.
Żeby aktywowany dźwięk zabrzmiał, związane z nim dane audio muszą zostać wczytane. Jeśli nie są gotowe, po aktywowaniu dźwięku nastąpi opóźnienie, bardzo niepożądane w takich sytuacjach, jak synchronizacja muzyki czy głosu z animacjami.
Jednak mimo że kochamy świat dźwięków, gdybyśmy wczytywali zawczasu każdy pojedynczy wycinek w każdym dźwięku, nie starczyłoby pamięci na inne elementy gry, więc silnik wciąż musi iść na ustępstwa. Nazywamy ten system przypinaniem – chodzi o to, by przynajmniej jeden wycinek w każdym dźwięku był gotów do odegrania w każdym momencie. Jest to pomocne, ale jeśli masz w swoim dziele zbyt wiele dźwięków i wszystkie próbują wczytywać różne wycinki, to i tak skończy ci się pamięć, a opóźnienia będą się czasami pojawiać.
Wcześniej działo się to bez ostrzeżenia, ale teraz otrzymasz w Dreams ostrzeżenie. Możesz też skorzystać ze specjalnego narzędzia, by namierzyć problematyczne dźwięki.
Zawsze staraj się uzyskać na termometrze jak najmniejszy koszt, zwłaszcza jeśli twoje dzieła są przeznaczone do umieszczania w większych całościach. Nikt nie ucieszy się z odkrycia, że po umieszczeniu twojego elementu postacie mówią z opóźnieniem! Jeśli jednak tak się stanie, można zoptymalizować całość, redukując inne rzeczy. Zobacz, jak to zrobić.
Przede wszystkim rzuć okiem na pasek termometru, który pojawia się w trybie dźwięku, gdy koszt gotowości dźwięków wzrasta. Dodaliśmy do trybu dźwięku menu pokaż/ukryj, dzięki któremu możesz sprawić, by termometr był zawsze widoczny. Zazwyczaj jednak musisz martwić się o niego dopiero po przekroczeniu granicy gotowości dźwięków. Po kliknięciu paska termometru można wybrać więcej szczegółów, aby otrzymać listę 20 najbardziej zasobożernych dźwięków w scenerii. Pamiętaj – to informacja pokazująca jedynie koszt gotowości dźwięków!
Jest tu także podział na kanały dźwięków. Po wybraniu dowolnej pozycji z listy zostaniesz przeniesiony do miejsca, w którym znajduje się dany dźwięk w scenerii (może być konieczne dokopanie się do niego w mikroczipie lub na osi czasu). Pojawi się także migający na niebiesko wskaźnik pokazujący, gdzie w danym momencie znajduje się dźwięk.
Niektóre dźwięki na liście występują podwójnie. Jeśli chcesz zmniejszyć koszt gotowości tych dźwięków, musisz zająć się duplikatami, bo każdy z nich zużywa pamięć.
Następnie możesz usunąć najbardziej zasobożerne dźwięki lub poprzycinać je w mapowaniu wycinków. Przycinanie nie zmniejsza kosztu dźwięku, ale zmniejsza koszt gotowości dźwięku, bo dotyczy on jednego wycinka, a nie całego sampla. Oto przykład dwóch dźwięków, które wykorzystują dwa różne fragmenty jednego, dłuższego sampla.
Koszt generowany jest przez część sampla wykorzystywaną w obu wycinkach – wspólne fragmenty liczą się tylko raz!
Bardzo często przyczyną problemów z gotowością są niepotrzebnie długie dźwięki. Oto przykład. Mamy tu dźwięk otoczenia – Dzień w lesie – który pochłania 5,24% budżetu, czyli prawie tyle samo, co cała piosenka, która także pojawia się w tej scenerii! W tym przypadku nie przekroczyliśmy budżetu, ale moglibyśmy zapewne przyciąć ten dźwięk w mapowaniu wycinków.
Pora na kolejną wskazówkę: importowany dźwięk, np. długie fragmenty nagranej muzyki, bardzo szybko i niepotrzebnie zużyją budżet gotowości dźwięków. Między innymi dlatego korzystanie z muzyki stworzonej bezpośrednio w Dreams zawsze dobrze wpływa na płynność dźwięku.
I to by było na tyle. Mamy nadzieję, że przydadzą się wam te funkcje. Pamiętajcie, że zawsze znajdą się jakieś skrajne i trudne przypadki lub usterki, na które trzeba mieć oko. Na przykład...
– Każdy dźwięk przygotowuje tylko jeden z jego wycinków (Ale! Patrz poniżej!), więc jeśli jest ich więcej, trzeba się trochę naszukać, żeby znaleźć właśnie ten. – Wyjątkiem są instrumenty z włączonym mapowaniem rzędu! Będą one przygotowywać jeden wycinek na każdy rząd zwoju do pianoli, na którym są nuty. Oznacza to, że mogą być dość zasobożerne! – Dźwięki, które wykorzystują prawie te same fragmenty sampla, ale nie dokładnie te same, będą miały koszt tego fragmentu, który wchodzi w ich skład, nawet jeśli jest on wspólny. Dzięki temu widać, ile zasobów potrzebują, by być gotowe. Jak wspomnieliśmy wyżej, współdzielone fragmenty dźwięków nie są jednak liczone podwójnie w całkowitym koszcie. Różnie przycinane dźwięki wymieniane są na liście jako osobne pozycje, nawet jeśli wykorzystują prawie te same dane dźwiękowe. – Obecnie nie można wybrać, który wycinek ma być przygotowywany, ale kto wie, co przyniesie przyszłość!
Podręcznik użytkownika Dreams jest obecnie przygotowywany. Z czasem będziemy dodawać kolejne zasoby i artykuły, a więc czekaj na aktualizacje.