Overwatch 2

Kulisy tworzenia stanów środowiskowych w Overwatch 2

Kulisy tworzenia stanów środowiskowych w Overwatch 2

Cześć wszystkim! Nazywam się Marco Alamia i jestem inżynierem oprogramowania w zespole Overwatch. Niedawno zakończyliśmy pracę nad nowym elementem technologii dla Overwatch 2. Dlatego uznaliśmy, że będzie to świetna okazja, aby dać społeczności możliwość podejrzenia, jak wygląda tworzenie ulepszeń silnika gry. Do pomocy w tym przedsięwzięciu zaprosiłem dwóch innych twórców z zespołu Overwatch: Bruce'a Wilkiego i Fabiena Christina.

Nowa technologia, którą dodaliśmy do silnika, to tzw. stany środowiskowe i szybko stała się naszym ulubionym sposobem pracy przy tworzeniu i projektowaniu map. Choć funkcja ta jest rozwijana i dopracowywana w silniku i narzędziach Overwatch 2, to główny pomysł pochodzi z umysłu naszego utalentowanego oświetleniowca, Fabiena. Poprosiłem go, aby opowiedział nam o początkach pomysłu, który zmienił sposób tworzenia map przez zespół oraz aby przeprowadził nas przez swój proces projektowania.

Przyjrzyjmy się stanom środowiskowym!


Koncepcja

Fabien: Gra Overwatch osadzona jest w jasnym i kolorowym świecie, a jej styl w dużej części wyraża się poprzez mapy. Tworzenie planszy zaczyna się od projektantów poziomów, którzy wymyślają całą architekturę miejsca, używając dużych, szarych brył, aby rozplanować interesującą i zbalansowaną rozgrywkę. Najważniejszą rzeczą na tym etapie jest zaprojektowanie mapy, która daje radość z gry! Po wielu godzinach testów, przychodzi kolej na artystów środowiskowych, którzy przekształcają tymczasowe szare bryły w starannie wykonane budynki i elementy środowiska, które ożywią miejsca, do których udadzą się gracze. 

Wraz z otoczeniem tworzymy oświetlenie, które wspiera historię, jaką opowiada mapa. W przypadku Overwatch 2 chcieliśmy wykreować nowe, interesujące nastroje, które całkowicie zmieniłyby odczucia związane z danym miejscem. Wyobraźcie sobie, że podróżujecie do Numbani i widzicie futurystyczne miasto oświetlone ciepłym, afrykańskim zachodem słońca albo lądujecie w deszczowym Paryżu, gdzie złote światła sklepików i lokali iluminują wszystko wokół i zapraszają was do środka, byście zjedli croissanta, dopóki nie przestanie padać.

To jest dokładnie to, do czego zostały stworzone stany środowiskowe. Dzięki temu nowemu systemowi udało nam się podzielić wszystkie najważniejsze elementy oświetlenia, udźwiękowienia i efektów na niezależne zasoby, które można łączyć jak klocki, tworząc coś, co nazywamy scenariuszami środowiskowymi. Możemy je współdzielić między mapami, a także mieć wiele scenariuszy na każdej mapie.

Weźmy za przykład szybką mapę do trybu deathmatch o nazwie Nekropolia. Prawdopodobnie graliście na niej w scenariuszu nocnym, który łączy kontrast zimnych, niebieskich kolorów nocy z jaskrawopomarańczową barwą świateł pochodni jarzących się na budowlach.

Załóżmy jednak, że chcemy poeksperymentować z innym scenariuszem i zdecydujemy się wypróbować gorące, pustynne kolory znane ze Świątyni Anubisa. Dzięki nowemu systemowi stanów środowiskowych, wystarczy że weźmiemy elementy z mapy świątynnej i zastosujemy je w Nekropolii. 

Efekt jest od razu świetny! Możemy jednak sprawić, że będzie wyglądało to jeszcze lepiej, zmieniając kierunek padania promieni słońca, aby stworzyć bardziej interesujące cienie. W tym celu tworzymy nowy stan środowiska, który będzie nadrzędny w stosunku do kierunku promieni, i umieszczamy ten nowy „blok” na wierzchu tego ze Świątyni Anubisa.  

