W wersji 1.3.130.162 uruchomione zostao logowanie bdw sprzgw. Okazao si, e te bdy si do czsto pojawiaj i w duej mierze mog by przyczyn nieprawidowego zachowania AI. W zwizku z powyszym przejrzaem i przerobiem ruch "osi" po trajektoriach oraz wyszukiwanie kolizji.

Poniewa sprzgi AI wygldaj na opanowane, przeszedem do pitego etapu prac, czyli uruchomienia modeli zapisywanych w plikach binarnych (E3D). Aktualna struktura plikw E3D moe si jeszcze nieznacznie zmieni, take do koca 2011 roku moe by konieczne usuwanie wygenerowanych wczeniej plikw w celu zastpienia ich nowszymi.


Obecne EXE wprowadza nowe funckcjonalnoci i nie jest w peni zgodne wstecz. Mog wystpi ponisze bdy:
- nieprawidowe animacje submodeli - wymaga rcznego dopisania "Anim: true" w animowanych submodelach pliku T3D przed zapisaniem w formacie E3D,
- migotanie paszczyzn (podwietlenia) oraz braki niektrych elementw w kabinach, np. czuwak w EP09 - s to niedoskonaoci konkretnych modeli, czciowo mona je wyeliminowa wyej wymienion metod,
- inne zachowanie AI - wymaga przejrzenia scenerii i pocze semaforw i Tm z torami za pomoc eventw, a take zaczania trybu manewrowego przed odjazdem oraz W4 i rozkadw.



Poprawki w aktualnej wersji 1.3.219.212:

0. [Tymczasowo] Czwarty wiersz informacji
Dziaa tylko w trybie napisw [F2] i podaje informacje potrzebne do testowania skadw. Bdzie to usunite w kolejnej wersji.

1. Mijanie pojazdw
Poprawione wyszukiwanie pojazdu do podczenia sprzgu wirtualnego. Dla samochodw i statkw moliwo minicia si z innym pojazdem, jeli odlego poprzeczna pomidzy nimi na to pozwala.

2. Zoptymalizowany ruch osi/wzka
Zmieniony sposb poruszania osi/wzka po torach. Zoptymalizowane wyliczanie pozycji na torze (9 mnoe i 9 dodawa zamiast 22 mnoe, 6 odejmowa i 9 dodawa). Azymut wyliczany z pochodnej zamiast z dwch ssiednich pozycji (rwnie mniej mnoe). Przechyka i pochylenie wyliczane w momencie przesunicia osi/wzka, zamiast kadorazowo, gdy byo to potrzebne. Dla odcinkw prostych azymut i przechyka s wyliczane jednorazowo przy ich tworzeniu. Rezygnacja z przeliczenia dwch dodatkowych osi, co suyo obliczeniu kta obrotu wzka.

3. Rozprucie zwrotnicy
Zmieniona zostaa informacja o sposobie poczenia torw. Zamiast wartoci binarnej "zmiana kierunku" uyty jest numer punktu podczenia, z rozrnieniem torw zwrotnicy. Teraz jadc z ostrza zwrotnica sama przestawia si (ale nie wykonuje si event przeoenia zwrotnicy), dziki czemu zlikwidowane zostay przeskoki. Nadal wystpuj przeskoki w przypadku przeoenia zwrotnicy pod taborem jadcym na ostrze. Patrz te punkt 22.

4. Flagi eventw
Na torach bez eventw (wikszo) nie s sprawdzane dodatkowe warunki wyzwolenia eventu.

5. Wzki obracane niezalenie od drutw
Wyczenie zalenoci krcenia wzkami od poszukiwania sieci trakcyjnej przez pantograf. Dotychczas wczenie poszukiwania sieci byo domniemaniem wikszej wydajnoci komputera.

6. Alternatywne nazwy modeli wzkw
Rozpoznawanie "boogie01" oraz "boogie02" jako alternatywnych nazw wzkw (np. ET22).

