Home > Felieton, Gry, Pixel Art, Retro, Słownik > Słownik Gracza #1 Sprite

Słownik Gracza #1 Sprite

Mip mapping, sprite, kompresja tekstur… Na pewno wiele razy słyszałeś o tych wyrazach, lecz nie wypadało zapytać co tak naprawdę oznaczają.

Startujemy wraz ze słowem „sprite” i bynajmniej nie chodzi tutaj o napój…

Wszyscy doskonale pamiętamy stare gry w 2d. Wszystkie elementy, które znajdowały się na ekranie, to właśnie układ sprites. Wyobraźcie sobie bohatera zwalczającego zło. Postać którą sterujemy jak i przeciwnicy to właśnie kombinacja sprites. Stare systemy miały spore ograniczenia techniczne i mogły obsługiwać tylko limitowaną liczbę sprites, do tego dochodzi ich wielkość.

Np. Mega Drive mogła obsługiwać do 80 sprites w tym samym czasie, a taka SNES aż 128.

Waga/wielkość takiego sprite’a zależała wyłącznie od hardware. Gdy np. przeciwnik był sporych rozmiarów, koniecznym było stworzenie animacji poprzez pocięcie go na kilka części (kilka sprites). Treasure, lub Konami to świetne przykłady ekspertów w tej dziedzinie, tworzyli gigantycznych przeciwników w systemie multi-sprite.

.

.

Przełączcie filmik na 2:30 minutę. Doskonale widać, że przeciwnik, jako całość, jest stworzony z licznych sprites. Kopyta konia to tak naprawdę kilka połączonych w animację części i każda z nich pojawia się w wyznaczonym miejscu, w wyznaczonym czasie. Będąc bardziej precyzyjnym – najpierw wykonano szkic/rysunek tych kopyt w kilku pozycjach, a następnie osoba odpowiedzialna za animacje i będąca w posiadaniu pociętych części (sprites) „wprawiała te elementy w ruch”.

Co zrobić w przypadku, gdy chcemy aby na ekranie pojawiła się większa liczba przeciwników, niż pozwala nam na to hardware? Pisałem teraz o MD i SNES, ale pomyślcie o limitacjach MSX, lub NES. Na takim sprzęcie istniało znaczne ograniczenie, nie tylko poprzez możliwość ukazania bardzo małej liczby sprites, ale również trzeba było uważać, aby tych elementów nie było więcej niż 4-5 na danej części ekranu. Jak rozwiązali ten problem twórcy gier? Dobrym przykładem tutaj będzie Gradius.

.

.

W filmiku powyżej widzimy, że jest to możliwe poprzez wykorzystanie efektu „zsynchronizowanego mrugania” (moja robocza nazwa). Wydaję się skomplikowane, ale w rzeczywistości takim nie jest. Chcemy przedstawić w jednej linii sześć przeciwników, a hardware pozwala nam tylko na pięć? Trzeba więc oszukać ludzkie oko w taki sposób, aby myślało, że jest sześć elementów. Jak? Pozbywając się jednego elementu w każdym fotogramie:

.

Stopując zdjęcie nie zobaczymy sześciu przeciwników jednocześnie, lecz przy szybszym „odświeżaniu” jest to kompletnie niezauważalne.

.

TŁA


Pogadaliśmy sobie o postaciach, teraz czas wspomnieć coś o tłach. Starszy sprzęt pracował w następujący sposób: sceneria to był jeden obrazek (tło), na niego nakładano sprites postaci i przeciwników, a trzecim głównym planem były elementy reprezentujące stan życia, punktów, itp.

Pierwsze maszyny arcade i pierwsze domowe konsole nie pozwalały na ruch pierwszego wspomnianego planu (tło). Pamiętacie gry pokroju Puzzle Bobble, lub tytuły na MSX to wiecie o co mi chodzi.

.

Castlevania (Vampire Killer) na MSX, stworzony ze statycznych, nieruchomych obrazków w tle.

.

.

…a tutaj już wersja na NES, na której widzimy, że tło się przesuwa wraz z bohaterem.