Gotowe!

Dzięki elastyczności i łatwości, z jaką działają stany środowiskowe, możemy w ciągu kilku godzin stworzyć prototyp nowego oświetlenia dla naszych map. Możliwość szybkich zmian pozwala nam więcej eksperymentować, być bardziej kreatywnym i tworzyć bardziej zróżnicowane mapy.

Ale to nie wszystko. Chociaż poprzednie przykłady prezentowały kosmetyczne zmiany, to stany środowiskowa mogą być również dynamicznie miksowane, aby zapewnić nowe, ekscytujące możliwości rozgrywki. Wyobraźcie sobie, że zostaliście wysłani na misję do Nekropolii, aby przywrócić połączenie z łączem satelitarnym Overwatch i gdy bronicie się przed atakiem Sektora Zero, wokół was szybko rozpętuje się burza piaskowa! Możemy uczynić waszą misję nieco trudniejszą, dodając do słonecznego scenariusza nowy stan środowiskowy burzy piaskowej, który powoli zwiększy zachmurzenie i gęstość efektu chmury piachu.

 

Dzięki tej nowej technologii możemy tworzyć wszelkiego rodzaju zmiany pogodowe, takie jak burze z piorunami, zamieci śnieżne i inne ekscytujące scenariusze środowiskowe, które sprawią, że gra za każdym razem będzie wyglądała inaczej.

Wróćmy teraz do Marco i przyjrzymy się bardziej technicznym aspektom działania stanów środowiskowych.

Implementacja stanów środowiskowych

Marco: Wizja Fabiena była ambitna, więc musieliśmy zaprojektować potężny system, aby osiągnąć to, czego gra Overwatch 2 potrzebowała dla swoich środowisk. Po kilku burzach mózgów zdecydowaliśmy, że w tym samym czasie może być obecnych kilka stanów środowiskowych, uporządkowanych w stos, który może się dynamicznie zmieniać, więc w każdej chwili stan środowiska da się dodać lub usunąć. Magia dzieje się wtedy, gdy silnik patrzy na ten stos i miesza wszystkie stany razem, aby uzyskać ostateczny wygląd środowiska. Jeśli kiedykolwiek używaliście Photoshopa, to jest to odpowiednik blendowania wielu warstw w celu uzyskania ostatecznego obrazu.

Idea jest taka, że każdy stan może opisywać jakiś aspekt samego środowiska, taki jak siła i kierunek wiatru lub barwa promieni słońca. Kiedy stan jest przesuwany na stos, tylko wybrane aspekty przyczyniają się do ostatecznego rezultatu. Na przykład, poniżej widać stos z klubu Lúcio w Rio, gdzie umieszczono stan środowiska zmieniający ekspozycję kamery i aspekty korekcji barw:

 

Stan środowiskowy znajdujący się u podstawy zapewnia wszystkie aspekty mapy, a ten znajdujący się na górze nadrzędnie steruje kolorystyką, aby stworzyć groźną i przerażającą atmosferę obszaru Diablo. Stany środowiskowe mogą być dynamicznie dodawane i usuwane ze stosu w trakcie gry, co pozwala na większą dynamikę i sprawia, że mapy wydają się żywsze i pełniejsze energii.

Aspekty

Pod kierunkiem zespołu artystycznego i Fabiena zidentyfikowaliśmy kilka kluczowych aspektów, które chcemy, aby stany środowiskowe mogły definiować. Na przykład post-processing był pierwszą cechą silnika przekształconą w aspekt. Post-processing to wspólny składnik wszystkich nowoczesnych silników; jest używany do nakładania różnych filtrów i efektów, takich jak kontrola kontrastu, jasności i nasycenia obrazu końcowego. Dynamiczne dostosowywanie kontrastu i jasności obrazu w zależności od tego, co dzieje się w grze, może sprawić, że obraz końcowy będzie bardziej żywy i dynamiczny, i dzięki technologii stanów środowiskowych jest to teraz możliwe w Overwatch 2.

