Już dawno temu postanowiliśmy, że chcemy mieć nieograniczone możliwości dostosowywania postaci w stylu pixel art

Wiele gier w stylu pixel art, które pojawiły się przed nami, poruszało temat personalizacji postaci, jednak uważaliśmy, że żadna z nich nie przesunęła granic animacji i personalizacji postaci w taki sam sposób, jak zrobiła to grafika 3D w ciągu ostatnich dziesięciu lat. Możliwości personalizacji postaci w innych grach są ogromne, głównie dzięki coraz potężniejszym silnikom gry i narzędziom dla grafików.
Problem polega na tym, że w grafice pikselowej 2D nie da się po prostu zamienić siatek, tak jak w 3D, i zastosować ich do tego samego obiektu z rigiem. Każda klatka jest rysowana ręcznie. Musieliśmy więc wymyślić, jak:
- Stwórzmy własne animacje ruchu, bezczynności i ataku naszego szkieletu.
- Zastanówmy się, jak w przypadku każdego elementu przekładni rysować ręcznie każdą klatkę tak, aby pasowała do szkieletu, dzięki czemu będziemy mogli narysować setki zestawów przekładni, zachowując ich jednolity wygląd.
- Upewnij się, że niezależnie od kombinacji wszystkie elementy wyglądu wyposażenia są prawidłowo nałożone.
- Upewnij się, że wszystkie kosmetyki mieszczą się w palecie.
- Upewnij się, że wszystkie zestawy animacji mają taką samą liczbę klatek dla każdego stanu spoczynku lub ruchu/ataku.
Nie lada wyzwanie.
Chcieliśmy, aby gracze mieli możliwość prawdziwej personalizacji wyglądu, tak aby mogli nosić to, co chcą, bez martwienia się o statystyki. W grze 2D opartej na grafice pikselowej to ogrom pracy. Jednak cztery i pół roku temu zdecydowaliśmy, że nie ma tu miejsca na kompromisy. Jeśli tworzysz grę MMO, gracze muszą się od siebie różnić. Chcą wyrażać siebie poprzez to, co noszą. Musimy więc być sprytni i wymyślić, jak stworzyć zestawy wyposażenia, które dorównują jakości elementów kosmetycznych, jakie widzimy w naszych ulubionych grach.
Jak postanowiliśmy to rozwiązać
Warstwowanie
Po pierwsze, potrzebowaliśmy systemu warstwowego. Zaczęliśmy od następujących elementów
- Głowa
- Klatka piersiowa
- Nogi
- Elementy tylne
- Broń, a w dalszej kolejności różne rodzaje broni.
Każdy z nich jest renderowany jako osobna warstwa, które następnie łączą się w całość na postaci.
Zaczęliśmy od podstawowej animacji: cyklu biegu. Poświęciliśmy na to kilka tygodni, ponieważ po zatwierdzeniu nie mogliśmy już tego zmienić. Każdy element, jaki kiedykolwiek stworzymy, musiałby pasować do tego szkieletu, liczby klatek i proporcji. Jeśli podstawa jest nieprawidłowa, trzeba przebudowywać wszystko od początku.

Po ustaleniu przebiegu akcji stworzyliśmy szkielet systemu, na którym można było nakładać nowe zestawy wyposażenia. Następnie napisaliśmy silnik warstwowy, który to wszystko zarządza. Kolejność warstw zmienia się w zależności od kierunku, w którym zwrócona jest postać, oraz od tego, jaką broń ma wyposażoną. Na przykład miecz wymaga innego elementu na klatkę piersiową niż miecz ciężki.

W końcu postanowiliśmy, że chcemy mieć więcej rodzajów broni…


