Przejdź do treści
Fyndi docs
English

Postać 3D#

Ta strona opisuje, jak dokładnie zbudowana jest postać: z czego składa się jej wygląd, jakie ma wymiary, jak jest animowana i co można zmienić w szafie.

Postać to ludzik w stylu blocky — siatka prostopadłościanów. Ten sam ludzik stoi w aplikacji, na stronie i w panelu, a składa go jedna wspólna specyfikacja opisana dwa razy: raz w JavaScripcie (dla przeglądarki), raz w Kotlinie (dla aplikacji). Rozjazd tych dwóch opisów wyłapuje kontrola parytetu (Jakość i kontrole).

Trzy warstwy wyglądu#

  1. Atlas (malunek) — jeden obraz 1024 × 1024 px rozciągnięty na ciało. Tu powstają twarz (oczy, brwi, uśmiech), wzory ubrań, kieszenie, przeszycia i frędzle. Skala: 1 px = 0,1 jednostki, czyli ciało o szerokości 8 px ma 0,80 jednostki.
  2. Bryły (geometria) — dokładane prostopadłościany: czapki, kurtki, spódnice, plecaki, szaliki. Każda bryła wie, do której kości należy (głowa, tors, ramię, noga), więc porusza się razem z animacją.
  3. Kolory — jeden kolor bazowy na element. Ciemniejsze odcienie (ściągacze, kołnierze, opaski, frędzel) wylicza aplikacja sama, mnożąc kolor przez stały współczynnik — dzięki temu w interfejsie nie ma osobnego pola na „ciemniejszy odcień tego samego koloru”.

Kolejność malowania atlasu też jest ustalona: najpierw kolory bazowe (skóra, spodnie, buty), potem ubranie, dalej cienie, twarz zawsze na końcu, a na wierzchu akcesoria. Bez tej kolejności ubranie potrafiło zasłonić twarz, bo malowanie idzie warstwami po tym samym obrazie.

Malunek albo bryła#

Każdy element jest albo namalowany na atlasie, albo zbudowany z brył — nigdy jedno i drugie naraz. Wyjątkiem są celowe kotwice (na przykład czapka ukrywa czubek głowy, żeby włosy nie prześwitywały przez materiał).

Ta zasada powstała po audycie, który wykrył podwójne reprezentacje: ten sam element istniał i jako malunek, i jako bryła. Efekt widoczny był dopiero w ruchu — elementy „przebijały się” przez siebie przy obrocie stawu, mimo że w pozycji stojącej wyglądały poprawnie.

Wymiary i skala#

Jednostka świata jest wspólna dla wszystkich elementów, a ciało bazowe pochodzi z darmowego zestawu postaci blocky. Wymiary pilnowane w obu implementacjach:

CzęśćWymiar (jednostki)Uwaga
Cała postać≈ 2,78Stoi na ziemi w punkcie zerowym układu
Tors0,80 × 0,90 × 0,60Do niego należą górne elementy garderoby
Głowa0,80 × 0,80 × 0,80Fryzury i czapki liczą pozycje w skali głowy (8 px = 0,80 jednostki)
Ramię0,34 × 0,935 × 0,40Węższe i krótsze od torsu, wsunięte w nie 0,015 jednostki
Noga0,34 × 0,87 × 0,36Węższa w głębi, żeby nogi się nie zlewały
Atlas1024 × 1024 pxWspółrzędne wszystkich ścian opisane w specyfikacji projektowej

Szkielet ma sześć kości z zestawu bazowego — tors, głowa, dwa ramiona i dwie nogi — plus dwa stawy dłoni dodane w kodzie (pivoty nadgarstków), których zestaw bazowy nie ma. Postać nie ma szyi: głowa stoi bezpośrednio na torsie, a tors jest jednym klockiem. To ma konsekwencję projektową — każda poprzeczka na piersi czyta się jak litera „T”, dlatego na przykład szalik jest kominem z końcem z tyłu, a nie chustą zawiązaną z przodu.

Bryły dodatków są wyrównane do powierzchni ciała (na przykład dłoń jest przedłużeniem rękawa), więc leżą w tej samej głębi co ciało i bez dodatkowego przesunięcia w głąb migotałyby. Oba klienty stosują ten sam zabieg.

Animacje#

SprawaJak jest
Klipy używane w grzeidle (stanie), walk (chód), sit (siad), die (upadek), emote-yes (emotka)
Zasób bazowyPlik modelu zawiera pełny zestaw klipów z zestawu postaci blocky — między innymi bieg i emotki; gra używa z niego to, co potrzebne na mapie i w kreatorze
Pionek na mapieKlipy liczone natywnie, z płynnym przejściem między nimi; brak pośrednictwa przeglądarki
Podgląd w kreatorzeTa sama postać, podgląd na żywo — to, co ustawisz, od razu widać
WeryfikacjaUbrania i dodatki sprawdzane pod kątem kolizji w ruchu, nie tylko w pozycji stojącej
CieńRysowany ręcznie pod postacią (miękka plama na ziemi), bo na mapie nie ma go z czego wziąć

Postać jest bez oświetlenia (unlit): całe cieniowanie jest wmalowane w atlas, a renderer na mapie rysuje kolor z tekstury 1:1 tak samo jak kreator. Wcześniej shader liczył światło — słońce z otoczeniem przepalało kurtkę do prawie białej, a boki sylwetki robiły się niemal czarne.

Szafa i kolory#

Kategorie elementów: fryzura, czapka, góra, dół, buty, dodatki (szalik, plecak, torba, okulary, rękawiczki). Cała szafa i wszystkie kolory są dostępne w kreatorze w aplikacji, na stronie postaci oraz w panelu staff — z jednej tabeli elementów.

Wybór koloruJak działa
Gotowe presetyPaski kolorów przy każdej rzeczy: skóra 6, włosy 9, oczy 7, ubrania 18, buty 6, podeszwa 6
Własny kolorTęczowy kafelek otwiera okno z kołem barw (kąt = barwa, promień = nasycenie) i paskiem jasności
Wartości dokładnePole HEX (przyjmuje zapis z krzyżykiem, bez niego i skrócony) oraz odczyt i suwaki składowych RGB
Pipeta z ekranuTylko w przeglądarce na komputerze; w aplikacji jej nie ma i to świadome — wymagałaby zgody na nagrywanie ekranu, co jest zbyt inwazyjne dla kreatora postaci
CzerńKołem barw nie da się jej wybrać (koło zawsze ma jakąś barwę), dlatego wybiera się ją paskiem jasności albo wpisaniem koloru
Kod wygląduCały wygląd można skopiować i wkleić jako tekst (ok. 266 znaków), bez udziału serwera

Podgląd zmian działa w obu klientach bez przerysowywania całego okna, a palety kolorów są porównywane maszynowo między wersją przeglądarkową i aplikacją — dodanie koloru tylko po jednej stronie kończy się nieudaną kontrolą, a nie cichą różnicą w wyglądzie. Opis dla gracza: Postać i kreator.


Opis zgodny z aplikacją 0.120.1 (zaktualizowano 2026-09-26).

Wersja aplikacji: 0.120.1 · Wersja API: 0.35.0 ·

docs.fyndi.app · 2026-09-26