Aspekt mgły jest kolejnym potężnym narzędziem w naszym nowym systemie. Zmieniając parametry, możemy sterować wyglądem mgły i wrażeniem, jakie robi, co z kolei pozwala zespołowi artystycznemu na wizualną ewolucję środowiska w zależności od trybu gry, pozycji graczy, a nawet czasu. Na przykład, możemy sprawić, że mapa stanie się straszniejsza na Halloween, mgła gęsta tylko w określonym obszarze mapy lub burza piaskowa będzie narastać z czasem w jednej z naszych nowych misji bohaterów.

Mamy kilka aspektów, które dotyczą innych właściwości wizualnych, takich jak cienie rzucane przez chmury na mapę, a nawet właściwości niewizualnych, takich jak siła i kierunek wiatru. Dwa z najważniejszych aspektów, które możemy zmienić, to aspekty słońca i nieba. Jak sugerują nazwy, pozwalają nam one na zmianę pewnych kluczowych cech środowiska, takich jak pozycja i kolor słońca, tego jakich chmur używamy i czy w ogóle, oraz czy jest dzień czy noc. Jak można sobie wyobrazić, jest to bardzo potężna część systemu stanów środowiskowych, ponieważ pozwala nam zmienić wygląd i wrażenia na mapie w bardzo dramatyczny sposób.

Te dwa aspekty, słońce i niebo, wykorzystują jeden z najbardziej zaawansowanych obszarów silnika: system oświetlenia. Jest ono niesamowicie ważne dla Overwatch 2, ponieważ pomaga nam ustawić wygląd, wrażenia i nastrój otoczenia. Jednak każda zmiana w tym systemie może mieć wpływ na pamięć i wydajność, więc musimy być bardzo ostrożni z tym, na co sobie pozwalamy. Na szczęście mamy w naszym zespole świetnego inżyniera oprogramowania, Bruce'a Wilkiego, który posiada duże doświadczenie z systemami oświetlenia i pomaga nam stworzyć coś, co będzie wyglądało świetnie, a jednocześnie utrzyma wydajność na wysokim poziomie, jakiego wymaga wieloosobowa strzelanka taka jak Overwatch 2.

Oświetlenie

Bruce: Na stworzenie żywej i kolorowej oprawy wizualnej Overwatch poświęcono wiele pracy. Za każdym razem, gdy rozgrywam mecz na jednej z naszych pięknych map, przypomina mi się, jak wiele uwagi przywiązuje się do szczegółów każdego środowiska oświetleniowego. Światło słoneczne odbija się w pomieszczeniach, reflektory oświetlają ruiny, a nocne festiwale ożywają kolorami – to tylko kilka przykładów tego, jak ważną rolę oświetlenie odgrywa w kreowaniu wyglądu i wrażeń w naszej grze. Podczas tworzenia silnika dla Overwatch ściśle współpracowaliśmy z zespołem artystycznym, aby zapewnić funkcje oświetlenia potrzebne do przeniesienia grafiki koncepcyjnej 2D do świata 3D – funkcje takie jak odbijanie się światła od powierzchni (często nazywane globalną iluminacją), metale odbijające otaczający je świat oraz ruchome obiekty płynnie łączące się ze statycznymi środowiskami. Te funkcje wymagają wielu obliczeń, które często są o wiele bardziej obciążające dla procesora niż byśmy chcieli i zmniejszają liczbę klatek animacji na sekundę, jaką chcieliśmy, aby silnik osiągał. Żeby gra Overwatch mogła działać z wysoką liczbą klatek na sekundę i nadal oferować te zaawansowane funkcje oświetlenia, obliczamy z wyprzedzeniem jak najwięcej informacji dotyczących światła, pakujemy wynik i używamy tych danych w kliencie gry. 

