Jakie jest najlepsze podejście, aby postać 2D mogła korzystać z mnóstwa różnych urządzeń podczas akcji?


14

Chcę stworzyć grę 2D, ale chciałbym, aby postać nosiła mnóstwo różnych urządzeń w różnych kombinacjach, takich jak RPG lub coś takiego.

Powiedzmy, że użytkownik zmienia ramiona i spodnie, musi to zostać pokazane graczowi, a wszystkie te różne urządzenia muszą podążać za akcją różnych postaci (uderzenie, trafienie, magia pisowni itp.).

Widzę kilka problemów, które chciałbym poznać najlepsze podejście / algorytm / architektura do rozwiązania.

1 - Duszki lub animacje

Czy powinienem tworzyć różne duszki dla każdego sprzętu w każdej animacji akcji?

Czy lepiej jest mieć sprite sprzętu i animować go bezpośrednio w kodzie, np. Obracanie i tłumaczenie (używając czegoś takiego jak tween we Flashu)?

Czy jest jakaś inna lepsza opcja? (Naprawdę nie lubię powyższych pomysłów)

2 - pozycje

Powiedzmy, że podczas jednego z ruchów postaci zaczyna patrzeć bezpośrednio przed wzrokiem gracza, ale kończy swój ruch pokazując swoją prawą stronę graczowi (tak jakby machał mieczem z jednej strony na drugą).

Jeśli weźmiemy pod uwagę jedną część użytkownika, na przykład jego głowę, zaczyna się ona z przodu, a następnie skręca w lewo.

Oznacza to co najmniej 3 różne pozycje dla każdego wyposażenia głowy (hełm, czapka, cokolwiek).

To z pewnością wpływa na odpowiedź na pytanie nr 1. Jak najlepiej to osiągnąć?

3 - warstwy

Rozważmy ruch postaci, w której obraca się o 360 stopni z otwartymi ramionami. Na początku animacji jego prawa ręka znajduje się blisko widoku użytkownika, a następnie, w środku ruchu, prawdopodobnie znajduje się za ciałem postaci na animacji.

Jakakolwiek jest opcja w pytaniu nr 1, z pewnością musisz użyć jakiegoś modelu warstwowego, aby ta ikonka lub animacja zaczęła być bliżej widoku gracza, a później zmienić go z dala od widoku gracza.

Czy jest na to dobry sposób?

Wiem, że pytanie jest dość długie i trudne do zrozumienia. Daj mi znać, jeśli uważasz, że lepiej jest mieć kilka rysunków, aby spróbować wyjaśnić, który z nich, a ja spróbuję to zrobić.


Do jakiego poziomu zamierzasz mieć swoją sztukę? Jak w retro pikselach? Albo te duszki HD, jeśli masz jakieś dzieła, które naprawdę pomogłyby mi dostosować moją odpowiedź.
Jesse Dorsey

Cześć Noctrine. Właściwie uważam to za pytanie „niezależne od sztuki”. Spróbuję narysować wyjaśnienia później w ten weekend, aby ułatwić zrozumienie. Dziękuję
homemdelata,

Odpowiedzi:


8

Myślę, że brzmi to tak, jakbyś szukał szkieletowego systemu animacji 2D? Niestety nie znam żadnych gotowych systemów, ponieważ zostały one w większości zastąpione przez trend w grach 3D-gfx-but-2D.


+1 O wiele łatwiej to zrobić, jeśli stworzysz postać 3D.
knight666,

