KI-Zug skripttechnisch am Abfahren hindern

  • Guten Tag zusammen,


    ich probiere gerade aus, einen KI-Zug per Skript zu steuern. Nun würde ich den KI-Zug gerne, nachdem das Ereignis "Passagiere aufnehmen" beendet ist, noch ca. 2-10 Sekunden am Abfahren hindern.


    Es bringt ja leider nichts, den "Regulator"-Controller regelmäßig auf 0 zu setzen, denn bei KI-Zügen obligt die Steuerung der Controller anscheinend nicht mehr dem Skript, sondern der railworks-Core. Dinge wie Regulator, TrainBrakeControl, Reverser werden dann also vollständig vom TS übernommen. Und genau das soll nicht passieren. Ich befürchte, dass sich das mit dem Abfahren des KI-Fahrzeugs nicht verhindern lässt.


    Eine andere, aber umständlichere Möglichkeit ist es halt, gleich im Fahrplan-Editor einen zusätzlichen Warteauftrag am selben Bahnsteig zu geben, nachdem das "Passagiere aufnehmen" Ereignis abgeschlossen wurde. Aber das ist bei mehreren Halten auch umständlich, es immer mit einzufügen.


    Hat da vielleicht einer Erfahrungen mit gemacht?


    Viele Grüße ;)

  • mehreren Halten auch umständlich, es immer mit einzufügen.

    Dir wird wohl keine andere Möglichkeit bleiben, dies so zu regeln. Mir ist bisher kein einziges Script bekannt, mit welchem man KI steuern kann. Und umständlich find ich die Methode mit einem weiteren Warteauftrag jetzt nicht wirklich. Handsymbol setzen, eben den Marker auswählen und fertig. Da biste mit Sicherheit schneller, selbst mit mehreren Halten, als nen Script zu schreiben (vorausgesetzt das dies überhaupt für Ki funktionieren würde). Einziger Nachteil bei dem Handsymbol ist nur das Minimum von 20sek. Da drunter geht im TS ja leider nichts.

    CPU: Intel Core i7 10700K 8x3.80Ghz, Ram 32GB, GPU: EVGA RTX 2080Ti, Win11 64bit Pro, 3x500GB SSD Samsung 840 Evo, M2 Samsung 970 EVO Plus 2TB

  • @Amisia Das Skript existiert schon (hab schon 3 Monate Tipparbeit hinter mir).


    Ich frage mich aber, wie vR das hinkriegt, dass der Zug nicht vor dem Schließen aller Türen abfährt. Ich probiere nochmal etwas herum. Vielleicht habe ich ja Erfolg. Ansonsten erhalten zumindest KI Fahrzeuge die Standart-Türsteuerung. Denn einen Spielerzug kann man ja entsprechend skriptseitig am Abfahren hindern.


    Es ist jedenfalls interessant zu wissen, dass Halteaufträge kürzer als 20 Sekunden sein können. Vielleicht lässt sich in die Richtung auch noch was machen.


    Ich danke euch für die Antworten.

  • KI Züge kannst du per Script nicht aufhalten oder in der Fahrt beeinträchtigen. Auch vR Züge können das nicht. Du musst dir die KI so vorstellen wie bei einer Modellbahn und dem kleinen Bruder/der kleinen Schwester. Du, der Simulationstyp mit der Digitalsteuerung in der Hand, fährst den Zug sanft und mit dessen eigenem Antrieb über deine Anlage, wohlwissend um all seine Funktionen und Eigenschaften, ergo PlayerTrain. Dein kleines Anhängsel aber interessiert das nicht. Es schiebt den 1000€ Zug einfach mit der blosen Hand über die Gleise um Flachstellen in die Haftreifen zu treiben, ergo KI. Die KI Züge im TS sind dumm wie ein angefallener Krumen vom dümmsten Toastbrot dass du finden kannst (gibt aber Menschen die sind dümmer, das nur am Rande). Die interessiert sich einen Dreck drum was der Zug kann oder nicht. Die Beschleunigungswerte werden einfach marginal zusammengerechnet aus den Simulations-Blueprints genommen und daraus eine Bewegung errechnet. Die ist realtiv einfach und deswegen zucken KI Züge auch immer so rum wenn man neben denen her fährt. Da sind halt extreme Ungenauigkeiten die ausgeglichen werden durch Repositionierung des ganzen Zuges. Ist natürlich alles noch wat komplexer, aber im Grunde genau nur das. Die KI schiebt den Zug mit festsitzenden Bremsen einfach mit aller Macht über die Gleise, ob du das willst oder nicht.

  • Das hat mit IsEngineWithKey wenig zu tun. Zusammenhang ist da nur, dass so ein Zug die PhysX aktiviert hat. Kann aber auch bei einzelnen Wagen und nicht nicht mit Fahrern ausgestatteten Zügen passieren. Die Problematik dahinter kommt gar nicht mal von TS selbst, sondern von der Nvidia PhysX. Man kann dem entgegenwirken als Hersteller, aber der Kompromiss ist nicht immer zu machen. Kernaspekt bei der Sache ist das Verhältnis von Achsanzahl, Wagengewichten und Ladegewichten. Die Züge rollen auch nicht, die driften und schwimmen umher. Letztlich wohl darauf zurückzuführen, dass die Update() und FixedUpdate() (nicht im Script di Update() Funkion, es gibt im Core natürlich auch Update Routinen, oder nenne es Tick) nicht 100% synchron sind. Ein Problem dass es im TSW auch gibt/gab.

  • und deswegen zucken KI Züge auch immer so rum wenn man neben denen her fährt. Da sind halt extreme Ungenauigkeiten die ausgeglichen werden durch Repositionierung des ganzen Zuges.

    Und ich dachte immer das liegt daran das die Graka oder CPU zu wenig Leistung hat. Danke für die Erklärung.

  • Und ich dachte immer das liegt daran das die Graka oder CPU zu wenig Leistung hat. Danke für die Erklärung.

    Genau das gleiche dachte ich bisher auch immer. Hab das immer auf eine geringere FPS Rate geschoben. Hmm...wieder was gelernt.

    CPU: Intel Core i7 10700K 8x3.80Ghz, Ram 32GB, GPU: EVGA RTX 2080Ti, Win11 64bit Pro, 3x500GB SSD Samsung 840 Evo, M2 Samsung 970 EVO Plus 2TB

  • Man mag auf die dumme KI schimpfen, aber letzlich würde die Möglichkeit zu Scripten dazu führen, dass der Conductor den Ablauf des KI-Verkehrs überhaupt nicht mehr voraussagen könnte, da sich der Einfluss des Scripts ja erst zur Laufzeit bemerkbar macht.


    Schon mit der einzigen Unbekannten im TS, dem menschlichen Fahrer, gibt es häufig Probleme (Dauer-Hp0 im Szenario etc.). Mit gescripteten KI Verkehr wäre wahrscheinlich nur noch Chaos.

  • So weit so gut. Ich habe mal dem KI-Fahrzeug eine Türsteuerung verpasst. Klar, wenn sich nicht alle Türen SOFORT schließen, fährt die KI schon vorher los. Meine Tests ergaben: Wenn allerdings nach dem Wechsel von DoorsOpenCloseLeft/-Right von 1 zu 0 sofort eine Animatin ausgelöst wird, wartet der TS oder das KI-Fahrzeug so lange, bis diese Animation abgeschlossen ist. Ideal für eine Standart-Türsteuerung (alle Türen öffnen sich und schließen alle gleichzeitig wieder).