Podczas grania w kilka gier w wolnym czasie, natknąłem się na grę survivalową 2D / 3D. Gra została najwyraźniej stworzona w SDL i GLUT (nie głoduj), ale naprawdę zadziwiły mnie animacje w grze.
Animacje są niezwykle płynne i płynne. Podczas animacji nie ma zniekształceń, co zwykle dzieje się w ręcznie wykonanych animacjach, to usunięcie pikseli, animacje są postrzępione i po prostu nie są tak płynne. To sprawiło, że pomyślałem o tym, jak udało im się osiągnąć taką jakość animacji. Czy były naprawdę ręcznie (jeśli tak, to musiał mieć bardzo utalentowanego artystę), czy to animacja kości, czy też używają innej techniki?
Odpowiedzi:
Nazywam się Kevin i jestem programistą / projektantem w Klei. Napisałem kilka animacji, które wykorzystaliśmy w serialu Shank, Mark of the Ninja i Don't Starve.
Nasi animatorzy pracują we Flashu. Mamy pojęcie „kompilacji” postaci, która jest zestawem symboli części ciała o wielu widokach. W zależności od wierności danej gry, jest mniej lub więcej części ciała z mniej lub bardziej „widokiem”. Myślę, że Shank miał około 30 części ciała z 1-2 tuzinami widoków, podczas gdy Wilson z Don't Starve ma około tuzina części ciała z tylko taką samą liczbą wyświetleń. Niestandardowe skrypty JSFL są używane do analizy osi czasu symboli flash, a następnie wypiekają odpowiednie obrazy jako serię plików PNG o wysokiej rozdzielczości, wraz z grupą metadanych, które umieszczamy w pliku XML.
Biorąc pod uwagę budowę postaci, nasi animatorzy tworzą nowy symbol główny w innym pliku zawierającym fragment animacji dla tej postaci. Na tej osi czasu tworzą postać z symboli kompilacji i przesuwają ją, animują itp., Aby tworzyć indywidualne animacje (wyznaczone za pomocą etykiet klatek). Skrypt eksportera eksportuje te osie czasu do formatu XML, biorąc pod uwagę transformację 2d każdego elementu kompilacji i widok, który pokazuje.
Po wyeksportowaniu wszystkich tych informacji do formatu XML i PNG uruchamiamy serię skryptów Python, aby przekonwertować je na dane w czasie wykonywania. Jeden skrypt zmniejsza rozmiary, atlasy i mipsuje wszystkie tekstury i konwertuje je na (jeden lub więcej) skompresowanych formatów specyficznych dla platformy. Inny skrypt przetwarza dane animacji XML do bardziej wydajnego w celu załadowania formatu binarnego.
W czasie wykonywania tak naprawdę chodzi tylko o pokazanie odpowiednich symboli kompilacji z odpowiednimi transformacjami i widokiem.
Budowa tego systemu zajęła dużo czasu i została udoskonalona, ponieważ przenosiliśmy go z gry do gry. Jest wiele szczegółów, nad którymi pracuję (na przykład, jak radzimy sobie z nakładaniem warstw i zamianą kostiumów w czasie wykonywania), ale to jest ogólny zarys.
Oczywiście technologia, której używamy, jest prawdopodobnie najmniej ważnym aspektem „Klei Look”. Najważniejsze jest to, że mamy grupę naprawdę dobrych animatorów. :)
W każdym razie mam nadzieję, że to pomoże. Jeśli masz więcej pytań na temat Don't Starve, możesz odwiedzić nasze fora, na których zazwyczaj chętnie rozmawiam w sklepie.
źródło
Klei zazwyczaj używa naprawdę fajnej kombinacji animacji szkieletowych i zmian duszka.
Olinują szkielet, nakładają duszki na kości, a następnie zamieniają duszki, gdy wymaga tego ramka animacji.
Dokładne „jak” (workflow / narzędzia / itp.) Tak naprawdę może pochodzić tylko od nich, jednak tak powiedzieli sami, reklamując „Shank”, przedpremierowo.
A jeśli spojrzysz na Shank / ShankII, Mark of the Ninja i Don't Starve, zauważysz, że animacja wygląda bardzo podobnie do rzeczy, które mogą pochodzić z Nickelodeon.
Wyobrażam sobie, że pracują z grafami scen, aby utrzymać wszystko przy zdrowych zmysłach, ale znowu, jest to bardziej założenie oparte na złożoności i działające w przypadku animacji (2d / 3d) niż gwarancja.
źródło
Myślę, że zdecydowanie używają animacji kości. Używają też duszków o wysokiej rozdzielczości (aby zapobiec postrzępieniu) lub używają grafiki wektorowej. Jest to całkowicie możliwe, wstępnie renderowali grafikę wektorową do duszków o wysokiej rozdzielczości. Zdecydowanie nie wykorzystali w tym przypadku grafiki pikselowej. :)
źródło