Przyjrzyjmy się bliżej danym, których używamy w Overwatch, aby włączyć niektóre z tych funkcji oświetlenia. Dla elementów nieruchomych, takich jak ściany, podłogi i sufity, tworzymy kilka danych. Pierwsze z nich mówią silnikowi, jak dużo światła trafia na daną powierzchnię i z jakiego kierunku ono pochodzi. Ogólnie rzecz biorąc, dane te nazywane są „mapą światła”, a różne silniki przechowują różne „style” danych w mapach świetlnych.  

 

Na tym obrazku można zobaczyć przykład generowania mapy światła dla powierzchni. Po lewej stronie znajduje się końcowa kompozycja całego oświetlenia. Po środku, na powierzchniach, renderowane są tylko wykresy. Nasi artyści używają tego widoku, aby upewnić się, że dla danej powierzchni zostanie zapisana wystarczająca ilość danych oświetleniowych, aby osiągnąć zamierzony efekt wizualny. Po prawej stronie widać, jak silnik kompresuje te mapy świetlne, aby zminimalizować zajmowaną przez nie pamięć.

Kiedy wydawaliśmy Overwatch, wygenerowaliśmy kolory i kierunek dla wszystkich świateł uderzających o powierzchnie. Używamy danych o kierunku do zmiany barwy na nierównych powierzchniach – im bardziej powierzchnia jest zwrócona w danym kierunku, tym więcej koloru otrzymuje. W Overwatch 2 generujemy teraz trzy kierunki oświetlenia, co pozwala nam zmieniać każdy z kanałów barw (czerwony, zielony i niebieski) niezależnie. Efektem dodatkowych kierunków jest pogłębienie jaskrawości oświetlenia otoczenia, co z kolei zwiększa jakość obrazu.

Dla obiektów stacjonarnych generujemy dane, które mówią, jak duża część otoczenia jest widoczna. Dane te nazywane są „okluzją otoczenia”. Zaczęliśmy generować je na kilku mapach już po wydaniu Overwatch – na przykład na planszach Paryż i Hawana. W Overwatch 2 wszystkie mapy będą teraz generować te dane, co zwiększy jakość grafiki. 

 

 

Dla wszystkiego, co się porusza, na przykład postaci, generujemy wiele przykładowych pozycji w świecie i kodujemy dane oświetlenia dla każdej z nich – ten sam typ danych, który budujemy dla obiektów nieruchomych. Gdy poruszający się obiekt zbliży się do jednego z tych punktów, używa on tych danych do oświetlenia. W Overwatch 2 generujemy o wiele więcej przykładowych pozycji – zwłaszcza w powietrzu – co oznacza, że poruszające się obiekty będą wyglądać lepiej niż kiedykolwiek.  

 

Jeśli oglądaliście nasz panel na BlizzConline, to widzieliście, jak wyglądają mapy z wieloma różnymi środowiskami oświetleniowymi. Dla każdego z nich chcemy udostępnić jak najwięcej danych, aby utrzymać rozsądny rozmiar plików do pobrania i instalacji. Technologia stanów środowiskowych pozwala silnikowi na grupowanie wielu środowisk oświetleniowych dla danej mapy, dzięki czemu duża część wstępnie obliczonych danych, o których mowa powyżej, jest współdzielona pomiędzy tymi zgrupowanymi środowiskami oświetleniowymi. Zmniejsza to znacznie ilość danych, co oznacza, że nasi gracze nie muszą pobierać i instalować tak wielu plików. Wyższa jakość oświetlenia, większe zróżnicowanie oświetlenia i mniejsza ilość danych – wszystko to zapewnia funkcja stanów środowiskowych.


Dzięki stanom środowiskowym gra Overwatch 2 zaprezentuje się bardziej dynamicznie, a jednocześnie usprawnia się praca naszych artystów, umożliwiając im tworzenie kolorowych światów, którymi będziecie mogli się cieszyć. Spodziewajcie się wciągających, obejmujących cały glob przygód ze zmieniającym się otoczeniem i oszałamiającą oprawą wizualną w Overwatch 2!

Kolejny artykuł

Wyróżnione wiadomości