ale w przypadku gry „3D-gfx-but-2D” musiałbym rozważyć jedno z wymienionych przeze mnie rozwiązań, w przeciwnym razie będę musiał mieć duszka dla dowolnych kombinacji przedmiotów, na przykład ten sam zestaw skrzyni z 10 różnymi aparatami elementy wygenerują 10 animacji :(
homemdelata,

Nie bardzo, po prostu masz punkty przywiązania na szkielecie i możesz wpuścić wszystko, czego potrzebujesz.
coderanger

2
Stworzyłem (open source) prostą bibliotekę animacji szkieletowych 2D dla XNA, w tym porządny edytor. Sprawdź youtube.com/user/srekel#p/a/u/0/46LIoFNdG_4 i youtube.com/user/srekel#p/a/u/1/8sYkeu5k7XE
Srekel

To prawie poprawna odpowiedź. Właściwie to sprawiłeś, że zrozumiałem, że to, czego szukam, to szkieletowy system 3D do animacji 2D. Muszę znaleźć na to algorytmy (jeśli istnieją)
homemdelata,

8

Jak mówi Zorba, większość gier w stylu retro nie zrobiła tego specjalnie, ponieważ potrzebowałbyś (ze spritami) animacji wielu klatek dla każdego elementu wyposażenia.

Niektóre „leniwe” alternatywy:

  • Zamieniaj sprzęt paletą zamiast tworzyć zupełnie inne duszki.
  • Narysuj postać w taki sposób, że jedynymi częściami ciała, które ożywają, są części, które nie są przymocowane do ekwipunku. Na przykład, jeśli postać i tak może nosić tylko jedną zbroję, zamiast tego uczyń ją Hełmem, a wtedy będziesz mógł animować całe ciało, jednocześnie utrzymując nieruchomą głowę.
  • Użyj pojedynczego duszka dla postaci na głównym ekranie gry, ale pokaż wyposażenie na ekranie podrzędnym ze statycznym portretem. Wtedy nie musisz się martwić animacją.

2

W starych grach, takich jak seria Ultima, rzeczywiście rysowali jeden ekwipunek w każdej możliwej pozie postaci. Okluzją można się zająć, nie wyciągając sprzętu (jeśli lewa rękawica znajduje się za ikoną gracza, nie musisz się tym martwić) lub po prostu wyciągając sprzęt w kolejności od tyłu do przodu.

Oczywiście było to bardzo pracochłonne, w wyniku czego było stosunkowo niewiele unikatowego sprzętu, z wieloma wersjami tego sprzętu zmienianymi i zmienianymi paletami.

W nowoczesnej grze zdecydowanie polecam tworzenie postaci 3d. Jeśli chcesz sztuki w 2D, lub Twoja platforma nie ma mocy rzeczywistego 3D, prawdopodobnie lepiej będzie modelować wszystko w 3D, renderować, a następnie ręcznie modyfikować końcowy wynik.

Alternatywnie, jeśli zdecydujesz, że nie potrzebujesz poprawiania, nie masz mocy do pełnego 3D, ale nie chcesz wysyłać ogromnej biblioteki ikonek, możesz spakować modele 3D i renderować je do tekstury w czasie rzeczywistym, gdy wiesz, że model pojawi się w grze.


To samo, o czym wspomniałem w drugiej odpowiedzi, jest tutaj znaczące: musiałbym rozważyć jedno z wymienionych przeze mnie rozwiązań, w przeciwnym razie będę musiał mieć duszka dla dowolnych kombinacji przedmiotów, na przykład ten sam kawałek klatki piersiowej z 10 różnymi częściami ortodontycznymi wygeneruje 10 animacji :(
homemdelata,

2
Skomponowałeś „duszka końcowego” w czasie wykonywania. Nie masz duszka dla „gracza”, miałbyś listę duszek, które są renderowane dla każdej klatki animacji. Więc jeśli gracz jest skierowany w prawo, renderowałbyś „lewą rękawiczkę”, „lewą bransoletę”, „postać gracza”, „buty”, „spodnie”, „kamizelkę kuloodporną”, „hełm”, „prawą bransoletę” , „prawa rękawica” w kolejności. Następnie animujesz każdy element sprzętu niezależnie, unosząc się w powietrzu.
ZorbaTHut,


0

To świetne pytanie, ale myślę, że sam na nie odpowiedziałeś - potrzebujesz systemu kości 2D, który obsługuje zmieniające się kości, aby różne kończyny mogły przesuwać się do przodu i do tyłu w miarę obracania się postaci. Będziesz także musiał narysować swoje duszki pod 4 lub 8 kątami (lub dowolną liczbą, której potrzebujesz). W zależności od umiejętności w zespole tworzenie tych zasobów w 3D może być łatwiejsze i renderowane pod kątem, którego potrzebujesz.

Korzystanie z silnika 3D jest również dobrym rozwiązaniem, choć przyniesie to własny zestaw wyzwań.


Tak, to prawie to. Właśnie dostałem drugą odpowiedź jako poprawną, ale ta też jest poprawna. Tak jak skomentowałem, potrzebuję szkieletowego systemu 3D do animacji 2D :)
homemdelata
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.