PostHeaderIcon Główny bohaterMain character

Gostek jest złożeniem osiemnastu punktów, połączonych wizualnie tzw. prętami, które utrzymują stałą odległość między punktami.
Odpowiednie punkty oznaczają partie ciała, opisane następująco:

Gostek

Numer partii ciała Angielskie znaczenie Polskie tłumaczenie Oznaczenie w grze Położenie cząstki
0 left foot lewa stopa stopa (1, 0)
1 right foot prawa stopa stopa (-1, 0)
2 lower right leg prawe kolano noga (-1, 1.5)
3 lower left leg lewe kolano noga (1, 1.5)
4 upper left leg prawe kolano udo (0.699999988079071, 3.20000004768372)
5 upper right leg prawe kolano udo (-0.699999988079071, 3.20000004768372)
6 right torso biodro (-0.600000023841858, 4)
7 left torso biodro (0.600000023841858, 4)
8 neck-bottom biodro (0, 5.5)
9 upper left arm ramie (1, 5)
10 upper right arm ramie (-1, 5)
11 head głowa morda (0, 6.5)
12 left arm lewe ramię ramie (1.70000004768372, 4.59999990463257)
13 right arm prawe ramię ramie (-1.70000004768372, 4.59999990463257)
14 right hand prawa dłoń dlon (-1.5, 3.5)
15 left hand lewa dłoń dlon (1.5, 3.5)
16 left ground point biodro (2, 0)
17 right ground point biodro (-2, 0)
18 right ground point prawa dłoń – palce (-1.5, 3)
19 right ground point lewa dłoń – palce (1.5, 3)
20 ? (0.5, 1)
21 ? (0.5, 0)
22 ? (-0.5, 0)
23 ? (-0.5, 0.5)

Każdy z powyższych numerów stanowi punkt zaczepienia odpowiedniej tekstury reprezentującej określoną część ciała. Tekstury te znajdują się w katalogu Gostek-gfx i ich nazwa bez rozszerzenia jest dokładnie taka, jak w kolumnie Oznaczenie w grze.

Powyższe ciało stanowi podstawę do systemu animacji gostka.
Wszystkie rodzaje animacji (bieganie, strzelanie, rzucanie granatem, skakanie, itd.) są opisane w specjalnych plikach *.poa znajdujących się w katalogu Anims. Struktura pliku *.poa wygląda następująco:

1
1.50821399688721
0
-0.00433130748569965
2
-0.801596999168396
0
-0.0207782611250877
...
20
0.158217057585716
0
3.24456262588501
NEXTFRAME
1
1.49256980419159
0
0.0448752529919148
...
ENDFILE

Pierwsza linia (w naszym wypadku 1) określa część ciała, której współrzędne będą się znajdować w trzech kolejnych liniach. Pierwsza z tych kolejnych linii oznacza współrzędną X, trzecia – Y, przeznaczenie drugiej jest na razie nieznane ;). Po wypisaniu 20 części ciała, występuje napis NEXTFRAME. Oznacza on, że od tej pory wypisywane są pozycje każdej z cząstki w kolejnej klatce. To oznacza, że początkowe wpisy do napisu NEXTFRAME oznaczały położenia w klatce pierwszej.
W zależności od klatki animacji teksturę należy oczywiście obrócić o określony kąt względem punktu zaczepienia.
Kąt ten można obliczyć korzystając ze znajomości położenia sąsiednich prętów.

Struktura pliku gostek.po

Dodatkowe informacje na temat względnego położenia cząsteczek gostka uzyskano korzystając z informacji w pliku gostek.po w katalogu Objects.
Struktura pliku *.po wygląda następująco (na przykładzie pliku para.po określającego kształt spadochronu):

P1
0
0
6
P2
5
0
5
P3
-5
0
5
P4
0
0
0
CONSTRAINTS
P3
P4
P4
P2
P2
P1
P3
P1
P3
P2
ENDFILE

Pierwszy wiersz oznacza część ciała (u nas ten numer jest zawsze obniżony o 1). Linia druga oznacza współrzędną X, a wiersz trzeci – wsp. Y. Przeznaczenie linii trzeciej jest na razie nieznane. Linie powtarzają się dla kolejnych punktów ciała. Gdy kończy się opisywanie wszystkich cząstek, następuje linia CONSTRAINTS, która wskazuje na związki między kolejnymi dwoma cząstkami, np. cząstka P3 (czyli nr 2) jest połączona z P4 (czyli z 3), następnie P4 z P2, P2 z P1, P3 z P1 oraz P3 z P2. Te wirtualne linie między punktami będą naszymi ogranicznikami (prętami), dzięki którymi uda nam się zachować stałą odległość między cząstkami. Plik kończy się wpisem ENDFILE.

Leave a Reply