Wstecz
Jak zespół Look North World stworzył oparty na rytmie „Patchwork Parkour” w Fortnite
Michael Dekoekkoek, główny programista w Look North World
Patchwork Parkour (kod wyspy: 1425-4464-4801) to efekt współpracy pomiędzy studiem tworzenia gier UGC i wydawcą Look North World oraz Harmonix Labs, zespołem należącym do Epic Games i słynącym z udostępniania światowej klasy przygód opartych na muzyce.
Wspólnie stworzyliśmy grę muzyczną, która w dużym stopniu opiera się na rozgrywce i interaktywności z muzyką, przesuwając granice możliwości systemu Patchwork – czyli zestawu narzędzi do trybu kreatywnego Fortnite i UEFN, który umożliwia tworzenie i modyfikowanie muzyki i efektów wizualnych. Patchwork Parkour demonstruje niektóre sposoby tworzenia niestandardowych ścieżek dźwiękowych dla waszych wysp i wykorzystywania muzyki w celu urozmaicenia rozgrywki.
Zespół Harmonix nieustannie udoskonala i rozszerza swoje narzędzia Patchwork, a podczas opracowywania Patchwork Parkour wprowadził znaczące ulepszenia.
Poniżej przedstawiamy niektóre najważniejsze elementy zastosowane w naszej grze oraz istotne spostrzeżenia, jakie pozyskaliśmy w trakcie procesu jej tworzenia. Więcej informacji i dokumentację na temat bieżących narzędzi Patchwork znajdziecie w dokumentacji Epic dotyczącej urządzeń Patchwork.
Sekwencery nut umożliwiają rozmieszczanie i odtwarzanie nut w oparciu o aktualne tempo. Chociaż urządzenie nie wytwarza muzyki bezpośrednio, kabel wyjściowy Sekwencera nut można podłączyć do różnych innych urządzeń, które omówimy później.
Aktywatory nut uruchamiają zdarzenia w momencie wygenerowania wybranych nut. Umieszczając Aktywator nut w łańcuchu wyjściowym Sekwencera nut, umożliwiacie innym urządzeniom reagowanie na te zdarzenia i wykonywanie działań na podstawie aktywowanej nuty. Jest to główna metoda, jaką Patchwork Parkour animuje zagrożenia środowiskowe w synchronizacji z naszą ścieżką dźwiękową.
Wraz z funkcją Synchronizacja utworów, urządzenia te stanowią główne elementy umożliwiające synchronizację rozgrywki z rytmem. Można je łączyć z różnymi innymi urządzeniami w celu tworzenia muzyki, ale tak naprawdę, nie trzeba nawet odtwarzać żadnych dźwięków, aby uruchomić rozgrywkę w oparciu o rytm. Proces tworzenia muzyki może odbywać się szeregowo i/lub równolegle z innymi urządzeniami Patchwork, aby stworzyć pełną ścieżkę dźwiękową, którą omówimy w następnej sekcji.
Bardzo ważnym urządzeniem w grze Patchwork Parkour jest Menadżer muzyki. Choć jest to proste rozwiązanie, pełni kluczową rolę w zarządzaniu tempem wszystkich urządzeń Patchwork. Ustawiając tempo w Menadżerze muzyki, mamy pewność, że każdy umieszczony przez nas Sekwencer nut będzie odtwarzany w synchronizacji z tym tempem. Możliwość ta pozwala nam na równoległe uruchamianie wielu Sekwencerów nut – przy czym wszystkie będą w synchronizacji.
Patchwork Parkour na etapie prototypu wykorzystywała głównie wbudowane narzędzia. W trakcie dalszego rozwoju gra przeszła na fusion patche, aby zmaksymalizować dynamiczny dźwięk, jednocześnie minimalizując liczbę urządzeń, które trzeba umieścić na mapie.
Aby zapewnić równowagę pomiędzy złożonością muzyczną a optymalnym wykorzystaniem pamięci, połączyliśmy równolegle fusion patche i efekty z Sekwencerami nut i aktywatorami. Konkretnie umieściliśmy kombinację Sekwencera i Aktywatora nut (bez żadnego wyjścia do głośnika) obok oddzielnego Sekwencera nut i różnych innych urządzeń generujących muzykę w jego łańcuchu wykonawczym, takich jak: instrumenty muzyczne, filtry, modulatory, a na końcu głośniki.
Takie rozwiązanie umożliwiło nam stworzenie stosunkowo złożonej muzyki w naszych samplach, jednocześnie zachowując dokładną synchronizację animacji rozgrywki z muzyką odtwarzaną w samplach.
Demonstracja fusion patchy i Aktywatorów nut przy użyciu wielu Sekwencerów nut w synchronizacji.
Najprostsza forma rozgrywki wpływająca na muzykę polega na włączaniu/wyłączaniu urządzeń Patchwork w oparciu o wejście/wyjście gracza do/z urządzeń strefy modyfikatora. W naszej grze jest to powszechnie wykorzystywane i funkcjonuje na dość prostej zasadzie. Bardziej interesujące jest wykorzystywanie urządzenia Ustalacz wartości Patchwork. Urządzenie to umożliwiło nam wprowadzanie zmian w innych urządzeniach Patchwork podczas rozgrywki i wnoszenie dowolnej liczby zmian w kompozycji muzycznej.
Poniższe filmy pokazują sposób wykorzystania Ustalaczy wartości do sterowania muzyką podczas rozgrywki.
Film 2: Pod koniec poziomu 3 muzyka zmienia się na nowy miks.
Film 3: Ustalacz wartości jest używany do zmiany miksu. Chociaż w trakcie rozgrywki zachodzi wiele zmian muzycznych, ten film koncentruje się na dwóch odrębnych sekcjach muzycznych. Możemy przełączać między nimi poprzez zmianę ustawień bieżącej strony Sekwencera nut.
Film 1: Poziom 3 zaczyna się od nowego miksu.
Jeśli wasi gracze nie korzystają bezpośrednio z urządzeń Patchwork, istnieje kilka sposobów na zmniejszenie wysokiego obciążenia pamięci, do którego może dojść, w zależności od liczby używanych urządzeń Patchwork.
Aby jednak uzyskać wydajność na poziomie produkcyjnym, należy poświęcić czas na przekonwertowanie wszystkiego, co można przekonwertować na inne typy formatów animacji.
Stwierdziliśmy, że skrypty w języku Verse idealnie nadają się do większości naszych potrzeb. Ponieważ w sekwencjach poziomów pozostały niektóre, bardziej złożone wizualnie animacje, ważne jest staranne zarządzanie nimi, aby uzyskać optymalną wydajność.
Jako oparta na rytmie gra typu platformówka/parkour, Patchwork Parkour wymagała używania wielu takich samych przeszkód, z których każda składała się z jednego lub więcej aktorów. W UEFN powoduje to pewne utrudnienia w procesie tworzenia związane z komponentowaniem tych obiektów w celu łatwej modyfikacji i kopiowania/wklejania. Oto kilka wskazówek, które ułatwią ten proces:

