Analiza przypadku — używanie dźwięku przestrzennego w narzędziu RoboRaid
W tym artykule opisano wyzwania, przed którymi stoi zespół środowiska Microsoft HoloLens podczas tworzenia dźwięku dla strzelca pierwszej osoby roboRaid rzeczywistości mieszanej.
Technologia
Dźwięk przestrzenny jest jedną z najbardziej ekscytujących funkcji Microsoft HoloLens, umożliwiając użytkownikom postrzeganie tego, co dzieje się wokół nich, gdy obiekty nie są w zasięgu wzroku.
W RoboRaid najbardziej oczywistym i skutecznym zastosowaniem dźwięku przestrzennego jest powiadamianie odtwarzacza o czymś, co dzieje się poza ich widzeniem peryferyjnym. Na przykład naruszenie może wejść z dowolnej zeskanowanej ściany w pomieszczeniu. Jeśli nie masz do czynienia z lokalizacją, w której jest wprowadzana, możesz ją pominąć. Aby powiadomić Cię o tej inwazji, usłyszysz odrębny kawałek dźwięku pochodzącego z miejsca, w którym wchodzi naruszenie, co informuje, że musisz działać szybko, aby go zatrzymać.
Za kulisami
Tworzenie dźwięku przestrzennego dla aplikacji HoloLens jest tak nowe i unikatowe, że problemy mogą być trudne do rozwiązania, ponieważ nie ma żadnych wcześniejszych projektów do odwołania. Mam nadzieję, że te przykłady wyzwań dźwiękowych, przed którymi stoimy podczas tworzenia roboRaid, pomogą Ci podczas tworzenia dźwięku dla własnych aplikacji.
Należy pamiętać o opodatkowaniu procesora CPU
Dźwięk przestrzenny może być wymagający na procesorze CPU. W przypadku pracowitego środowiska, takiego jak RoboRaid, kluczowe było utrzymanie liczby wystąpień dźwięku przestrzennego poniżej ośmiu w danym momencie. Zwykle było to tak proste, jak ustawienie limitu wystąpień dla różnych zdarzeń audio. Wszystkie wystąpienia, które mają miejsce po osiągnięciu limitu, zostaną zabite. Na przykład podczas duplikowania dronów ich krzyki są ograniczone do trzech wystąpień w danym momencie. Biorąc pod uwagę tylko około czterech dronów może zduplikować jednocześnie, trzy krzyki są mnóstwo, ponieważ nie ma sposobu, w jaki twój mózg może śledzić, że wiele podobnych brzmiących wydarzeń audio. To uwolniło zasoby dla innych wydarzeń dźwięku przestrzennego, takich jak eksplozje wroga lub wrogowie przygotowujący się do strzelania.
Nagradzanie udanego dodge
Unikający mechanik jest jedną z najważniejszych mechaniki rozgrywki w RoboRaid, a także coś, co czuliśmy, było naprawdę wyjątkowe dla doświadczenia HoloLens. W związku z tym chcieliśmy, aby udane ucieki bardzo satysfakcjonujące dla gracza. Mamy Doppler "whizz-by", aby brzmieć przekonująco dość wcześnie na rozwój. Początkowo moim planem było użycie pętli i manipulowanie nią w czasie rzeczywistym przy użyciu woluminu, skoku i filtru. Implementacja tego rozwiązania będzie bardzo skomplikowana. Przed zatwierdzeniem zasobów w celu utworzenia tego utworzyliśmy tani prototyp przy użyciu elementu zawartości z efektem Dopplera, aby dowiedzieć się, jak się czuje. Nasz utalentowany dev się tak, że ten whizz-by aktyw będzie grać dokładnie 0,7 sekundy przed pocisku przejdzie przez ucho gracza i wyniki czuły się niesamowite! Nie trzeba już mówić, że rowemy bardziej złożone rozwiązanie i zaimplementowaliśmy prototyp.
(Aby uzyskać więcej informacji na temat tworzenia elementu zawartości audio z wbudowanym efektem Dopplera, zobacz 100 Whooshes in 2 Minutes (100 Whooshes in 2 Minutes).
Swędzenie nieskuteczne dźwięki
Pierwotnie chcieliśmy zagrać dźwięk eksplozji za graczem, gdy udało im się uchwycić pocisk wroga, ale postanowiliśmy rowu z kilku powodów. Po pierwsze, nie czułem się tak skuteczny, jak whizz-by SFX użyliśmy do dodge. Do czasu, gdy pocisk uderza w ścianę za tobą, coś innego wydarzyłoby się w grze, która zamaskowałaby ten dźwięk. Po drugie, nie mieliśmy kolizji na podłodze, więc nie mogliśmy dostać eksplozji do gry, gdy pocisk uderzył w podłogę zamiast ścian. I wreszcie był koszt procesora CPU dźwięku przestrzennego. Elitarny wróg Skorpiona (taki, który może czołgać się wewnątrz ściany) ma specjalny atak, który strzela około ośmiu pocisków. Nie tylko to sprawiało ogromny bałagan w mix, ale także wprowadził okropne pękanie, ponieważ uderzył w procesor zbyt twardy.
Komunikowanie trafienia
Ciekawym problemem, jaki napotkaliśmy na urządzeniu HoloLens, było to, jak trudno było skutecznie poinformować, że gracz został trafiony. To, co sprawia, że doświadczenie rzeczywistości mieszanej powiodło się, to uczucie, że historia się z tobą dzieje. Oznacza to, że musisz uwierzyć, że walczysz z inwazją obcych robotów we własnym salonie.
Gracze oczywiście nie będą czuć niczego, gdy się trafią, więc musieliśmy znaleźć sposób, aby przekonać gracza, że coś złego się z nimi stało. W konwencjonalnych grach możesz zobaczyć animację, która informuje o tym, że postać została trafiona, lub ekran może migać na czerwono, a postać może trochę chrząkać. Ponieważ tego typu sygnały nie działają w środowisku rzeczywistości mieszanej, postanowiliśmy połączyć sygnał wizualny z przesadnym dźwiękiem wskazującym, że zostało to uszkodzone. Stworzyłem duży dźwięk i uczyniłem go tak widoczny w mix, że kaczki wszystko w dół. Następnie, aby wyróżniać się jeszcze bardziej, dodaliśmy krótki dźwięk ostrzegawczy, jakby sub nuklearny zatonął.
Uzyskiwanie dużego dźwięku z małych głośników
Głośniki HoloLens są małe i lekkie, aby odpowiadały potrzebom urządzenia, więc nie można oczekiwać, że usłyszysz zbyt dużo niskiej klasy. Podobnie jak w przypadku smartfonów lub ręcznych urządzeń do gier, projektanci dźwięku i kompozytorzy muszą pamiętać o częstotliwości zawartości ich dźwięku. Zawsze projektuję dźwięki lub pisać muzykę z pełnym zakresem częstotliwości, ponieważ noszenie słuchawek jest opcją dla użytkowników. Jednak aby zapewnić zgodność z głośnikami HoloLens, od czasu do czasu uruchamiam test, umieszczając EQ w master dowolnego DAW zdarza mi się pracować. Ustawienie EQ składa się z filtru o wysokiej przepływności około 600 Hz do 700 Hz (nie zbyt strome) i filtru z niskim przepustem na około 10K (strome). Powinno to dać przybliżony obraz tego, jak dźwięki będą odtwarzane na urządzeniu.
Jeśli polegasz na basie, aby dać poczucie akord zmiany w muzyce, może się okazać, że muzyka całkowicie traci poczucie korzenia, gdy zastosujesz to ustawienie EQ. Aby rozwiązać ten problem, dodałem kolejną warstwę do basu, która jest jedną oktawą wyższą (z niektórymi bogatymi harmonicznymi) i zmieszałem ją, aby uzyskać poczucie korzenia z powrotem. Czasami użycie zniekształceń do amperowania harmonicznych da wystarczającą zawartość częstotliwości w górnym zakresie, aby nasz mózg myślał, że jest coś pod nim. Dotyczy to efektów, eksplozji lub dźwięków, takich jak ataki szefa, takie jak superataki szefa. Naprawdę nie możesz polegać na low-end, aby dać graczowi poczucie wpływu lub wagi. Podobnie jak w przypadku muzyki, za pomocą zniekształceń, aby dać trochę chrupiący zdecydowanie pomógł.
Wyróżnianie sygnałów dźwiękowych
Oczywiście wszyscy w zespole chcieli muzyki bombastycznej, głośnych pistoletów i szalonych eksplozji; ale chcieli również usłyszeć głos lub inne sygnały audio krytyczne dla gry.
W grze konsolowej z pełną częstotliwością masz więcej opcji dzielenia częstotliwości w zależności od znaczenia dźwięku. Dla RoboRaid byłem ograniczony w liczbie zakresów częstotliwości, które mogłem zakrzywić z dźwięków. Jeśli używasz filtru niskoprzepustowego i zakrzywić się zbyt wiele z wyższego końca spektrum, nie będziesz mieć nic w lewo na dźwięk, ponieważ nie ma zbyt wiele niskich poziomów.
Aby dźwięk RoboRaid był tak duży, jak to możliwe na urządzeniu, musieliśmy obniżyć zakres dynamiczny całego środowiska i szeroko wykorzystać kaczki, tworząc wyraźną hierarchię znaczenia dla różnych typów dźwięków. Ustawiam kaczki z -2 dB do -6 dB w zależności od ważności. Osobiście nie lubię oczywistych kaczek w grach, więc spędziłem dużo czasu dostrajania zanikania / out czas i ilość tłumienia objętości. Konfigurujemy oddzielne autobusy na potrzeby dźwięku przestrzennego, dźwięku nieprzestrzegowego, vo i suchej magistrali bez odgłosów muzyki. Następnie utworzyliśmy magistrale o wysokim priorytcie, krytycznym i niekrytycznym, aby zasoby zostały skonfigurowane w celu przejścia do odpowiednich autobusów.
Mam nadzieję, że specjaliści audio tam będą mieli tyle zabawy i podniecenia pracy nad własnymi aplikacjami, jak pracowałem nad RoboRaid. Nie mogę się doczekać, aby zobaczyć (i usłyszeć!) co utalentowani ludzie poza Microsoft wymyśli dla HoloLens.
Zrób to samodzielnie
Jedną z sztuczk, jaką odkryłem, aby niektóre wydarzenia (takie jak eksplozje) brzmiały "większe", jak wypełniają pokój, było stworzenie mono zasobu dla dźwięku przestrzennego i połączenie go z zasobem stereo 2D, który ma być odtwarzany z powrotem w 3D. Wymaga to dostrajania, ponieważ posiadanie zbyt dużej ilości informacji w zawartości stereo zmniejszy kierunkowość zasobów mono. Jednak uzyskanie równowagi prawo spowoduje ogromne dźwięki, które sprawią, że gracze odwrócą głowę we właściwym kierunku.
Możesz wypróbować duże dźwięki samodzielnie, korzystając z poniższych zasobów dźwiękowych:
Scenariusz 1
- Pobierz plik roboraid_enemy_explo_mono.wav i ustaw go, aby odtworzyć dźwięk przestrzenny i przypisać go do zdarzenia.
- Pobierz plik roboraid_enemy_explo_stereo.wav i ustaw go do odtwarzania w stereo 2D i przypisz je do tego samego zdarzenia co powyżej. Ponieważ te zasoby są znormalizowane do aparatu Unity, zatłoczona ilość obu zasobów w taki sposób, aby nie tworzyła wycinków.
- Odtwórz oba dźwięki razem. Przenieś głowę, aby poczuć, jak brzmi to przestrzennie.
Scenariusz 2
- Pobierz plik roboraid_enemy_explo_summed.wav i ustaw go, aby odtwarzać dźwięk przestrzenny i przypisywać je do zdarzenia.
- Odtwórz ten zasób samodzielnie, a następnie porównaj go ze zdarzeniem ze scenariusza 1.
- Wypróbuj różne równoważenie plików mono i stereo.