.

Te przesuwanie tła ma swój termin – jest nim „scroll”. Coś jak czytanie od lewej do prawej papirusu.

Oczywiście technologia i możliwości szły do przodu. Twórcy gier starali się tworzyć coraz to realniejsze tytuły, często za sprawą użycia pseudo efektu 3d. W takim przypadku, tło nie było już tylko jednym obrazkiem, a było pocięte na kilka elementów, do tego dochodzi możliwość poruszania ich – z czego wynikały ciekawe efekty perspektywy. Przykładem niech tutaj będzie tytuł Shadow of the Beast na Amiga, bardziej zainteresowanych grą odsyłam po recenzje owego tytułu na stronie Syzygia.

.

.

Kolejnym krokiem do przodu była bez wątpienia perspektywa podłoża w grze. Poniżej przykład z Street Fighter II (Capcom‚u), lecz wiele innych gier używało podobnej opcji: Thunder Force IV, Sonic 3

.

.

Mam nadzieję, że tym wpisem przybliżyłem Wam słowo „sprite” – tak ważne w świecie retro. Zahaczyliśmy również trochę o historię ewolucji grafiki w grach, co nam świetnie posłużyło za przykład. Do następnego odcinka „Słownika Karawany” :)





Tagi:Tagi: , , , ,


  1. biggamebang
    4 stycznia, 2010 at 16:15 | #1

    Pierwszy komentarz, więc na początek gratuluję ciekawego bloga (i zapraszam na mój).
    Jedno, co mnie trochę raziło w tekście, to brak odmiany słowa „sprite” – nie wiem, czy jest to błąd językowy, ale powszechnie używana jest wersja „sprite’ów”, „sprite’a” itd.

  2. VininPL
    12 lutego, 2010 at 15:33 | #2

    Bardzo dobry tekst. Fajnie się czytało

  3. matix14x
    3 lipca, 2010 at 12:00 | #3

    Bardzo interesujący artykuł.

  4. M.A.D.
    21 sierpnia, 2010 at 23:55 | #4

    Sprite’y, mapy tła i warstwy można fajnie można podglądać na niektórych emulatorach np. VBA czy WinKawaks.
    I o ile mnie pamięć nie myli, ten „pseudo efekt 3D” to tzw. „2,5D” – czyli coś pomiędzy płaskim 2D a przestrzennym 3D. :)
    Można dodać jeszcze, że sprite to także taka grafika obiektu (np. postaci), która zawiera wszystkie, bądź część sekwencji animacji tego obiektu. Grafika ta jest dość dużych rozmiarów, jest w całości wczytywana do pamięci, lecz jest wyświetlany jej dany fragment(stąd złudzenie animacji postaci).
    Ale co tak naprawdę chciałem dodać – owa grafika posiada określoną ilość kolorów (w zależności od możliwości konsoli), które możne zamieniać – poprzez wczytywanie osobnych palet. Jak ktoś grał np. w Golden Sun, to zauważy, że w dalszej części rozgrywki przeciwnicy wyglądają identycznie, jednak mają inne zestawy kolorów.
    Jednak nie zawsze inne kolory obiektu w grze oznaczają, że ma on swoje odrębne sprite’y – np. boss w Metal Slug świeci na czerwono gdy go trafimy, bo odpowiedni efekt jest nakładany na jego sprite.
    I jedna ważna rzecz – każdy sprite ma tzw. kolor zero – czyli kolor przezroczystości, który… jest niewidoczny :) Z reguły jest to jakiś jebitny kolor nie pasujący do reszty. Podobnie jak w przypadku niektórych obrazków gif czy png.
    Dobrym przykładem może być ten obrazek:
    http://sdb.drshnaps.com/objects/15/833/Sprite/MetalSlug.gif
    Co prawda, oryginalny sprite wyglądałby zupełnie inaczej – każdy skrawek by był wykorzystany niemal co do piksela, więc nasz obiekt mógłby wyglądać na poszarpany ;)

  1. Brak jeszcze trackbacków