Zdecydowaliśmy, że chcemy mieć do dyspozycji wiele rodzajów broni: miecze, ciężkie miecze, ciężką broń, a nawet kostury. Każdy rodzaj broni ma inny styl animacji dla elementu na klatce piersiowej. W przypadku kostura idealnie sprawdziły się animacje spoczynku i biegu z ciężkiej broni, natomiast do ataków wykorzystaliśmy szybkie, zamaszyste ruchy charakterystyczne dla broni lekkiej. Nasz system pozwolił nam wybierać odpowiednie istniejące animacje i łączyć je z nowymi.
Największym wyzwaniem była złożoność kombinatoryczna. Każdy rodzaj broni wymaga odpowiedniej animacji elementu zbroi na klatce piersiowej. Każdy kierunek patrzenia może wpływać na kolejność renderowania warstw. Pomnóż to przez wszystkie sloty na wyposażenie, wszystkie rodzaje broni i wszystkie kierunki, a otrzymasz system, który musi obsługiwać tysiące kombinacji, tak by wszystko wyglądało poprawnie.
Rolnictwo? Teraz musimy usiąść
W miarę jak rozszerzaliśmy zakres działań poza bieganie, zaczęliśmy pracować nad animacjami picia, uprawiania roli i zbieractwa. Okazało się, że możemy zmienić kolejność istniejących klatek z podstawowych animacji, aby stworzyć te nowe czynności. Nie było to zaplanowane. Po prostu wyszło to z systemu podczas naszych eksperymentów. Im więcej czynności dodawaliśmy, tym bardziej przydatne okazywało się to rozwiązanie.
Jak zdołaliśmy włączyć funkcję „siedzenia” do gry, dodając zaledwie kilka dodatkowych klatek

W miarę jak rozszerzaliśmy zakres działań poza bieganie, zaczęliśmy pracować nad animacjami picia, uprawiania roli i zbieractwa. Okazało się, że możemy zmieniać kolejność klatek z istniejących animacji bazowych, aby stworzyć te nowe czynności. Nie było to zaplanowane. Po prostu wyłoniło się to z systemu podczas naszych eksperymentów. Im więcej czynności dodawaliśmy, tym bardziej przydatne okazywało się to rozwiązanie. System, który stworzyliśmy, mógł sam się rozwijać w przyszłości.

Kiedy dodawaliśmy pozycję siedzącą, zakładaliśmy, że będzie to wymagało stworzenia zupełnie nowego zestawu animacji. Okazało się jednak, że wystarczyło tylko przerobić fragmenty dotyczące nóg, dodając kilka dodatkowych klatek. Zajęło to trochę czasu, ale było to jak najbardziej wykonalne. Tak właśnie wygląda teraz schemat działania. To, co na pierwszy rzut oka wydaje się ogromnym wysiłkiem, zazwyczaj sprowadza się do niewielkiej zmiany w jednym lub dwóch slotach warstw. System okazał się bardziej rozszerzalny, niż się spodziewaliśmy, i wciąż odkrywamy nowe sposoby jego wykorzystania.
W jakiej sytuacji to nas dzisiaj stawia

Gracze mogą wyposażać się w przedmioty w slotach na głowę, klatkę piersiową, nogi, plecy oraz broń. Każdy element jest renderowany jako osobna warstwa animacji. Zmiana rodzaju broni powoduje automatyczną zmianę elementu na klatce piersiowej, aby dopasować go do broni. Funkcja transmogryfikacji oddziela statystyki od wyglądu, dzięki czemu możesz wyglądać tak, jak tylko chcesz. System obsługuje wszystkie kierunki orientacji postaci, a kolejność warstw dostosowuje się w czasie rzeczywistym. Działa to podczas animacji biegania, siedzenia, picia, farmienia i zbieractwa – wszystkie oparte są na tej samej podstawowej animacji biegu, którą ustaliliśmy już wiele lat temu.
Co dalej?

Wciąż rozbudowujemy system animacji. Każda nowa akcja, którą dodajemy, pokazuje nam, na ile elastyczny jest szkielet. Mamy jeszcze wiele planów, ale fundamenty sprawdziły się i są w stanie sprostać wszystkim naszym zamierzeniom.