7. Poprawione wywietlanie napisw w Debugmode
Nacinicie klawisza funkcyjnego nie powoduje ju wymieszania tekstw, a ich przeczenie.

8. Poprawione logowanie nacini klawiszy
Logowana jest rwnie informacja o naciniciu [Ctrl].

9. Zlikwidowany problem "NULL track"
W przypadku dojechania do koca toru i nie zatrzymania si, zostanie automatyczne utworzone niewidoczne przeduenie toru, majce na celu wykolejenie taboru. W przypadku obrotnicy moe to jednak spowodowa jej nieprawidow prac. Niemniej wykolejenie taboru na obrotnicy raczej skutecznie wycza j z ruchu.

10. Rozpoznawanie jedynkowych transformw
Jeli submodel ma transform z jedynkami na przektnej, bdzie wywietlany szybciej. Uwaga! Jeli submodel ma by animowany eventami albo jest ruchomym elementem kabiny, naley mu wpisa "Anim: true", w przeciwnym przypadku submodel moe si w ogle nie animowa albo animowa w nieprawidowy sposb!

11. Poprawione sprzgi wirtualne
Pojazdy stojce na tym samym torze s poczone tzw. sprzgiem wirtualnym, ktry pomaga wykrywa kolizje. We wczeniejszych wersjach dziaanie sprzgw wirtualnych skutkowao co najmniej trzema powanymi bdami:
I. Przy poczeniach torw typu Point1-Point1 albo Point2-Point2 sprzg wirtualny mg by tworzony w nieodpowiednim kierunku, co powodowao podczepianie si wagonw do samych siebie i objawiao si "waleniem w mur", rozrywaniem skadu albo odrzucaniem pojazdu z du prdkoci.
II. Sprzg wirtualny mg si podcza po przeciwnej stronie ni powinien (tzn. do bardziej oddalonego sprzgu najbliszego pojazdu), co powodowao zepsucie listy dwukierunkowej (jednego z kierunkw) i mogo prowadzi do rozerwania skadu.
III. Dodatkowy pojazd aktywny, poruszajcy si na drugim torze zwrotnicy, przez ktr przejeda skad, mg "atakowa" sprzgiem wirtualnym zastpujcym sprzgi rzeczywiste, powodujc zepsucie listy dwukierunkowej (jednego z kierunkw), co mogo prowadzi do rozerwania skadu. Sytuacja taka ma miejsce np. w przypadku mijanki na jednotorze i dwch AI jadcych jednoczenie z przeciwnych stron.

12. Ignorowanie zbyt duych trjktw
Ignorowane s trjkty w modelach, ktre maj rozmiar boku wikszy ni 2km, podobnie jak trjkty zdegenerowane. Obecno takiego trjkta w modelu moe powodowa przycinanie, a moe on nawet nie by zauwaalny. Informacja o znalezieniu takiego trjkta zapisywana jest do logu wraz z podaniem nazwy submodelu (nazwa modelu jest wywietlana wczeniej). Zbyt due trjkty scenerii (terenu) s dzielone na mniejsze.

13. Zmienione pauzowanie i dziaanie programu w tle
Aby zatrzyma symulacj, naley uy klawisza [Pause] (obsuga klawisza [Esc] zostaa wyczona). W trakcie pauzowania mona si porusza kamer, jednak symulacja bdzie zatrzymana i nie bd obsugiwane ani logowane nacinicia klawiszy. Zosta usunity problem powodujcy spadanie puda z nieba albo wysuwanie si spod torw po uyciu pauzy (w tym po przeczeniu na inny program). Pauza nie dziaa po wczeniu komunikacji z innym programem - wpis "multiplayer 1" w "eu07.ini". Po umieszczeniu w "eu07.ini" wpisu "inactivepause no" symulacja bdzie nadal dziaaa po przeczeniu innego programu na wierzch, ale nie bd syszalne dwiki. Uwaga! Uycie klawisza [Pause] na oknie z logiem rwnie spowoduje zatrzymanie programu, ale bdzie wyglda na zawieszony. Naley wtedy nacisn ten klawisz ponownie.

