Tym razem zaprezentuję krótki tutorial opisujący budowę pojazdu przegubowego (ang.: articulated), dość często spotykanego w OTTD, zarówno wśród pociągów jak i samochodów. Inspirację do napisania tego dodatku NewGRF będzie stanowił polski parowóz Pt31.
Opracowanie grafiki
Zasady opracowywania grafik dla pojazdów przegubowych są w zasadzie identyczne, jak dla zwykłych pojazdów - dla każdego z członów pojazdu (w tym wypadku: lokomotywy i węglarki) należy opracować osobny zestaw spritesetów, ukazujących pojazd z każdej strony.
W przypadku projektowania grafiki dla pojazdów przegubowych można jednak zastosować pewne triki, które w przypadku normalnych pojazdów są niedostępne. Jeden z takich trików będzie miał miejsce właśnie w przypadku omawianego parowozu Pt31. Powodem jego zastosowania jest długość oryginału. Pt31 jest bowiem drugim (zaraz po Pu29) najdłuższym polskim parowozem - jego całkowita długość to prawie 24m! Tymczasem w OTTD najdłuższy pojazd może mieć rozmiar 8/8 kratek, czyli zaledwie 32 pixele. Zastosowany trik polega na tym, że pojazd dwuczłonowy (lokomotywa + węglarka) może mieć już łącznie 2*8/8 kratek, czyli w sumie 64 pixele. Dodatkowo, te 64 pixele mogą być rozdzielone między człony nieproporcjonalnie, niezgodnie z teoretyczną długością tych członów:
![[Obrazek: 752pt31_metoda_10_8.png]](https://openttd-polska.pl/uploads/other/752pt31_metoda_10_8.png)
Obrazek powyżej przedstawia zasadę działania zastosowanego triku. Lokomotywa i jej węglarka będą miały nadal zaprogramowaną teoretyczną maksymalną długość 8/8, jednak graficznie będą wyglądały jakby miały długość 6/8 oraz 10/8. Część pixeli należących do węglarki została bowiem wykorzystana do odwzorowania znacznie dłuższej lokomotywy.
Takie realistyczne odwzorowanie lokomotywy ma oczywiście swoje wady i zalety. Długa lokomotywa będzie się prezentowała znacznie lepiej niż oryginalne "ogryzki" z TTD. Będzie to jednak okupione wyraźnym jej "łamaniem" się na zakrętach oraz koniecznością budowy dłuższych stacji.
Zaprojektowanie lokomotywy wymagało opracowania nowego szablonu, dostosowanego do rozmiaru 10/8. Do narysowania węglarki wystarczył natomiast standardowy szablon 8/8, wykorzystywany do projektowania innych pojazdów. Kompletny zestaw grafik obejmuje także widok parowozu, który będzie ukazywał się w menu zakupu pojazdów (purchase menu). Dzięki takiemu obrazkowi w menu zakupu będzie pojawiał się kompletny parowóz, a nie tylko jeden jego człon:
![[Obrazek: 858pt31.png]](https://openttd-polska.pl/uploads/other/858pt31.png)
Kod NML, służący do wczytania sprite-ów z wyżej przedstawionego zestawu grafik, będzie miał następującą postać:
c.d.n.
Opracowanie grafiki
Zasady opracowywania grafik dla pojazdów przegubowych są w zasadzie identyczne, jak dla zwykłych pojazdów - dla każdego z członów pojazdu (w tym wypadku: lokomotywy i węglarki) należy opracować osobny zestaw spritesetów, ukazujących pojazd z każdej strony.
W przypadku projektowania grafiki dla pojazdów przegubowych można jednak zastosować pewne triki, które w przypadku normalnych pojazdów są niedostępne. Jeden z takich trików będzie miał miejsce właśnie w przypadku omawianego parowozu Pt31. Powodem jego zastosowania jest długość oryginału. Pt31 jest bowiem drugim (zaraz po Pu29) najdłuższym polskim parowozem - jego całkowita długość to prawie 24m! Tymczasem w OTTD najdłuższy pojazd może mieć rozmiar 8/8 kratek, czyli zaledwie 32 pixele. Zastosowany trik polega na tym, że pojazd dwuczłonowy (lokomotywa + węglarka) może mieć już łącznie 2*8/8 kratek, czyli w sumie 64 pixele. Dodatkowo, te 64 pixele mogą być rozdzielone między człony nieproporcjonalnie, niezgodnie z teoretyczną długością tych członów:
![[Obrazek: 752pt31_metoda_10_8.png]](https://openttd-polska.pl/uploads/other/752pt31_metoda_10_8.png)
Obrazek powyżej przedstawia zasadę działania zastosowanego triku. Lokomotywa i jej węglarka będą miały nadal zaprogramowaną teoretyczną maksymalną długość 8/8, jednak graficznie będą wyglądały jakby miały długość 6/8 oraz 10/8. Część pixeli należących do węglarki została bowiem wykorzystana do odwzorowania znacznie dłuższej lokomotywy.
Takie realistyczne odwzorowanie lokomotywy ma oczywiście swoje wady i zalety. Długa lokomotywa będzie się prezentowała znacznie lepiej niż oryginalne "ogryzki" z TTD. Będzie to jednak okupione wyraźnym jej "łamaniem" się na zakrętach oraz koniecznością budowy dłuższych stacji.
Zaprojektowanie lokomotywy wymagało opracowania nowego szablonu, dostosowanego do rozmiaru 10/8. Do narysowania węglarki wystarczył natomiast standardowy szablon 8/8, wykorzystywany do projektowania innych pojazdów. Kompletny zestaw grafik obejmuje także widok parowozu, który będzie ukazywał się w menu zakupu pojazdów (purchase menu). Dzięki takiemu obrazkowi w menu zakupu będzie pojawiał się kompletny parowóz, a nie tylko jeden jego człon:
![[Obrazek: 858pt31.png]](https://openttd-polska.pl/uploads/other/858pt31.png)
Kod NML, służący do wczytania sprite-ów z wyżej przedstawionego zestawu grafik, będzie miał następującą postać:
Kod:
/* graphics definition */
template template_sprite_train_10(x, y) {
// [left_x, upper_y, width, height, offset_x, offset_y]
[x, y, 10, 32, -5, -14]
[x+ 18, y, 30, 30, -19, -17]
[x+ 54, y, 44, 20, -26, -13]
[x+104, y, 30, 30, -11, -19]
[x+140, y, 10, 32, -5, -18]
[x+158, y, 30, 30, -15, -19]
[x+194, y, 44, 20, -18, -13]
[x+244, y, 30, 30, -7, -17]
}
template template_sprite_train(x, y) {
// [left_x, upper_y, width, height, offset_x, offset_y]
[x, y, 10, 28, -5, -14]
[x+ 16, y, 26, 28, -15, -17]
[x+ 46, y, 36, 20, -18, -13]
[x+ 86, y, 26, 28, -7, -17]
[x+120, y, 10, 28, -5, -14]
[x+136, y, 26, 28, -15, -17]
[x+166, y, 36, 20, -18, -13]
[x+206, y, 26, 28, -7, -17]
}
template template_sprite_purchase(x, y) {
// [left_x, upper_y, width, height, offset_x, offset_y]
[x, y, 50, 12, -25, -6]
}
/* empty sprites */
spriteset(spriteset_pt31_purchase, "gfx/pt31.png") {
template_sprite_purchase(4, 100)
}
spriteset(spriteset_pt31, "gfx/pt31.png") {
template_sprite_train_10(4, 20)
}
spriteset(spriteset_pt31_tender, "gfx/pt31.png") {
template_sprite_train(4, 60)
}c.d.n.
![OpenTTD #Polska - Polskie forum gry OpenTTD [ARCHIWUM] OpenTTD #Polska - Polskie forum gry OpenTTD [ARCHIWUM]](https://forum.openttd.pl/images/logo.png)
