21-03-2020, 17:02
Witajcie ponownie budowniczowie! Zapraszamy na kolejny dziennik developerski Sunset Harbor!
Od kiedy tylko Cities Skylines zostało wydane, otrzymywaliśmy setki pytań o jedną konkretną funkcję: Trolejbusy! Aby sprostać każdej z tych próśb, w naszej społeczności odbyły się żywe debaty na temat tego, czy trolejbusy nie są zbyt trudne do wprowadzenia, czy nie jest to zbyt „niszowa” funkcja oraz czy nawet „oni” faktycznie czytają te wszystkie sugestie zamieszczone na forach.
Zapewniamy was, że naprawdę cały czas was słuchamy i każdy pojedynczy pomysł jest rozważany gdy podejmujemy decyzję, co dalej! Ponadto, jesteśmy równie entuzjastycznie nastawieni do transportu publicznego co wy, i musielibyście być bardzo kreatywni by zasugerować coś, co my byśmy uznali za „zbyt niszowe”.
Powodem, dla którego trolejbusy nigdy nie zostały dodane jest ich złożoność techniczna. Trolejbusy są tak w zasadzie „bezszynowymi tramwajami”: elektryczne busy, które czerpią energię z zasilanej sieci ponad nimi. W przeciwieństwie do tramwajów, wykorzystują one dwa przewody i dwa odbieraki by zamknąć obwód elektryczny. I tak samo jak zwykłe autobusy, trolejbusy są w stanie zmieniać pasy ruchu i zatrzymywać się na poboczu drogi w zatoczkach. Podczas poruszania się trolejbusy, jego odbieraki obracają się i przechylają, by pozostać przymocowanymi do sieci. W grze, tak samo jak w rzeczywistości, to właśnie odbieraki w trolejbusach są najbardziej skomplikowanym elementem całego systemu.
Z przyjemnością informujemy was, że udało nam się przejść przez wszystkie techniczne przeciwności i Trolejbusy nareszcie będą dostępne w Cities: Skylines – Sunset Harbor!
W końcu tutaj są!
System trolejbusów w Cities: Skylines – Sunset Harbor opiera się na czterech elementach:
- Zajezdni trolejbusowej
- Drogach trolejbusowych
- Przystankach trolejbusowych
- Oraz trolejbusach samych w sobie
Zajezdnia wysyła nowe trolejbusy na miasto.
Przewozi pasażerów ponad rzeką.
To był najprostsza rzecz całej układanki! W drugiej części tego Dziennika Dev. chcielibyśmy rzucić światło na to, co zrobiliśmy by trolejbusy, a w szczególności ich odbieraki zachowywały się bardzo realistycznie. W przeciwieństwie do innych Dzienników Developerskich, ta część będzie nieco bardziej techniczna. Nawet, jeżeli nie jesteś mistrzem matematyki i geometrii, wciąż mamy nadzieję, że spodoba ci się ta techniczna strona dodatku!
Przewód
Przyjrzyjmy się nieco bardziej nowym drogom! Na każdym segmencie znajdziesz trzy maszty trakcyjne: Jeden na początku, jeden w środku i jeden na końcu drogi. Przewody sieci trakcyjnej łączą wspomniane maszty i wraz z pomocą kilku matematycznych obliczeń możemy znaleźć początkowe i końcowe koordynaty każdej sekcji przewodów. Nazwijmy je i (używając małej strzałki by oznaczyć je wektorami 3D)
Wzór matematyczny określający linię przewodu wyglądał by następująco: , z i .
Gdy trolejbus znajduje się na segmencie drogi, chcielibyśmy by odbieraki były połączone z przewodami powyżej zdefiniowanymi przez wzór matematyczny powyżej. jest współrzędną miejsca, gdzie odbieraki są przyłączone do sieci.
Trolejbus
Gra wie jak umiejscowiony i obrócony jest trolejbus i dzięki temu możliwe jest obliczenie współrzędnej, gdzie odbierak połączony jest do pojazdu. Nazwijmy ją
Odbierak jest wykonany z mocnego metalu, więc nie może się rozciągać. To oznacza, że dystans pomiędzy współrzędną określającą, gdzie jest on przymocowany do trolejbusu () oraz koordynatami miejsca, w którym jest przymocowany do sieci () musi być równy długości odbieraka. Nazwijmy go (ten dystans) i zdefiniujmy jego wzór w ten sposób:
Układ równań
Wstawiając pierwszy wzór do tego drugiego, otrzymujemy jedno równanie z jedną niewiadomą :
Z pomocą kilku matematycznych sztuczek możemy przekształcić je w równanie kwadratowe:
Krok 1:
Krok 2:
Krok 3:
Krok 4:
Krok 5:
Możemy użyć równania kwadratowego by rozwiązać równanie.
Otrzymamy zero, jedno, lub dwa rozwiązania dla :
Zauważ, że rozwiązanie nie będzie istnieć, jeżeli część pod pierwiastkiem kwadratowym będzie ujemna (co będzie miało miejsce, gdy przewód będzie zbyt daleko od trolejbusu). Zauważ również, że rozwiązanie dla wyliczone za pomocą tego równania może być również poza skalą , więc to również musimy wziąć pod uwagę.
Wybór odpowiedniej pozycji
Poprzez wstawienie oraz do naszego wzoru , możemy obliczyć dwa teoretyczne punkty połączenia odbieraka z przewodem: i . Jeden będzie nad przednią, a drugi nad tylną częścią pojazdu:
Jako, że odbierak w trolejbusie zazwyczaj zwrócony jest do tyłu, musimy sprawdzić który z tych dwóch koordynatów jest właściwy.
Nie macie już dość wektorów? Zdefiniujmy ich jeszcze trochę ?
- – wektor kierunku pojazdu (wskazuje kierunek jazdy)
- – kierunek skierowania odbieraka, jeżeli byłby podłączony w punkcie (punkty od do )
- – kierunek skierowania odbieraki, jeżeli byłby podłączony w punkcie (punkty od do )
My w szczególności szukamy tego wektora odbieraka, który zwrócony jest w przeciwną stronę od więc nasze warunki wyglądały by następująco:
- – jeżeli ten warunek jest prawdziwy, jest poprawną współrzędną styku odbieraka z przewodem.
- – jeżeli ten warunek jest prawdziwy, jest poprawną współrzędną styku odbieraka z przewodem.
Uh, to było sporo matematyki! Teraz, kiedy wiemy gdzie odbierak jest przymocowany do trolejbusu oraz gdzie jest przymocowany do sieci trakcyjnej (albo albo ), możliwe jest wyrenderowanie odbieraka w odpowiedniej pozycji i w odpowiednim kierunku.
Jak już się dowiedzieliśmy, trolejbusy mają dwa odbieraki (w innym wypadku obwód nie był by kompletny), więc wystarczy że powtórzymy powyższe kroki dla drugiego z nich.
Tak więc teraz wiesz już, co dzieje się „za kulisami” by odbieraki były poprawnie wyrenderowane! Oczywiście, aby uczynić trolejbusy realistycznymi, była to zaledwie jedna mała porcja całej pracy jak była do tego wymagana!
Ostatnia zmiana tego wieczora.
Po raz kolejny dotarliśmy do końca naszego Dziennika Developerskiego. Mamy nadzieję, że polubiliście tą techniczną stronę produkcji Cities: Skylines i że nie wystraszyliśmy was tymi wszystkimi wzorami! Co jak co, ale trzeba powiedzieć, że efekt końcowy jest naprawdę oszałamiający. Moglibyśmy oglądać krążące trolejbusy godzinami! A co wy o nich myślicie?
Do zobaczenia następnym razem, budowniczowie!
Wasz team Colossal Order
Tłumaczenie dla Cities Skylines Polska:
SZyMeX