14. Potwierdzenie zakoczenia programu
Po przyciniciu [F10] pojawi si proba o potwierdzenie zakoczenia programu klawiszem [Y]. Nadal mona zamkn program natychmiastowo poprzez [Alt]+[F4]. Pytanie moe si rwnie pojawia przy przeczaniu na inne okno.

15. Radio-stop
Przycinicie klawiszy [Ctrl]+[Pause/Break] spowoduje wysanie do wszystkich pojazdw w promieniu 2km komendy "Emerency_brake". Warunkiem jest jednak umieszczenie w CHK wpisu "RadioStop=Yes". adne dwiki nie s przy tym uruchamiane, a na obecn chwil pojazdy nie s przystosowane do odbioru tego sygnau z radia.

16. Wyszukiwanie najbliszego pojazdu
W trybie podgldu parametrw pojazdu [F2] wyszukiwany jest pojazd najbliszy kamery. Pojazd jest widoczny w promieniu 10m od jego aktywnej osi (aktywn osi jest pierwsza od strony kierunku ruchu, ale aby nastpio przeczenie, obie osie musz by na tym samym torze). Uwaga! wyszukiwanie pojazdw w miejscach o duym zagszczeniu torw i drg moe powodowa spadek FPS.

17. Wywietlanie komendy
W trybie informacji [F2] wywietlana jest ostatnia wykonana komenda, zarwno przez AI jak i przez prowadzony pojazd. Nie wszystkie komendy si pojawiaj, w szczeglnoci ustawienie prdkoci jest robione w inny sposb.

18. Modele wczytywane z plikw binarnych
Zostao uruchomione zapisywanie modeli w plikach binarnych E3D. Pliki s tworzone automatycznie po wczytaniu T3D. Przy kolejnym uruchomieniu programu wczytanie odbywa si z wygenerowanych plikw E3D, chyba e zostan one usunite. Format pliku E3D moe si jeszcze nieznacznie zmieni do koca roku 2011 i moe by konieczne usuwanie tych plikw, aby wygeneroway si nowsze, poprawniejsze wersje. Nie wszystkie modele si prawidowo konwertuj, niektre bd wymaga rcznych poprawek.

19. Podzia obiektw na typy
Podczas wczytywania scenerii obiekty s umieszczane wg typu na oddzielnych listach. Dziki temu wyszukiwanie obiektu o okrelonej nazwie jest znacznie przyspieszone, co usprawnia przygotowanie scenerii do uruchomienia ("InitTracks", "InitEvents").

20. Automatyczne "banany" dla pojazdw
Dla prawidowego przechylania pojazdu wymagane jest aby tylko jeden submodel pojazdu mial "Parent: none". Jeli takich submodeli bdzie wicej, zostanie automatycznie utworzony dodatkowy submodel ("banan"), do ktrego zostan one doczepione jako potomne.

21. Naprawione globalne wyzwalacze czasowe
Dotychczas wyzwalacze (EventLauncher) ustawione na okrelon godzin dziaay tylko i wycznie wtedy, gdy byy w zasigu widocznoci. Obecnie s umieszczone osobno i "renderowane" niezalenie od swojego pooenia.

22. Sygnalizacja rozprucia rozjazdu
Jeli zostanie zdefiniowany event o nazwie zoonej z nazwy zwrotnicy oraz cigu ":forced+" albo ":forced-", to zostanie on wykonany w przypadku jej rozprucia (jazdy z ostrza od przeciwnej strony, ni aktualne ustawienie). Brak definicji takiego eventu nie jest sygnalizowany.

