Symulator/MaSzyna/EU07.EXE 355
Plik wykonywalny symulatora EU07.EXE w wersji 1.8.595.355 jest pierwszą częścią ósmego etapu prac. Etap ten ma celu przede wszystkim dalsze dopracowanie AI (tabelka ograniczeń, poprawione hamowanie) oraz ulepszenie animacji w pojazdach.
Spis treści
- 1 1. Blokada klawiatury
- 2 2. Przypisanie nowego rozkładu
- 3 3. Poprawiony ruch samochodów
- 4 4. Osobny plik do logowania błędów
- 5 5. Sygnalizowanie zajętości torów
- 6 6. Regulacja promienia renderowania
- 7 7. Zmienione przechylanie pojazdów
- 8 8. Końcówki w nieaktywnych składach
- 9 9. Tabelka prędkości dla AI
- 10 10. Animacje w modelu zewnętrznym
- 11 11. Eventy startowe
- 12 12. Poprawione liczenie długości łuku
- 13 13. Tryb pociągowy po podczepieniu
- 14 14. Przywrócone logowanie parametrów fizycznych
- 15 15. Animacja "wip" w MMD
- 16 16. Naprawione sprzęgi wirtualne
- 17 17. Eventlaunchery z kodem klawisza
- 18 18. Zablokowany tryb pasażera
- 19 19. Wymuszone łączenie sprzęgów na starcie
- 20 20. Sygnał dźwiękowy przed ruszeniem
- 21 21. Poprawione otwieranie drzwi w EZT
- 22 Uwaga autorska
1. Blokada klawiatury
Gdy okno nie jest aktywne (aktualnie wybrany jest inny program), a symulacja nie zostanie zapauzowana (inactivepause no albo multiplayer 1), to możliwość sterowania pojazdem z klawiatury zostanie zablokowana. Pisanie tekstu w innym programie nie wyłączy lokomotywy, co ma miejsce na wcześniejszych wersjach.
2. Przypisanie nowego rozkładu
Za pomocą nowej komendy Timetable:(nazwa) można ustawić nowy rozkład jazdy, wczytany z pliku (nazwa).txt. Pozwala np. użyć EZT ponownie po zakończeniu poprzedniej relacji, czy wyprawić na szlak jeden z kilku dostępnych składów.
Zachowanie pociągu po komendzie z rozkładem jazdy Timetable:(nazwa) zależy od prędkości podanej jako pierwszy parametr liczbowy:
- jeśli pociąg ma dojechać do pierwszego przystanku w trybie manewrowym, należy podać prędkość równą 0.0, a następnie komendę ShuntVelocity z prędkością manewrową; pociąg zostanie zatrzymany przez semafor, tarczę manewrową albo W4 pierwszego przystanku podanego w rozkładzie, urządzenie to włączy następnie tryb pociągowy
- jeśli pociąg ma aktywnie oczekiwać w miejscu na podanie semafora albo czas odjazdu na W4, należy podać prędkość 0.1
- jeśli pociąg ma od razu jechać w trybie pociągowym, należy podać prędkość początkową, np. 40 (np. start ze stacji bez semaforów).
Drugi parametr liczbowy jest przesunięciem rozkładu, podanym w minutach. Dzięki temu można wykorzystać jeden plik rozkładu do kilku kolejnych obiegów, bez konieczności powielania plików różniących się tylko początkową godziną odjazdu.
W związku z uruchomieniem tej komendy, wpis trainset jest teraz niejawnym jej wykonaniem (ale nie ma on możliwości przesunięcia godzin rozkładu).
3. Poprawiony ruch samochodów
Samochody ponownie się widzą, jeśli jadą po tym samym pasie, albo nie są w stanie się minąć na wąskiej drodze. Zalecane jest użycie dróg o szerokości co najmniej 5.5m, ponieważ autobusy mają szerokość 2.6m. Dotychczas drogi najczęściej miały 5m szerokości. Niektóre parametry ruchu zostały zróżnicowane - są inne dla samochodów niż dla pociągów. Niemniej jazda samochodów może nadal nie być zadowalająca (mogą się zderzać albo przenikać, zbyt wolno ruszać itp.).
4. Osobny plik do logowania błędów
Wszelkie istotne błędy są zapisywane do pliku errors.txt. Dotychczas były zapisywane wraz z przebiegiem uruchomienia w log.txt, który mógł zostać wyłączony. Korzystanie z log.txt wymagało również wyłuskiwania z niego potrzebnych informacji. Informacja zapisana do errors.txt jest istotna przede wszystkim dla autorów scenerii i scenariuszy. Może być także przydatna przy uzupełnianiu podstawowej paczki o dodatki. Uwaga! Obecnie nie wszystkie błędy zapiszą się do errors.txt, obsługa tego pliku będzie sukcesywnie rozszerzana w kolejnych wersjach.
5. Sygnalizowanie zajętości torów
Komunikacja z programem sterującym została rozbudowana o sygnalizowanie zajętości toru. Jest to tymczasowe rozwiązanie i będzie działać do czasu upowszechnienia się odcinków izolowanych. Zoptymalizowany został algorytm wyszukiwania toru po nazwie, nie powoduje już znacznego spadku FPS (sortowanie i wyszukiwanie w postaci drzewa binarnego).
6. Regulacja promienia renderowania
Zmieniony został sposób dobierania sektorów do renderowania (im jest ich mniej, tym większy FPS, ale gorzej wygląda sceneria). Dotychczas były używane trzy "kółka" (bardziej ośmiokąty) o promieniach 2km (normalnie), 1.5km (slowmotion 3) oraz 1km (slowmotion 7). Obecnie zamiast sztywnych promieni jest użyta tablica sektorów, posortowanych względem odległości. Tablica ta umożliwia płynnie regulowanie promienia renderowanej scenerii w bardzo dużych granicach (od 600m do 4.3km). Zmiana promienia renderowania następuje, jeśli wartość FPS wykroczy poza zakres 16÷25. Porównywanie wartości FPS z wcześniejszymi wersjami symulatora traci w tym momencie sens. Jeśli FPS przekroczy 25, to znaczy, że renderuje się maksymalny rozmiar scenerii.
7. Zmienione przechylanie pojazdów
Dotychczas przechylenie na torze z przechyłką było wykonywane poprzez dodatkowe obrócenie modelu o kąt wynikający z przechyłki. Wymagało to stosowania "banana" w modelu, czyli pojedynczego głównego submodelu, który był przechylany. Submodele nie podłączone do banana nie były pochylane. Obecnie pochylany jest cały model, a używanie bananów nie jest już potrzebne. Przy okazji został zlikwidowany problem ze zmianą proporcji modelu pojazdu na dużym pochyleniu. Wyłączone zostało również generowanie automatycznych bananów, dodane w wersji 212. Od wersji 394 można to włączyć za pomocą convertmodels 6.
8. Końcówki w nieaktywnych składach
Możliwe jest zapalenie/założenie końcówek w składach, które nie są pod kontrolą AI (wcale albo będą później). Obecność końcówek zależy od wartości sprzęgu ostatniego pojazdu (przed endtrainset). Jeśli sprzęg ten jest 0 (dotychczasowa praktyka), końcówki zostaną założone/zapalone. Dla niezerowej wartości będą zdjęte/zgaszone. Sprzęg ostatniego pojazdu nie ma wpływu na nic innego. Należy zwracać uwagę na składy wstawione odwrotnie, tzn. z lokomotywą reardriver przed endtrainset - w takim przypadku zakładanie końcówek w ten sposób może nie dać dobrego efektu. Zalecane jest użycie wartości 55 w przypadku EZT oraz 3 dla pozostałych pojazdów, aby w przypadku wydłużenia składu nie było problemów z nieprawidłowym sprzęgiem.
9. Tabelka prędkości dla AI
Dotychczas AI skanując tory widziało tylko jedno najbliższe ograniczenie prędkości. Widząc sygnalizator traktowało go jako ważniejszy i pomijało ograniczenia prędkości zapisane w torach. Obecnie efektem skanowania torów jest tabelka z prędkościami i odległościami do nich. Dzięki temu AI dostosowuje się do najbardziej krytycznego ograniczenia. Dodatkowo na łukach zapamiętywane są punkty pośrednie (końce odcinków), dzięki czemu odległość od sygnalizatora ma znacznie mniejszy błąd, niż liczona w prostej linii. Tabelka ma początkowo 16 pozycji, ale w razie potrzeby może zostać dynamicznie zwiększona (zależy to od budowy scenerii).
10. Animacje w modelu zewnętrznym
Jeśli w MMD zostanie określona animacja dla kabiny, a wskazany submodel nie zostanie w niej znaleziony, będzie w drugiej kolejności szukany w modelu zewnętrznym. Pozwala to poruszać zewnętrznymi lusterkami, wycieraczkami, czy drzwiami w lokomotywach.
Ze względu na nieuwzględnienie tych animacji podczas renderowania modelu zewnętrznego nie będzie widać żadnego efektu. Zostanie to poprawione w przyszłych wersjach.
11. Eventy startowe
Podczas wczytywania scenerii do kolejki eventów dodawane są wszystkie, których nazwa zawiera ciąg "onstart". Pozwala to w łatwy sposób uruchomić scenariusz bez konieczności aktywowania przez użytkownika, jak również wykonać pewne operacje z poziomu pliku INC (np. uruchomienie pętli animacyjnej modelu koparki).
12. Poprawione liczenie długości łuku
Dotychczas długość łuku była liczona poprzez sumowanie długości 10000 odcinków łamanej o wierzchołkach wyznaczonych przez krzywą Béziera. W szczególnych przypadkach efektem było zawyżenie długości (np. 0.43m dla testowanego łuku długości około 33m). Błędnie wyliczona długość powodowała problemy z poruszaniem składów po takich odcinkach torów. Obecny algorytm uzależnia ilość odcinków łamanej od odległości pomiędzy skrajnymi punktami (długość każdego odcinka jest rzędu 10cm).
13. Tryb pociągowy po podczepieniu
Komenda Shunt -3 y działa podobnie jak Shunt -2 y, tzn. wykonuje podczepianie do składu z oczekiwaniem na dalsze sygnały po podłączeniu. Różnica jest taka, że AI zostanie przełączone na tryb pociągowy i w takim stanie będzie oczekiwać np. zmiany na semaforze.
14. Przywrócone logowanie parametrów fizycznych
Zmianę przygotował youBy.
15. Animacja "wip" w MMD
Dotychczas w MMD można było używać animacji rot (obrót) oraz mov (przesunięcie). Od wersji 353 można również używać animacji wip, która jest rozszerzeniem animacji rot. Animacja ta powoduje jednoczesny obrót (o ten sam kąt) trzech submodeli: wskazanego w MMD, jego pierwszego potomnego oraz jego pierwszego potomnego. Jest ona przeznaczona do obsługi wycieraczek oraz drzwi łamanych (harmonijkowych).
16. Naprawione sprzęgi wirtualne
Pojazdy mają dwa rodzaje (poziomy) wskaźników na podłączony pojazd. Jeden wskaźnik jest na poziomie modelu i służy do obliczania kolizji i zarządzania składem (światła, długość pociągu), drugi jest na poziomie fizyki i służy do obliczania sił na sprzęgach. Sprzęgi wirtualne na poziomie modelu zostały naprawione wcześniej, jednak podobny błąd z jednostronnym odpinaniem przez inny pojazd występował niezależnie na poziomie fizyki. Obecnie rwanie połączonych sprzęgów przez sprzęgi wirtualne nie powinno mieć miejsca.
17. Eventlaunchery z kodem klawisza
Dotychczas w eventlauncher można było wpisać literę bądź cyfrę. Obecnie, jeśli w miejscu klawisza wpisane jest więcej znaków niż jeden, ciąg ten traktowany jest jako kod klawisza (liczba w sensie Virtual-Key Codes, nazwy nie są rozpoznawalne). Wyjątkiem jest ciąg none, który oznacza brak reakcji na klawisz. Zalecana jest ostrożność przy dobieraniu kodów klawiszy. Wskazane jest umieszczenie wyzwalaczy na początku pliku i opisanie ich w komentarzu, aby w przypadku konfliktów klawiszy w kolejnych wersjach EXE można było to szybko poprawić.
18. Zablokowany tryb pasażera
Ze względu na inną koncepcję AI ("opiekuje się" również składem prowadzonym przez użytkownika, ale nie steruje nim), skład może nie działać poprawnie, jeśli będzie miał dwa takie obiekty zarządzające. W szczególności sytuacja taka powstawała gdy jechało się jako pasażer (obsada passenger w wagonie). Na wszelki wypadek jazda jako pasażer została zablokowana, do czasu wypracowania lepszych rozwiązań.
19. Wymuszone łączenie sprzęgów na starcie
Przy wstawianiu składów na scenerię za pomocą wpisów trainset, sprzęgi łączą się bezwarunkowo. We wcześniejszych wersjach musiał być spełniony warunek dociśnięcia sprzęgów, co w szczególnych warunkach powodowało rozrywanie składów.
20. Sygnał dźwiękowy przed ruszeniem
AI po podaniu wolnej drogi użyje krótkiego sygnału dźwiękowego. Nie dotyczy to ruszania po zatrzymaniu na W4 ani pojazdu prowadzonego przez użytkownika.
21. Poprawione otwieranie drzwi w EZT
Drzwi w EZT będą otwierane od właściwej strony, niezależnie od konfiguracji składu (np. wstawienia członu odwrotnie albo połączenia tyłami dwóch jednostek).
Uwaga autorska
Wersja 355 zastępuje wersję 325, umieszczoną w Paczce Całościowej 2011. Poza wymienionymi wyżej zmianami, wersja 355 ma jeszcze kilka drobnych poprawek.
Ra, 2012-06-12
MaSzyna - wersje | |
---|---|
Wersje 2005-2009 | 699kB • Mega Pack (KURS90, 717kB) • Dizelpack (735kB) |
Wersje z 2011 | 71 • 113 • 120 • 145 • 162 (PC2010) • 212 • 231 • 291 |
Wersje z 2012 | 325 (PC2011) • 355 • 372 • 390 • SPKS@390 |
Wersje z 2013 | 394 (01.13) • Kurs 2013 • 408 • SPKS@408 (08.13) • 414 |
Wersje z 2014 | 424 • 435 • 441 • 450 • 457 |
Wersje z 2015 | 464 (15.02) • 469 (15.04) |
Wersje robocze | SPKS • warsztat |