-
Gesamte Inhalte
8006 -
Benutzer seit
-
Letzter Besuch
Alle erstellten Inhalte von Neo
-
Hallo, nicht direkt, wie schon Frank erkannt hast, spricht du die Objektvariable nur indirekt an, über einen Objektnamen. Da sich hinter einem Namen viele Objekte verbergen können, kann das Studio bei solchen indirekten Zugriffen nicht warnen (wie auch schon in V4). Not yet, but this feature will be included in the final release. Vehicle points to the train, which entered the new track. "New track" points to the entered track and "Last track" points to the leaved track. The first is used when addressing a single, specific variable. Extended is used when addressing a variable, where the object or the variable name itself can be a variable itself. The logic behind both is the same, it is just a simpler user interface. All variables of what? Variables of an event module are listed in the event management, variables of an object in the variable editor (right click on an object and select "Keywords/Variables". A detailled documentation will be available when the final version is released in september. Genau, Parameternamen sind nichts anderes als Lua-Variablen. Dass du normale Variablen mit Umlauten schreiben kannst, liegt daran, dass sie nur Tabelleneinträge sind, und hier gibt es keine Beschränkungen. Was meinst du damit, ein Ereignis, was ausgelöst wird, wenn sich der Name einer Variable ändert? Was bezweckst du damit? Das funktioniert aktuell noch nicht, das wird mit der finalen Version zur Verfügung stehen. Warum will du die Ereignisse exportieren? Du kannst Timer und Variablen auch dynamisch erzeugen, wie in V4. Dafür musst du lediglich "Timer (Erweitert)" bzw. "Variable (Erweitert)" verwenden. Trage unter Name dann einfach einen beliebigen Namen ein. Das kann ich gern noch verbessern. Einmalig auslösende Timer sind nur noch aus Kompatibilitätsgründen vorhanden, d.h. Timer gelten in V5 standardmäßig als "Taktgeber", lösen also kontinuierlich aus.. Willst du nur einmalig eine Aktion verzögern, empfehle ich die weitaus möchtigere Aktion "Ausführung verzögern". Dabei bleiben nämlich die Auslöser erhalten und du musst solche Daten nicht irgendwo zwischenspeichern. Ich würde Variablen nicht mehr löschen, um sie auf einen Anfangswert zurückzusetzen. V5 kennt verschiedene Wertetypen (Zahlen, Strings, Boolean, Objekte...), und im Interesse einer übersichtlichen Struktur würde ich Variablen im Vorfeld definieren und gleich den Typ angeben, damit man sieht, was dort in Zukunft mal gespeichert wird. Ist das wirklich ein Problem? Die Einstellung ist doch ruckzuck geändert. Wie viele Ereignisse hast du denn, wo du so eine Umstellung vornehmen musst? object.variables["Mein Schlagwort"] = keyword Was möchtest du damit sagen? Wenn du unzufrieden mit V5 bist, kannst du gern V4, V3, V2, V1 oder den alten 3D-Eisenbahnplaner verwenden, du hast die freie Wahl. Viele Grüße, Neo
-
Hallo Andy, deine großen Testanlagen habe ich mir nicht angeschaut, da mir dafür tatsächlich die Zeit fehlt, aber deine TickerMinimal, zu der ich dir etwas erzählen kann. Ich habe mir dort deine Subticks angeschaut, die manchmal den Wert 10 erreichen, obwohl das nicht passieren sollte (da du auf < 9 prüfst). Tatsächlich kommt es aber zu den Subticks = 10, weil zwischen der Prüfung auf < 9 und dem Hochzählen um 1 eine Verzögerung eingebaut ist (V4-Kompatibilität). Während dieser Verzögerung kommt es zu einem erneuten Timer-Ablauf, wobei Subticks immer noch auf 8 steht und daher eine zweite Verzögerung gestartet wird, die später ebenfalls Subticks um 1 erhöht. Je nach FPS könnte es sogar sein, dass bei den kurzen Timer-Intervallen sehr viele Timer ablaufen und dein Subticks weit über 10 läuft. Du hast hier also eine klassische Race Condition in deinen Ereignissen. Dieses Problem hätte es auch in V4 gegeben, wenn dort nicht ein anderer Bug zufälligerweise das Problem verhindert hätte. Wenn in V4 die Szene um 0,5 Sekunden bewegt wurde, wurde ein Timer mit 0,1 Sekunden nur einmal aufgerufen. Die restlichen 0,4 Sekunden verschwanden im Nirwana. In V5 wurde dieser Fehler behoben, und ein 0,1 Sekunden Timer triggered innerhalb von 0,5 Sekunden auch 5x. Zusammengefasst: Schon in V4 standen deine Ereignisse "auf der Kippe" Durch einen Bug in V4 bist du nochmal glimpflich davon gekommen, V5 fängt dich durch den korrigierten Fehler leider nicht mehr auf Die Lösung: Entferne die Verzögerungen. Durch die neue rekursive Programmlogik können solche Race Conditions nicht mehr auftreten, weil Aktionen nicht mehr implizit verzögert werden (wie in V4). Was ist eigentlich der Sinn hinter dieser Subticks/Minute/Stunde-Logik? Viele Grüße, Neo
-
Ein weiterer Vorteil der Anmeldung ist, dass man eine E-Mail-Benachrichtigung erhält, wenn du live gehst. Hat bisher prima funktioniert. Viele Grüße, Neo
-
Hallo Andy, wenn es um EV-Probleme geht, helfen für gewöhnlich keine Screenshots. Gib bitte deine Testanlage frei. Was willst du eigentlich erreichen? Deine Beschreibung klingt nicht gerade nach einem einfachen Ticker. Viele Grüße, Neo
-
Hallo, das hat mit dem neuen V5-Katalog nichts zu tun, sondern mit einem Fehler in V4. Es gab dort noch Probleme bei Gruppen im Online-Katalog, wenn sich Unterobjekte nachträglich geändert haben. Das Fragezeichen verschwindet allerdings, wenn du die Anlage speicherst und neu lädst. In V5 gibt es dieses Problem nicht mehr. Gute Idee, ich glaube ich kann hier noch den ein oder anderen Shortcut einbauen. Um welche Modelle konkret handelt es sich? Hast du dich diesbezüglich schon an die Modellbauer gewandt? Danke für den Hinweis, das ist natürlich nicht gewollt, dass das Mousewheel dort nicht funktioniert. Wird korrigiert. Ich habe mir das als Feature-Wunsch notiert. Thank you for your suggestion, I've changed the category name and moved the wrong trees to the right category. Yes, there will be improvements to the shadows for special situations. You can still replace the old tree with another tree and switch then to another variation. Das rekursive Verhalten entspricht, wie du selbst schon festgestellt hast, dem normalen Ablauf eines Programms. Diese verzögerte Ausführung von Ereignissen vor V5 basierte auf einer "Abkürzung", die ich vor über 12 Jahren im alten 3D-Eisenbahnplaner getroffen habe. Damals empfand ich das Sammeln von Aktionen als einfachste Lösung, um Stack-Overflows zu vermeiden. Heute weiß ich es besser, und muss keine Klimmzüge mehr machen, um Endlosschleifen bei der EV zu verhindern. Einen Stack-Overflow gibt es nicht, das Studio bricht die Abarbeitung bei 25 Rekursionsebenen ab. Hier sollte der Planer dann schnell erkennen, dass er etwas falsch gemacht hat. Gefährlich ist das Verhalten nicht, man muss sich dem natürlich bewusst sein. Das musste man aber auch in allen anderen Versionen bisher, denn diese verzögerte Ausführung war nicht intuitiv und viele Leute mussten darauf erst hingewiesen werden. Jetzt ist alles einheitlich: Wird etwas geändert, führt die Änderung zu einem Ereignis, was abgearbeitet wird. Nichts anderes ist Lua, wo Funktionen andere Funktionen aufrufen. Die Warnungen gibt es auch weiterhin, aber nur für Objekte, die direkt in der EV referenziert werden. Wenn du ein Ereignis "Beliebiger Schalter wird betätigt" hast, und einen beliebigen Schalter löschst, erscheint keine Warnung. Die Warnung hat ja den Zweck, dich auf Ereignisse hinzuweisen, die anschließend nie mehr ausgeführt werden, weil das entsprechende Objekt fehlt. "Globale Ereignisse" funktionieren ja weiter, wenn du einen von vielen Schaltern löschst. Viele Grüße, Neo
-
Hallo Frank, deine Variable Zonenzuordnung besitzt den falschen Typ. Im Moment verwendest du den Typ Text mit dem Namen der Zuordnung. Das kann natürlich nicht funktionieren, weil ein Text keine Eigenschaft "variables" besitzt. Du musst deine Zonenzuordnung zum Typ Objekt abändern und direkt das Objekt referenzieren. Viele Grüße, Neo
-
Hallo, @fzonk und @EASY Schaut euch mal die Demo-Anlage unter BF5271F1-E762-40A5-9886-AA42441B9E38 an. Dort gibt es Aktionen, die von zwei Schaltern ausgeführt werden, jedoch mit unterschiedlichen Parametern. Ein Schalter startet die Lok sofort, der andere um 2 Sekunden verzögert. Dahinter stecken die gleichen Aktionen, nämlich in einem benutzerdefinierten Ereignis zusammengefasst, mit individuell konfigurierten Parametern. Die zwei Schalter rufen dann einfach nur dieses benutzerdefinierte Ereignis mit eigenen Parametern auf. Benutzerdefinierte Ereignisse sind quasi die Nicht-Lua-Variante von "globalen Funktionen", können also zum Zusammenfassen von gemeinsam genutzten Aktionen/Bedingungen genutzt werden. In meinem Beispiel hätte man die Redundanz natürlich auch mit Objektvariablen der Schalter lösen können, aber sobald verschiedene Ereignisse (z.B. Weiche schaltet ODER Schalter wird betätigt) die gleichen Aktionen aufrufen, sind benutzerdefinierte Ereignisse eine Lösung. Danke für den Hinweis, ich schau's mir an. Gut, mein Anspruch in V5 ist natürlich nicht, kaputte Anlagen aus V4 automatisch zu reparieren. Fehlerhaft geplante Anlagen bleiben natürlich fehlerhaft. Viele Grüße, Neo
-
Hallo, solche Verschachtelungen kannst du in V5 noch vereinfachen. Objekte brauchen in V5 nicht mehr über Namen angesprochen zu werden, weil Variablen direkt Objektreferenzen speichern können. In einem fiktiven Beispiel sehe die Verschachtelung dann so aus: Zonenzuordnung ist in diesem Fall eine Variable von Gleiskontakt201 vom Typ Objekt. Mit direkten Objektreferenzen sparst du eine Verschachtelung pro Ebene. Viele Grüße, Neo
-
Hallo, leider bin ich noch nicht dazu gekommen, die Kamerasteuerung zu verbessern. Noch nicht, aber ich habe fest mit dieser Frage gerechnet. Verbunden ist damit aber noch deutlich mehr, nämlich weitere Hilfsfunktionen für Berechnungen von Vektoren, Matrizen und Quaternions, also den Basiselementen für 3D-Transformationen. Die Frage ist nämlich, ob ich diese Arbeit auf Lua abwälze, z.B. durch Integration einer 3D-Mathe-Bibliothek, oder ob ich die 3D-Funktionen, die das Studio intern nutzt, für Skripte freigebe. Hier muss ich mich noch für einen Weg entscheiden, auf lange Sicht wird es irgendeine Form von Hilfsfunktionen geben. Ich werde mir das als mögliche Verbesserung notieren. Dieser Teil gefällt mir auch noch nicht, hier habe ich noch einige Verbesserungen eingeplant. Habe ich mir als Feature-Wunsch notiert. Ich habe bereits geplant das Suchfenster dort wieder rechts neben der Liste dauerhaft anzuzeigen. Gern, ich habe eh geplant, noch eine andere Form als zusätzliche Variation anzubieten, da kann ich gern weitere Farben und/oder Tauschtexturen mit einbauen. Ich kann gern eine Mehrfachselektion berücksichtigen, aber in deinem Fall würde ich überlegen, ob es nicht sinnvoller ist, auf die Duplizierung von fast identischen Ereignissen/Bedingungen/Aktionen zu verzichten. Deine 3 Blöcke könntest du z.B. zu einem Block zusammenfassen, wenn du z.B. mit benutzerdefinierten Ereignissen arbeitest. Diese kannst du mit beliebigen Parametern aufrufen und so Redundanzen vermeiden. Viele Grüße, Neo
-
Hallo, das wird nicht sauber funktionieren. Hast du einmal eine niedrige FPS, ist die Animation eventuell schon zu weit fortgeschritten. Besser wäre es, wenn man Animationen in Bereichen abspielen kann. Die Technik gibt es intern schon und wird z.B. bei den Kränen genutzt. Dann kannst du auch auf Ereignisse wie "Animation gestartet/gestoppt" reagieren, ohne ständig die Position abfragen zu müssen. Viele Grüße, Neo
-
Hallo, du kannst per Lua auf die Transformation (Position, Rotation und Skalierung) eines Objekts zugreifen, siehe Auto-Vervollständigung. Schreibend kannst du die Position bereits per Lua setzen: Objekt.animations["Name"]:play(0.5) Objekt.animations["Name"]:stop(0) Das ist noch ein kleiner Hack, weil du die Animation startest und wieder sofort stoppst. Gern baue ich aber eine Eigenschaft ein, um direkt die Position einer Animation zu setzen und auszulesen. Thank you very much, you can send me the word document by mail (see contact page at the bottom of this page). Frank hat den Fehler korrekt erkannt, die EV in V5 interpretiert ein nicht vorhandenes Objekt fälschlicherweise als "Alle Objekte". Dieser Fehler ist schnell korrigiert, danke für den Hinweis. Viele Grüße, Neo
-
Hallo, den Gleiskontakt findest du schon an zentraler Stelle, bei den Schlagwörtern: Viele Grüße, Neo
-
Hallo, eigentlich nicht, ich glaube hier ging die Neukategorisierung etwas zu weit. Ich habe die Einzelteile ebenfalls in die Kategorie "Zweiachser" verschoben. Kannst du deine Testanlage mir bitte zukommen lassen? Viele Grüße, Neo
-
Hallo, ja, das steht noch auf meiner ToDo-Liste für V5 und wird auch noch kommen. Die Schatten in Kombination mit Partikeleffekten gefallen mir auch nicht immer, hier werde ich noch nach einer besseren Lösung suchen. Definitiv, genau darum geht es bei der Test-Phase, um Fehler/Unstimmigkeiten zu finden und auszumerzen. Ja, hier unterscheidet sich V5 nicht von V4, die minimale Rastergröße einer Bodenplatte hängt vom Maßstab ab. Ich gebe aber zu, dass die Größe etwas seltsam wirkt, ich werde die Berechnungsformel noch einmal prüfen. Das höre ich zum ersten Mal. Welche Änderungen gab es denn von V3 auf V4, die deine Anlagen zerstört haben? Eine Bewertung von V4 auf V5 ist jetzt noch nicht angebracht, die Test-Phase dient dazu, solche Inkompatibilitäten zu finden und zu beseitigen. Die Kritik, dass das Studio nicht abwärtskompatibel ist, ist nicht berechtigt. Die Unterstützung alter Anlagen hat oberste Priorität, oder warum glaubst du, verbleiben die vielen tausende 3D-Modelle im Archiv? Du kannst heute in V5 Anlagen aus V1 öffnen und alles funktioniert wie gehabt. Falls nicht, handelt es sich um einen Bug, der beseitigt wird. Die Gleise gibt es schon noch, nur sind es keine Weichen mehr, da sie keine Weichenstellungen besitzen. Diese Konstellation ist eigentlich nicht erlaubt, und lässt sich nur erreichen, wenn man nach der Definition eines Ereignisses eine Weiche durch eine Nicht-Weiche ersetzt. Weil dieser Fall bisher nicht berücksichtigt wurde, spielt auch die Anzeige mit [leer] und [umschalten] verrückt. Ich werde gegen diese Situation Absicherungen einbauen. Das die Aktion in V4 zu keinem Fehler führt liegt daran, dass V4 Weichen einfach ignoriert, die keine Weichenstellungen besitzen. Ich werde mir überlegen, in wie weit V5 das Verhalten emulieren sollte, denn es bleibt ja dennoch ein Fehler in der Planung. Das Ereignisse komplett abgebrochen werden, wenn mittendrin ein Fehler auftritt, liegt an dem neuen Lua-Unterbau. Lua bricht die Abarbeitung eines Skripts bei einem Fehler sofort ab. Hier Absicherungen einzubauen könnte gefährlich sein, weil dann Teilaktionen ausgeführt werden, die so nie hätten ausgeführt werden sollen. Anlagen mit Planungsfehlern bleiben ein Problem. Ich wollte die Konfiguration der Auslöser so einfach wie möglich halten, in dem dort nur die wesentlichen Eigenschaften definiert werden. Wenn man nun auch noch das Fahrzeug angeben soll, dann gibt es eine Menge von Kombinationen: Beliebiges Fahrzeug auf beliebigen Gleis Konkretes Fahrzeug auf beliebigen Gleis Liste von konkreten Fahrzeugen auf beliebigen Gleis Fahrzeug mit Schlagwort auf beliebigen Gleis Beliebiges Fahrzeug auf konkretem Gleis ... Das wird dann meiner Meinung nach schnell unübersichtlich. Zudem erlaubt die Vereinfachung eine starke Optimierung auf Code-Ebene, was sich in der Performance der EV niederschlägt. Viele Grüße, Neo
-
Hallo, ich danke euch für euren Zuspruch und Anerkennung. Dennoch habe ich Verständnis für alle Leute, die sich erst V4 gekauft haben und jetzt nicht sofort umsteigen wollen, soll jeder am Ende individuell entscheiden. Ich empfehle daher zurück zum ursprünglichen Thema zu wechseln. Viele Grüße, Neo
-
Hallo, bedenkt, dass die Verzögerung nicht primär für die Kompatibilität zu V4 entwickelt wurde, dahinter steckt ein mächtiges Feature, was den Timern Konkurrenz macht, Stichwort Zugweiterfahrt nach einer Pause. Liest eigentlich niemand die integrierte Code-Hilfe zu den Lua-Befehlen? Viele Grüße, Neo
-
Hi Ralf, alle Videos, die du in Beiträgen siehst, sind YouTube-Videos. Wenn du einen Link zu YouTube einfügst, erzeugt die Forensoftware automatisch ein Abspielfenster. Viele Grüße, Neo
-
Hallo Götz, klasse Video, toll, wie schnell du so etwas auf die Beine stellst. Warum in manchen Situationen die Züge nicht exakt mittig stoppen, werde ich noch genauer prüfen, das kommt mir im Moment auch etwas seltsam vor. Die Züge stoppen doch korrekt in der geometrischen Mitte, es handelte sich nur um eine optische Täuschung. Übrigens kannst du die Verzögerung auch ohne Lua bei der Einfahrt in den Bahnhof auf 6 m/s² setzen, in dem du die Aktion "Eigenschaft/Variable setzen" verwendest und statt einer Variable per Zahnrad auf "Eigenschaft" wechselst: Ich freue mich dennoch auf ein Lua-Video Viele Grüße, Neo
-
Hallo, danke für den Hinweis, ich werde dem nachgehen. Womöglich habe ich das nicht eindeutig kommuniziert, aber der Beta-Test ist dadurch gekennzeichnet, dass die neuen Funktionen ohne Dokumentation ausgiebig getestet werden können, quasi für experimentierfreudige. Das Wiki wird jetzt erst Schritt für Schritt angepasst. Bis zum fertigen Release im September wird sich dort noch einiges tun. In der Art und Weise, wie die Anlage gesteuert wird, unterscheidet sich V5 nicht von V4. Auch jetzt kannst du einen Zähler in Form einer Variable hochzählen und darauf reagieren, nur die Bedienung ist eine andere: Platziere einen Gleiskontakt und füge zu diesem eine Zählvariable hinzu Klicke anschließend mit der rechten Maustaste auf den Kontakt und wähle "Ereignisse - Neu - Gleiskontakt wird ausgelöst" Erstelle eine Aktion "Eigenschaft/Variable setzen" und wähle deine vorher angelegte Zählvariable aus Gib eine Zahl ein und wähle die Rechenoperation Füge ein Bedingung hinzu, die die Zählvariable prüft und entsprechende Aktionen bei Erfolg ausführt Während du in V4 noch zwei Ereignisse für diese Aufgabe benötigst (Hochzählen bei Betreten und Prüfung bei Änderung einer Variable), kannst du durch die verschachtelten Bedingungen und Aktionen den gesamten Ablauf in einem einzigen Ereignis abbilden. Ich glaube Neueinsteiger werden mitunter weniger Probleme als Umsteiger haben, weil sie nicht mit den alten Logiken "belastet" sind. Das liegt in der Natur der Sache, dass Neues mit altem verglichen wird, und die neue EV sieht ganz anders aus und wird teils komplett neu bedient, ein "Umgewöhnungsaufwand" bleibt da nicht aus. Ja. Klickst du im Protokoll doppelt auf ein Ereignis, wird sofort die Ereignisverwaltung mit dem entsprechenden Ereignis aufgerufen. Das werde ich auch für die rechte Spalte einbauen, ein Doppelklick auf eine Variable oder einen Timer wird dich dann direkt zur richtigen Stelle führen. Viele Grüße, Neo
-
Hallo, ich habe ein Update der Beta-Version veröffentlicht, was die bisher gemeldeten Probleme beseitigt. Eine Liste der Änderungen findet sich am Ende des ersten Beitrags dieses Themas. Viele Grüße, Neo
-
Hallo, BahnLands Anlage geht natürlich gleich in die Vollen, gerade jetzt am Anfang würde ich aber empfehlen, anhand von kleineren Beispielen sich die neuen EV-Grundlagen anzueignen. Das ist tatsächlich noch ein Fehler, der nur dann auftritt, wenn das Ereignis für einen beliebigen Gleiskontakt definiert ist. Danke für den Hinweis. Viele Grüße, Neo
-
Hallo, danke. Ja, die Bodenplatte verhält sich in V5 in Kombination mit der transparenten Ansicht anders als in V4 (es gab in diesen Bereichen ein paar Fehlerbereinigungen). Ich werde prüfen, ob es sich bei der aktuellen Ansicht um einen Fehler handelt. Viele Grüße, Neo
-
Hallo, selbstverständlich, die Beta-Phase dient auch dazu, die Usability zu testen und bei Bedarf zu verbessern. Ich werde mir alle Verbesserungswünsche notieren und wenn möglich in den nächsten Updates mit einfließen lassen. Ich denke eher nicht. Hast du eine Testanlage online, bei der ich das Problem nachvollziehen kann? Viele Grüße, Neo
-
Perhaps it was filtered out by your spam folder? Anyway, the error will be fixed by the next update. Kind regards, Neo
-
Hi, I've sent you an e-mail to the address you have specified in the error report. Kind regards, Neo