24. Sygnalizacja zajtoci/zwolnienia grupy torw
We wpisie toru mona umieci waciwo "isolated (nazwa)", podobnie jak "velocity". Spowoduje to utworzenie obiektu odcinka izolowanego (grupy torw) o nazwie "(nazwa)". Alternatywnym sposobem (zgodnym wstecz) umieszczenia nazwy odcinka izolowanego jest podanie jej po znaku "@" w nazwie toru. T sam nazw odcinka izolowanego mona wpisa w dowolnej iloci torw, co bdzie oznacza wsplny dla nich obiekt. Obiekt odcinka izolowanego dodaje do kolejki eventy "(nazwa):busy" albo "(nazwa):free", odpowiednio w momencie wjechania pierwszej osi na dowolny tor nalecy do grupy i zjechania ostatniej osi. W przypadku niezdefiniowania tych eventw w scenerii aden komunikat nie informuje o ich braku. Moliwe jest rwnie utworzenie "odcinkw izolowanych" dla kadego toru odrbnie, wymagana jest tylko unikalna nazwa w skali scenerii.

25. Konfiguracja konwersji modeli
W pliku "eu07.ini" mona uy parametru "convertmodels" z wartoci liczbow. Warto 0 wyczy zapisywanie plikw E3D, jednak nadal bd one wczytywane w pierwszej kolejnoci zamiast T3D. Wartoci niezerowe wczaj zapis. Warto 2 wczy, a warto 1 wyczy optymalizacj submodeli w E3D (niektre modele nieprawidowo si optymalizuj, ale optymalizacja daje wzrost FPS o okoo 10%, patrz punkt 10).

26. Przygotowanie do uycia 4 wymiennych tekstur
Wywietlanie modeli zostao przerobione tak, aby byo moliwe uycie do 4 wymiennych tekstur (replacableskin). Odpowiednio zostay dostosowane pliki E3D. Na chwil obecn nie ma moliwoci podania nazw dodatkowych trzech tekstur wymiennych na poziomie wpisw w scenerii ani w modelach T3D.

27. Zmienione ustawianie samochodw na drogach
Na drodze wszej ni 3.5m samochody ustawiane s zawsze na rodku. Na szerszych drogach, samochody stojce zostan ustawione prawym koem przy krawdzi drogi, wczajc pobocze, natomiast samochody jadce - w odlegoci 1/4 szerokoci drogi (bez pobocza) od jej osi, ale nie dalej ni 1.5m.

28. Naprawione przesunicie w trainset
Dotychczasowe rozwizania w tym zakresie si nie sprawdziy, skady z ujemnym przesuniciem miay problemy ze sprzgami. Obecnie zostao to naprawione. Dodatkowo, czoo skadu jest ustawiane na podanej pozycji i nie zaley to od dugoci pierwszego pojazdu. Dotychczas pozycja przesunicia okrelaa pooenie rodka pierwszego pojazdu.

29. Wstawianie odwrotne pojazdw
Aby model pojazdu by obrcony w skadzie o 180 wzgldem osi pionowej, naley we wpisie pojazdu poda -1 jako odlego od poprzedniego pojazdu (zaraz przed obsad - "headdriver", "nobody"). Dziaa take w pierwszym wpisie pojazdu. Podanie ujemnej wartoci przesunicia w trainset nie ma wpywu na kierunek pojazdw. Rwnie czoo skadu bdzie zawsze po stronie pierwszego pojazdu w trainset. Obsada "headdriver" oznacza kabin od strony pierwszego pojazdu w trainset. Jeli skad ma lokomotyw na kocu i ma jecha "do tyu", naley lokomotyw aktywowa eventami (wpisanie "reardriver" nie zapali wiate skadu).

30. Reakcja AI na podanie semafora i Ms2
Jeli AI stoi na torze, ktry nie jest przypisany eventem do semafora, to rwnie zareaguje na podanie zezwolenia jazdy na semaforze, jeli jest on przypisany do ktrego z kolejnych torw (do 500m). Ponadto, dotychczas AI przegldalo tory w poszukiwaniu eventu jedynie z komend SetVelocity, a obecnie uwzgldniane jest rwnie ShuntVelocity, o ile jest w trybie manewrowym. Przypisywanie tarczy do toru (z komend SetProximityVelocity w komrce pamici) nie jest wymagane i bdzie ignorowane. Uwaga! Aby AI stao pod semaforem, tor na wysokoci tego semafora powinien mie przypisany Event1 albo Event2 (zalenie od kierunku semafora); jeli event bdzie na wczeniejszym torze, AI chwil postoi, zatrbi i pojedzie dalej.