W Patchwork Parkour udowodniliśmy, że można połączyć dynamiczną muzykę z angażującą graczy rozgrywką, jednocześnie optymalizując wydajność. Od wykorzystania różnych narzędzi po optymalizację zarządzania pamięcią – każda decyzja przyczyniła się do uzyskania płynniejszej i bardziej wciągającej przygody. Tworząc własne wyspy, po prostu eksperymentujcie, optymalizujcie i dobrze się bawcie!
Możecie wskoczyć do gry, używając kodu wyspy: 1425-4464-4801.
Wspólnie stworzyliśmy grę muzyczną, która w dużym stopniu opiera się na rozgrywce i interaktywności z muzyką, przesuwając granice możliwości systemu Patchwork – czyli zestawu narzędzi do trybu kreatywnego Fortnite i UEFN, który umożliwia tworzenie i modyfikowanie muzyki i efektów wizualnych. Patchwork Parkour demonstruje niektóre sposoby tworzenia niestandardowych ścieżek dźwiękowych dla waszych wysp i wykorzystywania muzyki w celu urozmaicenia rozgrywki.
Zespół Harmonix nieustannie udoskonala i rozszerza swoje narzędzia Patchwork, a podczas opracowywania Patchwork Parkour wprowadził znaczące ulepszenia.
Poniżej przedstawiamy niektóre najważniejsze elementy zastosowane w naszej grze oraz istotne spostrzeżenia, jakie pozyskaliśmy w trakcie procesu jej tworzenia. Więcej informacji i dokumentację na temat bieżących narzędzi Patchwork znajdziecie w dokumentacji Epic dotyczącej urządzeń Patchwork.
Stworzenie rozgrywki opartej na rytmie
Główne komponenty: Sekwencer nut, Aktywator nut, Synchronizacja utworów
W wielu grach głównymi komponentami Patchwork używanymi do tworzenia rozgrywki opartej na rytmie są następujące urządzenia: Sekwencer nut, Aktywator nut i Synchronizacja utworów. Patchwork Parkour w dużym stopniu wykorzystuje pierwsze dwa z nich. Urządzenie Synchronizacja utworów oferuje potężne narzędzia do synchronizacji sekwencji poziomu UEFN z dźwiękiem. Ponieważ funkcja ta została udostępniona w połowie procesu tworzenia, nie mogliśmy w pełni wykorzystać jej w tym projekcie. Widać jednak, że ma duży potencjał do wykorzystania w przyszłości.
Kombinacja Sekwencera nut i Aktywatora nut służąca do synchronizacji aktorów z rytmem perkusyjnym Patchwork Parkour.
Sekwencery nut umożliwiają rozmieszczanie i odtwarzanie nut w oparciu o aktualne tempo. Chociaż urządzenie nie wytwarza muzyki bezpośrednio, kabel wyjściowy Sekwencera nut można podłączyć do różnych innych urządzeń, które omówimy później.
Aktywatory nut uruchamiają zdarzenia w momencie wygenerowania wybranych nut. Umieszczając Aktywator nut w łańcuchu wyjściowym Sekwencera nut, umożliwiacie innym urządzeniom reagowanie na te zdarzenia i wykonywanie działań na podstawie aktywowanej nuty. Jest to główna metoda, jaką Patchwork Parkour animuje zagrożenia środowiskowe w synchronizacji z naszą ścieżką dźwiękową.
Film pokazujący kombinację Sekwencera nut i Aktywatora nut uruchamiającą animacje świetlne w grze.
Wraz z funkcją Synchronizacja utworów, urządzenia te stanowią główne elementy umożliwiające synchronizację rozgrywki z rytmem. Można je łączyć z różnymi innymi urządzeniami w celu tworzenia muzyki, ale tak naprawdę, nie trzeba nawet odtwarzać żadnych dźwięków, aby uruchomić rozgrywkę w oparciu o rytm. Proces tworzenia muzyki może odbywać się szeregowo i/lub równolegle z innymi urządzeniami Patchwork, aby stworzyć pełną ścieżkę dźwiękową, którą omówimy w następnej sekcji.
Bardzo ważnym urządzeniem w grze Patchwork Parkour jest Menadżer muzyki. Choć jest to proste rozwiązanie, pełni kluczową rolę w zarządzaniu tempem wszystkich urządzeń Patchwork. Ustawiając tempo w Menadżerze muzyki, mamy pewność, że każdy umieszczony przez nas Sekwencer nut będzie odtwarzany w synchronizacji z tym tempem. Możliwość ta pozwala nam na równoległe uruchamianie wielu Sekwencerów nut – przy czym wszystkie będą w synchronizacji.
Tworzenie dynamicznych ścieżek dźwiękowych
Łączenie dźwięku wytwarzanego zewnętrznie i wewnętrznie dla zapewnienia rozgrywki opartej na muzyce
Główne komponenty: fusion patche, instrumenty Patchwork, efekty, filtry, modulatory, głośniki
Patchwork oferuje solidny zestaw narzędzi dźwiękowych, które umożliwiają stworzenie doskonałych wrażeń muzycznych. Możecie wygenerować całą ścieżkę dźwiękową za pomocą wbudowanych instrumentów i efektów Patchwork lub, co jeszcze bardziej ekscytujące, wprowadzić własne sample za pomocą zewnętrznych narzędzi audio poprzez fusion patche.Patchwork Parkour na etapie prototypu wykorzystywała głównie wbudowane narzędzia. W trakcie dalszego rozwoju gra przeszła na fusion patche, aby zmaksymalizować dynamiczny dźwięk, jednocześnie minimalizując liczbę urządzeń, które trzeba umieścić na mapie.
Aby zapewnić równowagę pomiędzy złożonością muzyczną a optymalnym wykorzystaniem pamięci, połączyliśmy równolegle fusion patche i efekty z Sekwencerami nut i aktywatorami. Konkretnie umieściliśmy kombinację Sekwencera i Aktywatora nut (bez żadnego wyjścia do głośnika) obok oddzielnego Sekwencera nut i różnych innych urządzeń generujących muzykę w jego łańcuchu wykonawczym, takich jak: instrumenty muzyczne, filtry, modulatory, a na końcu głośniki.
Takie rozwiązanie umożliwiło nam stworzenie stosunkowo złożonej muzyki w naszych samplach, jednocześnie zachowując dokładną synchronizację animacji rozgrywki z muzyką odtwarzaną w samplach.
Wpływ rozgrywki na muzykę
Oprócz tworzenia muzyki i rozszerzenia mechaniki rozgrywki, Patchwork oferuje także szereg narzędzi pozwalających na wpływanie rozgrywki na muzykę. Patchwork Parkour wykorzystuje różne techniki, aby umożliwić dynamiczną zmianę muzyki zależnie od działań gracza i jego postępów w grze.Najprostsza forma rozgrywki wpływająca na muzykę polega na włączaniu/wyłączaniu urządzeń Patchwork w oparciu o wejście/wyjście gracza do/z urządzeń strefy modyfikatora. W naszej grze jest to powszechnie wykorzystywane i funkcjonuje na dość prostej zasadzie. Bardziej interesujące jest wykorzystywanie urządzenia Ustalacz wartości Patchwork. Urządzenie to umożliwiło nam wprowadzanie zmian w innych urządzeniach Patchwork podczas rozgrywki i wnoszenie dowolnej liczby zmian w kompozycji muzycznej.
Poniższe filmy pokazują sposób wykorzystania Ustalaczy wartości do sterowania muzyką podczas rozgrywki.
Film 2: Pod koniec poziomu 3 muzyka zmienia się na nowy miks.
Film 3: Ustalacz wartości jest używany do zmiany miksu. Chociaż w trakcie rozgrywki zachodzi wiele zmian muzycznych, ten film koncentruje się na dwóch odrębnych sekcjach muzycznych. Możemy przełączać między nimi poprzez zmianę ustawień bieżącej strony Sekwencera nut.
Spostrzeżenia / wskazówki dla programistów
Główne komponenty: tryb pamięci Patchwork, wiele stron w Sekwencerach nut, sample Fusion, siatki szkieletowe, możliwość powiązania aktorów
Zarządzanie pamięcią
Urządzenia Patchwork mogą zużywać znaczną ilość pamięci podczas gry. Oto kilka wskazówek, jak zapewnić wyważone zużycie zasobów pamięci przy jednoczesnym zachowaniu dynamicznej muzyki.Jeśli wasi gracze nie korzystają bezpośrednio z urządzeń Patchwork, istnieje kilka sposobów na zmniejszenie wysokiego obciążenia pamięci, do którego może dojść, w zależności od liczby używanych urządzeń Patchwork.
- Użyjcie ustawienia trybu pamięci Patchwork w Ustawieniach wyspy. To ustawienie wyłącza wszystkie animacje i wiele elementów graficznych używanych przez urządzenia Patchwork w trakcie rozgrywki. Funkcji tej należy używać tylko wtedy, gdy gracze nie muszą korzystać z urządzeń Patchwork podczas rozgrywki.
- Musicie zapewnić równowagę w tym korzystaniu – gdy tworzycie/integrujecie swoją muzykę z Patchwork, musicie zapewnić ich pełną widoczność i interaktywność. Jednakże gdy publikujecie lub przeprowadzacie testy pamięci, możecie włączyć tę funkcję i znacznie zmniejszyć zużycie pamięci.
- Wykorzystajcie wiele stron w Sekwencerach nut, które możecie zmieniać za pomocą urządzeń typu Ustalacz wartości, zależnie od potrzeb rozgrywki.
- Uwaga: Sekwencery mogą mieć wiele stron i można je zapętlać pojedynczo lub sekwencyjnie. Patchwork Parkour wykorzystuje tę funkcję w celu zmniejszenia liczby pojedynczych urządzeń w grze. Na przykład zmieniamy strony na podstawie postępów gracza, jak we wcześniejszym filmie z Ustalaczem wartości, gdzie aktywujemy zmianę na stronie 3 Sekwencera nut, aby odtwarzać inną muzykę.
- Użycie sampli Fusion. Jak wspomniano wcześniej, Patchwork Parkour w dużej mierze opiera się na samplach Fusion. Tworząc dźwięk w zewnętrznym DAW i odtwarzając go w fusion patch za pośrednictwem urządzenia Odtwarzacz instrumentu, można zmniejszyć liczbę pojedynczych urządzeń niezbędnych do wytworzenia danego dźwięku, a tym samym zmniejszyć stopień zużycia pamięci.
Sekwencje filmowe: korzyści i ewentualne zagrożenia
Już na etapie tworzenia gry wiedzieliśmy, że sekwencje poziomów i sekwencje filmowe wymagają dużej wydajności, jednak odkryliśmy również, że idealnie nadają się do szybkiego wprowadzania zmian w tych elementach mechaniki gry, które dobrze synchronizują się z muzyką. Na etapie prototypowania pozwalają one na szybkie i łatwe tworzenie zabawnych mechanizmów rozgrywki, dlatego zalecamy ich stosowanie właśnie na etapie prototypowania lub we wczesnej fazie rozwoju gry.Aby jednak uzyskać wydajność na poziomie produkcyjnym, należy poświęcić czas na przekonwertowanie wszystkiego, co można przekonwertować na inne typy formatów animacji.
Stwierdziliśmy, że skrypty w języku Verse idealnie nadają się do większości naszych potrzeb. Ponieważ w sekwencjach poziomów pozostały niektóre, bardziej złożone wizualnie animacje, ważne jest staranne zarządzanie nimi, aby uzyskać optymalną wydajność.
- Odtwarzając urządzenia sekwencji filmowej zsynchronizowane z rytmem, próbujcie skonsolidować jak najwięcej aktorów wykonujących animacje w tym rytmie w jak najmniejszej liczbie sekwencji poziomów. Uruchamianie i zatrzymywanie tych urządzeń wiąże się ze znacznym obniżeniem wydajności, dlatego ograniczenie liczby sekwencji poziomów odtwarzanych jednocześnie pomaga poprawić wydajność.
- W Patchwork Parkour stworzyliśmy oparty na strefach mechanizm włączania/wyłączania animacji, aby ograniczyć liczbę sekwencji filmowych odtwarzanych jednocześnie. Ponieważ jest to gra dla jednego gracza, mogliśmy precyzyjnie zarządzać liczbą urządzeń, które są uruchamiane jednocześnie.
Jako oparta na rytmie gra typu platformówka/parkour, Patchwork Parkour wymagała używania wielu takich samych przeszkód, z których każda składała się z jednego lub więcej aktorów. W UEFN powoduje to pewne utrudnienia w procesie tworzenia związane z komponentowaniem tych obiektów w celu łatwej modyfikacji i kopiowania/wklejania. Oto kilka wskazówek, które ułatwią ten proces:
- Siatki szkieletowe: w miarę możliwości odradzamy stosowanie siatek szkieletowych w sekwencjach filmowych.
- Początkowo wszystkie zagrożenia środowiskowe aktywowane przez muzykę tworzyliśmy za pomocą siatek szkieletowych i ich animacji. Ułatwiło to pracę z wieloma zagrożeniami, ponieważ zmiana w animacji w większości przypadków wymagała jedynie jej aktualizacji, a nie modyfikowania każdej ścieżki w wielu sekwencjach filmowych.
- Jednak w obecnym stanie UEFN sekwencje filmowe powodują, że siatki szkieletowe „tykają” swoją animację i odświeżają kości co klatkę, nawet gdy żadna animacja nie jest ustawiona. Może to prowadzić do problemów z wydajnością.
- Początkowo wszystkie zagrożenia środowiskowe aktywowane przez muzykę tworzyliśmy za pomocą siatek szkieletowych i ich animacji. Ułatwiło to pracę z wieloma zagrożeniami, ponieważ zmiana w animacji w większości przypadków wymagała jedynie jej aktualizacji, a nie modyfikowania każdej ścieżki w wielu sekwencjach filmowych.
- Aktorzy i ścieżki: aby zoptymalizować wydajność podczas korzystania z sekwencji filmowych, najlepiej jest powiązać tylko jednego aktora z każdą ścieżką transformacji. Taka metoda zapewnia płynniejsze ładowanie i minimalizuje potencjalne problemy z wydajnością spowodowane sposobem, w jaki animacje obsługują podobiekty.
- Jeśli do jednej ścieżki przypisanych jest wielu aktorów, na tej ścieżce pojawi się ikona podwójnej żółtej strzałki. Zachowajcie ostrożność i unikajcie tego, aby utrzymać optymalną wydajność.

- Ponadto dobrą praktyką jest rozdzielenie aktorów w sekwencjach. Kopiowanie i wklejanie ścieżek transformacji jest szybkie i łatwe, więc jeśli wielu aktorów odtwarza tę samą animację, możecie po prostu skopiować ścieżki transformacji do każdego aktora, dzięki czemu ich animacje będą wyświetlane synchronicznie.

W Patchwork Parkour udowodniliśmy, że można połączyć dynamiczną muzykę z angażującą graczy rozgrywką, jednocześnie optymalizując wydajność. Od wykorzystania różnych narzędzi po optymalizację zarządzania pamięcią – każda decyzja przyczyniła się do uzyskania płynniejszej i bardziej wciągającej przygody. Tworząc własne wyspy, po prostu eksperymentujcie, optymalizujcie i dobrze się bawcie!
Możecie wskoczyć do gry, używając kodu wyspy: 1425-4464-4801.