31
Na warsztacie / Odp: Exe - zmiany w stosie graficznym i dźwiękowym
« dnia: 13 Listopada 2017, 18:42:18 »
Mam kłopot z zachowaniem AI w przypadku sterowania pojazdami w ukrotnieniu. Problem związany jest z traktowaniem przez AI drugiego pojazdu w ukrotnieniu. Wygląda na to, że po rozłączeniu ukrotnionych pojazdów drugi z nich staje się „martwy” i nie udaje się zmusić AI do przejęcia sterowania nad nim. Dotyczy to zarówno lokomotyw jak i EZT. Sprawa nie jest wydumana, dotyczy sytuacji mogących wystąpić w scenariuszach i najlepiej gdy zilustruję to następującymi przykładami (testowanymi na tworzonej scenerii).
1. Dwie jednostki EZT jadą w ukrotnieniu jako pociąg. Na stacji końcowej następuje rozłączenie składu i zgodnie z realnym RJ i planem obiegów jeden EZT - powiedzmy po kilkunastu min. - jedzie dalej jako inny pociąg, a następnie druga jednostka ma zjechać na tory postojowe, zwalniając tor peronowy dla innych pociągów. Dla informacji: sprzęgi wewnętrzne są zablokowane (-55), sprzęg łączący dwa EZT ma maskę 55.
2. Pociąg towarowy prowadzony jest dwiema lokomotywami, np. pociągową i manewrową, jak to bywa u przewoźników prywatnych. Na stacji końcowej lokomotywa pociągowa po odczepieniu zjeżdża na tor postojowy, a manewrowa ma rozpocząć obsługę bocznic.
3. Dwie lokomotywy luzem przejeżdżają odcinek w ukrotnieniu i po rozłączeniu na pewnej stacji każda ma być skierowana w inne miejsce (tu ukrotnienie zastosowałem dla celów testowych).
Zachowanie AI
Pierwszy pojazd zachowuje się po rozłączeniu zgodnie z oczekiwaniem, drugi niestety nie. Nie reaguje na żadne komendy wysyłane na różne testowane sposoby – z komórki sygnalizatora, z komórki przypisanej w pliku sterującym do odcinka toru, itd. Wygląda na to, że AI traktuje pojazd jako nieobsadzony i nic nie robi. Po pierwszych niepowodzeniach naiwnie założyłem, że jeśli wstępnie, przed rozpoczęciem jazdy pociągowej, złączę manewrami dwa obsadzone pojazdy (dla drugiego testowane headdriver i reardriver), to AI zapamięta, że drugi pojazd był obsadzony i przywróci ten stan po rozłączeniu. Niestety to nie pomogło.
Przy okazji wyszły na jaw pewne osobliwe zachowania.
1. Dwie lokomotywy obsadzone:
a) po połączeniu druga jest zahamowana, AI jej nie odhamowuje i skład stoi bezczynnie nie wykonując kolejnych komend (tabelka skanowania OK). Ten lub podobny problem jest zdaje się znany i był już chyba gdzieś poruszany.
b) kilka razy zdarzyło się, że po rozłączeniu dwóch lokomotyw jadących luzem, druga odrzucana jest do tyłu i porusza się ze stałą prędkością nie reagując na żadne sygnały i wbrew prawom fizyki – nie uwzględnia oporów ruchu i pochyłości toru.
2. Ukrotnione EZT – złączone manewrami dwie obsadzone jednostki. Od październikowych wersji exe pociąg tak zestawiony zatrzymuje się daleko za W4 – całością lub częścią składu. W przypadku gdy zaraz za W4 znajduje się semafor i dalej przed rozjazdem odcinek toru wygaszający semafor, skład sam sobie potrafi zablokować dalszą jazdę. Dotyczy to sytuacji gdy druga jednostka przed połączeniem ma obsadę headdriver (przy reardriver nie zauważyłem tego problemu). Jest to szczególnie niepokojące, bo w scenariuszach mogą zgodnie z realiami wystąpić sytuacje, kiedy do jednostki kończącej jazdę doczepiany jest drugi EZT i skład ma odjechać dalej jako nowy pociąg.
1. Dwie jednostki EZT jadą w ukrotnieniu jako pociąg. Na stacji końcowej następuje rozłączenie składu i zgodnie z realnym RJ i planem obiegów jeden EZT - powiedzmy po kilkunastu min. - jedzie dalej jako inny pociąg, a następnie druga jednostka ma zjechać na tory postojowe, zwalniając tor peronowy dla innych pociągów. Dla informacji: sprzęgi wewnętrzne są zablokowane (-55), sprzęg łączący dwa EZT ma maskę 55.
2. Pociąg towarowy prowadzony jest dwiema lokomotywami, np. pociągową i manewrową, jak to bywa u przewoźników prywatnych. Na stacji końcowej lokomotywa pociągowa po odczepieniu zjeżdża na tor postojowy, a manewrowa ma rozpocząć obsługę bocznic.
3. Dwie lokomotywy luzem przejeżdżają odcinek w ukrotnieniu i po rozłączeniu na pewnej stacji każda ma być skierowana w inne miejsce (tu ukrotnienie zastosowałem dla celów testowych).
Zachowanie AI
Pierwszy pojazd zachowuje się po rozłączeniu zgodnie z oczekiwaniem, drugi niestety nie. Nie reaguje na żadne komendy wysyłane na różne testowane sposoby – z komórki sygnalizatora, z komórki przypisanej w pliku sterującym do odcinka toru, itd. Wygląda na to, że AI traktuje pojazd jako nieobsadzony i nic nie robi. Po pierwszych niepowodzeniach naiwnie założyłem, że jeśli wstępnie, przed rozpoczęciem jazdy pociągowej, złączę manewrami dwa obsadzone pojazdy (dla drugiego testowane headdriver i reardriver), to AI zapamięta, że drugi pojazd był obsadzony i przywróci ten stan po rozłączeniu. Niestety to nie pomogło.
Przy okazji wyszły na jaw pewne osobliwe zachowania.
1. Dwie lokomotywy obsadzone:
a) po połączeniu druga jest zahamowana, AI jej nie odhamowuje i skład stoi bezczynnie nie wykonując kolejnych komend (tabelka skanowania OK). Ten lub podobny problem jest zdaje się znany i był już chyba gdzieś poruszany.
b) kilka razy zdarzyło się, że po rozłączeniu dwóch lokomotyw jadących luzem, druga odrzucana jest do tyłu i porusza się ze stałą prędkością nie reagując na żadne sygnały i wbrew prawom fizyki – nie uwzględnia oporów ruchu i pochyłości toru.
2. Ukrotnione EZT – złączone manewrami dwie obsadzone jednostki. Od październikowych wersji exe pociąg tak zestawiony zatrzymuje się daleko za W4 – całością lub częścią składu. W przypadku gdy zaraz za W4 znajduje się semafor i dalej przed rozjazdem odcinek toru wygaszający semafor, skład sam sobie potrafi zablokować dalszą jazdę. Dotyczy to sytuacji gdy druga jednostka przed połączeniem ma obsadę headdriver (przy reardriver nie zauważyłem tego problemu). Jest to szczególnie niepokojące, bo w scenariuszach mogą zgodnie z realiami wystąpić sytuacje, kiedy do jednostki kończącej jazdę doczepiany jest drugi EZT i skład ma odjechać dalej jako nowy pociąg.