31. Zatrzymywanie AI na W4
Oprcz SetVelocity oraz ShuntVelocity rozpoznawana jest take komenda "PassengerStopPoint:(nazwa)", ktra zwizana jest ze wskanikiem W4 (miejsce zatrzymania czoa lokomotywy). Nazwy kolejnych punktw zatrzymania pobierane s z rozkadu. Po zatrzymaniu nazwa punktu zmieniana jest na nastpn w rozkadzie. Punkty zatrzymania nie wymienione w rozkadzie s pomijane (pocig si tam nie zatrzyma). Nazw najbliszego punktu mona wywietli przyciskajc [F1] (na razie tylko po oddaniu sterowania AI na pocztku). Pocig bdzie zatrzymany przez W4 a do godziny podanej w rozkadzie. Rwnie dziaa pobieranie prdkoci rozkadowej z danego fragmentu rozkadu.

32. Poprawiona zmiana kierunku AI
AI po otrzymaniu komendy "Change_direction" (w obu trybach) lub "OutsideStation" (w trybie manewrowym) nie ogranicza si do zmiany kierunku tylko w danej lokomotywie/wagonie/czonie. Znajduje pojazd z kabin po drugiej stronie skadu i tam si inicjuje (z tyu AI si kasuje). Dziki temu moemy dowolnie manewrowa takim ET41 lub EN57 i bd one po zmianach kierunku dobrze jedzi niezalenie od liczby dokonanych rotacji. Poprawk przygotowa ZiomalCl.

33. Sygnay koca pocigu
Skady prowadzone przez AI maj kontrolowane SKP. AI po przejciu z trybu manewrowego na tryb pocigowy bdzie mie na kocu SKP. Poprawk przygotowa ZiomalCl.

34. Poprawka na reardriver w wieloczonach
Wpisanie "reardriver" w inny ni pierwszy wagon/lok/czon pocigu powodowao dotychczas, e np. taki czon A ET41 z "connected" potrafi jecha w jedn stron, a czon B z "reardriver" w drug. Zostao to naprawione i moemy wstawia pocigi z "reardriver". Poprawk przygotowa ZiomalCl.

35. Poprawiona jazda AI
Zmiany przygotowa youBy.

36. Optymalizacja FPS (stopniowanie "slowmotion")
W przypadku wykrycia FPS niszego ni 16, zostanie w pierwszej kolejnoci wyczony multisampling (antyaliasing), a nastpnie promie renderowania scenerii zostanie ograniczony do 1.5km albo 1km. Po przyciniciu [F8] bdzie widoczny kod trybu "slowmotion" - odpowiednio 1, 3, 7. Odwrcenie nastpuje po wykryciu wzrostu FPS powyej 25.

27. Renderowanie chodnikw
Jeli dla drogi poda si ujemn wysoko "pobocza", to zamiast poziomego pobocza od strony jezdni i pochylenia na zewntrz, zostanie utworzony poziomy chodnik z krawnikiem od strony jezdni. Pochylenie krawnika jest stae i wynosi 1:3.75 (dla wysokoci 15cm jest odchylony o 4cm), mona tylko regulowa jego wysoko. Nastpna warto za wysokoci chodnika okrela jego szeroko z lewej strony, a kolejna z prawej strony. Mapowanie jest wykonywane proporcjonalnie do powierzchni tekstury i podanej dugoci powtarzania (liczba midzy nazwami tekstur), podobnie jak nawierzchnia. Lewy chodnik jest mapowany od strony 0/64 (zalenie od szerokoci) do 31/64, nastpnie od 31/64 do 32/64 jest lewy krawnik, od 32/64 do 33/64 prawy krawnik i od 33/64 jest mapowany prawy chodnik do strony 64/64 (te zalenie od szerokoci).



Ra, 2011-08-06.