Obrotnica

Z MaSzyna
Wersja z dnia 21:45, 17 mar 2016 autorstwa Firleju (dyskusja | edycje) (Utworzono nową stronę "Od wersji 71 ''EU07.EXE'' można na scenerii używać dowolnej ilości obrotnic. ==Budowa== Obrotnica składa się z 4 elementów: #...")
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Skocz do: nawigacja, szukaj

Od wersji 71 EU07.EXE można na scenerii używać dowolnej ilości obrotnic.

Budowa

Obrotnica składa się z 4 elementów:

  1. Wpis toru, przy czym zamiast normal trzeba użyć turn. Tor musi być prosty i poziomy, nie może też mieć przechyłki.
  2. Model T3D, w którym animowany będzie główny submodel. Model musi stać w środku toru, a niecka musi być oddzielnym modelem. Nazwa modelu musi być taka sama, jak nazwa toru.
  3. Eventy animujące model. Tor będzie podążał za pozycją (kątem) modelu, obracając się wokół własnego środka długości.
  4. Eventy zwrotnicy. Przełożenie do pozycji 1 odłącza tor obrotnicy od sąsiednich torów i umożliwia jej obrót. Powinno również blokować ruch znajdującego się na niej pojazdu (coś jak hamulec ręczny). Ustawienie w pozycji 0 próbuje podłączyć sąsiednie tory na końcach toru obrotnicy. Jeśli się to uda przynajmniej z jednej strony, pojazd zostanie odblokowany, a ruch obrotnicy uniemożliwiony. Wyjechanie na niepodłączoną stronę spowoduje błąd null track.

Przykład

Przykładowo, zmiana w scenerii Quark, umożliwiająca użytkowanie obrotnicy (zmieniona nazwa toru na obrotnica_Wielki_Kac oraz typ z normal na turn):

include;eng/obrotnica21m.inc;obrotnica_Wielki_Kac;-79.0;0.0;788.0;0.0;eng/most1-jezdniablach;end

node -1 0 obrotnica_Wielki_Kac track turn 21.0 1.435 0.25 25.0 19 6 bridge vis 
 rail_screw_used1 4 none 0.2 0.5 1.1 
-79.0 0.200012 777.5  0.0  //point 1
0.0 0.0 0.0  //control vector 1
0.0 0.0 0.0  //control vector 2
-79.0 0.200012 798.5  0.0  //point 2
0 
velocity 6.0 
endtrack

Należy też zmodyfikować eventy, aby wykonywane było zablokowanie i odblokowanie obrotnicy.

Poniżej poprawiony plik obrotnicy (scenery/eng/obrotnica21m.inc). Zawiera dodatkowo eventy switch, które dokonują odłączenia torów oraz przyłączenia innych. Przed odłączeniem torów wskaźnik podaje sygnał Z1o (wjazd zabroniony). Przyłączenie torów dokonywane jest z opóźnieniem 18 sekund, a dodatkowo 2 sekundy później obraca się wskaźnik podając sygnał Z2o (wjazd dozwolony). Jazda przy niepodłączonych torach zakończy się błędem null track.

// obrotnica o dlugosci 21 metrów
// (p1) nazwa wlasna (p2) (p3) (p4) wspolrzedne (p5) rotacja
origin (p2) (p3) (p4)
rotate 0 (p5) 0
node -1 0 (p1) model 0 0 0 0 eng/obrotnica21m.t3d none endmodel
rotate 0 0 0
endorigin

event (p1)_tor1 multiple 0 none (p1)_1 (p1)_stop (p1)_tor1rot (p1)_go endevent
event (p1)_tor2 multiple 0 none (p1)_1 (p1)_stop (p1)_tor2rot (p1)_go endevent
event (p1)_tor3 multiple 0 none (p1)_1 (p1)_stop (p1)_tor3rot (p1)_go endevent
event (p1)_tor4 multiple 0 none (p1)_1 (p1)_stop (p1)_tor4rot (p1)_go endevent
event (p1)_tor5 multiple 0 none (p1)_1 (p1)_stop (p1)_tor5rot (p1)_go endevent
event (p1)_tor6 multiple 0 none (p1)_1 (p1)_stop (p1)_tor6rot (p1)_go endevent

event (p1)_tor1rot animation 1 (p1) rotate dzwigar 0 0 7.5 2 endevent
event (p1)_tor2rot animation 1 (p1) rotate dzwigar 0 0 0 2 endevent
event (p1)_tor3rot animation 1 (p1) rotate dzwigar 0 0 -7.5 2 endevent
event (p1)_tor4rot animation 1 (p1) rotate dzwigar 0 0 -15 2 endevent
event (p1)_tor5rot animation 1 (p1) rotate dzwigar 0 0 -22.5 2 endevent
event (p1)_tor6rot animation 1 (p1) rotate dzwigar 0 0 -30 2 endevent

event (p1)_0 switch 0.0 (p1) 0 endevent
event (p1)_1 switch 0.0 (p1) 1 endevent

event (p1)_stop animation 0 (p1) rotate WZ1 0 0 0 100 endevent
event (p1)_go multiple 18 none (p1)_0 (p1)_ok endevent
event (p1)_ok animation 2 (p1) rotate WZ1 0 0 90 100 endevent

Demonstracja działania

Dalsze plany

Animacja obrotnicy sprowadza się do obrotu toru względem jego pionowej osi symetrii. Animację tę można rozbudować o obroty w innych osiach, uzyskując np. wywrotnicę do wagonów albo most zwodzony. Aby jednak przetestować dodatkowe funkcje, potrzebne są odpowiednie modele. W przyszłych wersjach oś obrotu obiektu będzie zawsze przechodziła przez punkt wstawienia modelu (zamiast środka toru). Możliwa będzie również symulacja przesuwnicy, na podobnej zasadzie.

Obecne AI może nie działać prawidłowo z obrotnicą. Aby AI zatrzymało się na obrotnicy, niezbędne jest ustawienie zerowej prędkości na torze za nią. W planach jest opcja precyzyjnego zatrzymania lokomotywy na obrotnicy, w tym również składu o długości mniejszej niż długość toru obrotnicy (ASF plus lokomotywa, parowóz z tendrem).

Planowane jest również utworzenie automatycznego eventu (nazwa):done, który zostanie wykonany po zakończeniu animacji. Dzięki temu nie będzie trzeba dobierać zawyżonych stałych czasowych dla ponownego podłączenia ruchomego toru z nieruchomymi.