Jump to content

Empfohlene Beiträge

Geschrieben

Eine Frage an @Neo: Warum funktioniert das Lua-Skript in V9 nicht mehr?

local Tueren = {}
local Zug = layout:getVehicleGroup(vehicle)

for k, Waggon in ipairs(Zug) do
  table.insert(Tueren, Waggon.animations["Tür vorn"])
  table.insert(Tueren, Waggon.animations["Tür hinten"])
  table.insert(Tueren, Waggon.animations["Tür rechts vorne"])
  table.insert(Tueren, Waggon.animations["Tür rechts hinten"])
end

if not deferredCall then
  vehicle.deceleration = 2
  vehicle.acceleration = 3
  vehicle.targetSpeed = 0
  defer(8, "Tür auf")
elseif deferredCall == "Tür auf" then
  for k, Tuer in ipairs(Tueren) do
    Tuer:play(0, 1)
  end
  defer(10, "Tür zu")
elseif deferredCall == "Tür zu" then
  for k, Tuer in ipairs(Tueren) do
    Tuer:play(1, -1)
  end
  defer(2, "Abfahrt")
elseif deferredCall == "Abfahrt" then
  vehicle.targetSpeed = 50
end

Ich habe es seit V7 im Einsatz, und bisher ohne Probleme.

Walter

Geschrieben

Hallo Walter,

ein wenig mehr Kontext benötige ich. Was funktioniert nicht, gibt es eine Fehlermeldung? Ich welcher Anlage kann ich den Fehler sehen?

Viele Grüße,

Neo

Geschrieben
vor 2 Stunden schrieb Neo:

Was funktioniert nicht, gibt es eine Fehlermeldung? Ich welcher Anlage kann ich den Fehler sehen?

Hallo @Neo,

eine Fehlermeldung gibt es nicht, aber ich kann die Anlage(n) auch nicht als Entwurf hochladen, weil mir V9 dann diese Meldung gibt:

haltestelle4.jpg.1b76db2120a61c8bacc78ff09a75a707.jpg

Aber die Haltestelle ist seit Jahren im Katalog, ich habe vor kurzem auch ein Update für V9 hochgeladen, welches aber noch nicht von Dir freigegeben wurde. Deshalb hänge ich die Anlagen hier mit an, das sind reine Testanlagen, damit ich Funktionen überprüfen kann. Wenn Du Dir die Anlage Combinotest ansiehst, dann fährt da ein Combino, welcher für V9 angepasst wurde. Das Ereignisprotokoll meldet mir zwar an der Haltestelle, dass die Tür aufginge, aber das macht sie eben nicht. Dass es aber bis V8.5 kein Problem gab, das siehst Du in der Anlage Testanlage. Da fahren drei Combino, welche noch nicht auf V9 angepasst wurden.

Aber bei den Combinos habe ich an den bestehenden Animationen nichts geändert, nur die Schalter wurden hinzugefügt. Und die lassen ja eine vorhandene Animation abspielen, da öffnen sich auch die Türen. Warum aber Lua hier streikt, das verstehe ich nicht. Denn am Script wurde gar nichts geändert von mir. Abgesehen davon haben sich beim ersten Aufruf der V8-Testanlage in V9 die Haltestellen verschoben, aber das Problem der Verschiebung ist ja bereits angesprochen worden. Du bist ja der Experte, Du wirst sicher wissen, an was es liegt, dass Lua hier nicht will. Das hofft zumindest

Walter

combinotest.mbp Testanlage.mbp

Geschrieben

Hallo Walter,

wenn ich "Testanlage.mbp" öffne und die Ereignisprotokollierung laufen lasse, erscheint sofort ein Fehler, wenn die Straßenbahn am Gleiskontakt ankommt. Im Ereignis "Zielwechsel 1" werden Beschriftungen angesprochen, die es nicht gibt.

Um den Combino testen zu können, musst du das geänderte Modell erst hochladen.

Viele Grüße,

Neo

Geschrieben
vor einer Stunde schrieb Neo:

Um den Combino testen zu können, musst du das geänderte Modell erst hochladen.

Das habe ich schon gestern gemacht, @Neo:

Teil 1: 82A1C257-128C-4AE8-A9CF-1B0041D473EB
Teil 2: 5EBCF028-13D5-47C4-8781-2BEF0447987B
Teil 3: 13138133-6AA8-4C1B-B8B5-3BB1C6028653
Teil 4: 3EC13D60-E66F-40A1-AE35-2A1F0615737B

Natürlich nur als Entwurf, damit ich eventuelle Fehler noch beseitigen kann, bevor es als Update hochgeladen wird. Die Testanlage.mbp ist eine Kopie einer anderen Testanlage in V8.5, sie sollte nur beweisen, dass das Script funktioniert und die Türen sich öffnen. Die Combinotest.mbp ist die Anlage, in welcher sich die Türen nicht öffnen, es aber auch keine Fehlermeldung gibt. Aber das Protokoll zeigt den Befehl an:

protokol.jpg.eb4e2de5ec580257e160a8d73c5c78e6.jpg

Walter

Geschrieben

Hallo Walter,

deine Entwürfe enthalten keine Tür-Animationen, nur Schalter. Wenn du Bestandsmodelle aktualisieren willst, darfst du diese nicht mit neuen Modellen überschreiben, sondern musst die vorhandenen Modelle direkt über "Bearbeiten" aktualisieren. Nur so bleiben die alten Animationen bestehen.

Viele Grüße,

Neo

Geschrieben

Danke für die Info, @Neo. Ich habe aber keine neuen Modelle erstellt, ich habe nur die Namen der Teile gekürzt, damit ich die Teile als Entwurf hochladen konnte. Denn sonst wäre ja die Katalogdatei überschrieben worden. Aber die anim-Dateien sind die selben, auch der Animationszusatz in der X-Datei ist unverändert. Allerdings mit einer Ausnahme im Modul 1, da habe ich den Lichtschalter für das Fahrlicht bearbeitet, weil das Licht falsch rum geschaltet war. Leider geht das aber nur, wenn man dann alle Variationen entsprechend ändert. Ich habe zur Behebung von Fehlern auch die Original-Sketchup-Dateien verwendet, weil zwei Texturen fehlten und von mir aufgebracht wurden. Und die Variantennamen sind auch unverändert. Alle Dateien wurden dann in den persönlichen Katalog hochgeladen, aber nicht in den Ordner mit den Originaldateien für den Katalog. Denn ich wollte erst mal prüfen, ob jetzt alles ok ist. Warum jetzt keine Animationen da sind, das verstehe ich nun gar nicht. Denn nach meiner Kenntnis werden ja alle Dateien beim hochladen einer X-Datei mitgenommen, und sämtliche Teile wurden ja neu mit altem Inhalt hochgeladen. Es grüßt ein ratloser

Walter

Geschrieben

Wenn du deine vorhandenen Modelle nicht überschrieben hast, hast du doch ein neues Modell im Katalog gespeichert. Animationen stehen nicht mehr in der EV zur Verfügung, wenn diese durch Aktionen gesteuert werden (dafür gibt es jetzt die neue EV-Aktion "Schalter betätigen (integriert)". Animationen gibt es nur noch bei alten Bestandsmodellen, damit vorhandene Anlagen weiter funktionieren. Wenn du ein bestehendes Modell aus <= V8.5 bearbeitest, musst du das Originalmodell bearbeiten und überschreiben, ansonsten gehen die Animationen verloren.

Lösch bitte deine Combino-Testmodelle und aktualisiere direkt deine vorhandenen Modelle. Dann funktionieren auch deine Lua-Skripte und Anlagen wieder.

Viele Grüße,

Neo

Geschrieben
vor 3 Stunden schrieb Neo:

Lösch bitte deine Combino-Testmodelle und aktualisiere direkt deine vorhandenen Modelle. Dann funktionieren auch deine Lua-Skripte und Anlagen wieder.

Das heißt also, dass ich die Texturfehler und die falsche Schaltung nicht mehr beheben kann, denn dazu muss ich zum einen das Sketchupmodell bearbeiten, und für die Lichtschaltung den Anhang in der X-Datei ändern. Oder soll ich das mit V8 ändern, denn da galten ja noch die Animationen?

Walter

Geschrieben

Du kannst die Modelle auch in V9 jederzeit aktualisieren, aber nur, wenn du direkt die Originalmodelle im Katalog bearbeitest.

Geschrieben (bearbeitet)

Hallo @Neo,

irgendwie habe ich das Gefühl, daß hier etwas unklar ist, was "bearbeiten" bedeutet.
Wenn @Klartexter die Textur und die Animation korrigiert und das Originalmodell aus des Katalog unter "Bearbeiten" (Rechtsklick) -> "Variation bearbeiten" (Dialogfenster) das geänderte Modell auswählt und speichert, was passiert dann?  Oder anders gefragt, wo sind die Grenzen von "Bearbeiten" damit das Modell nicht die Kompatibilität zu bestehenden Anlagen verliert?
... so langsam bin ich selber etwas verwirrt...

Gruß
EASY

Bearbeitet von EASY
Geschrieben

Der Weg ist der gleiche wie früher: Rechte Maustaste im Katalog, Bearbeiten und die gleichen 3D-Daten verwenden. Hier hat sich nichts geändert.

Es darf aber kein neues 3D-Modell erstellt und das alte einfach überschrieben werden (Katalog Neu, Speichern unter). Dann gehen alte Daten selbstverständlich verloren.

Viele Grüße,

Neo

Geschrieben
vor einer Stunde schrieb Neo:

Der Weg ist der gleiche wie früher: Rechte Maustaste im Katalog, Bearbeiten und die gleichen 3D-Daten verwenden. Hier hat sich nichts geändert.

Es darf aber kein neues 3D-Modell erstellt und das alte einfach überschrieben werden (Katalog Neu, Speichern unter). Dann gehen alte Daten selbstverständlich verloren.

Ist es denn ein neues Modell, @Neo, wenn ich einen Texturfehler im Modell behebe, und im Animationszusatz in der X-Datei einen Fehler korrigiere? Denn es wird sowohl die Sketchupdatei des Katalogmodells wie auch die Texturen und die anim-Datei verwendet. Lediglich die X-Datei wurde wegen des Lichts angepasst. Im Katalog sind die Teile als Combino-Modul 1 bezeichnet, wobei sich die Zahl auf das jeweilige Modulteil bezieht und entsprechend anders ist. Deswegen habe ich ja meinen Entwurf auch nur als Model 1 usw. bezeichnet, also quasi ein neues Modell erstellt. Das Originalmodell ist davon ja gar nicht betroffen, der Entwurf diente ausschließlich zu Testzwecken.

Aber im quasi Neumodell funktioniert das Luascript für die Türöffnung nicht mehr. Ich darf also davon ausgehen, dass bei neuen Fahrzeugmodellen das Script nicht mehr funktioniert. Das finde ich nicht gut, offenbar muss jetzt jedes Fahrzeug extra mit der Funktion Schalter konfiguriert werden. Schade, bisher fand ich das Programm gut gelungen.

Walter

Geschrieben
vor 8 Minuten schrieb Klartexter:

offenbar muss jetzt jedes Fahrzeug extra mit der Funktion Schalter konfiguriert werden

Das musst du nicht, wenn du Aktionen weglässt, arbeitet dein Modell auch weiterhin mit den Animationen. Es handelt sich dabei aber um eine veraltete Technologie, die nicht mehr empfohlen wird, weil Aktionen zugänglicher für Benutzer sind als Animationen.

Was spricht dagegen, dein Lua-Skript an die neuen Möglichkeiten anzupassen?

Geschrieben

Hallo @Neo,

Meine Interpretation wäre...


@Klartexter hat den Datensatz "Combino-Modul 1" korrigiert und macht:

Originalmodell aus des Katalog unter "Bearbeiten" (Rechtsklick) -> "Variation bearbeiten" (Dialogfenster) und wählt "Combino-Modul 1.x" aus und speichert.
Dann ist das eine "gewöhnliche" Änderung und die Animationen bleiben erhalten.
Wenn vor dem Speichern noch noch Aktionen definiert werden (z.B. "Tür auf"...) bleiben die Animationen bleiben trotzdem erhalten, da es sich um ein Bestandsmodell handelt (z.B. "Tür auf (veraltet)")

Wenn man nun "Katalog Neu" -> "Variation bearbeiten" (Dialogfenster) macht und wählt "Combino-Modul 1.x" aus, dann erscheint beim Speichern ein Dialogfenster ob der bestehende Datensatz überschrieben werden soll. Wenn dies bestätigt wird, ist es kein "Bestandsmodell" mehr, sondern ein Modell im V9.
Werden vor dem Speichern keine Aktionen festgelegt, dann bleiben die Animationen erhalten (ist von Dir nicht erwünscht, da Du langfristig gesehen von den Animationen wegkommen und nur noch mit Aktionen arbeiten möchtest)
Werden Aktionen festgelegt (z.B. "Tür auf"...), dann gibt es keinen Zugriff mehr auf die entsprechenden Animationen. 

Ist diese Interpretation richtig?

Gruß
EASY 

Geschrieben

Hallo EASY,

deine Interpretation ist korrekt, solange eine Änderung immer vom bereits hochgeladenen Modell ausgeht, gibt es keine Probleme.

Viele Grüße,

Neo

Geschrieben (bearbeitet)

Hallo,

vor 2 Stunden schrieb Klartexter:

Ist es denn ein neues Modell, Neo, wenn ich einen Texturfehler im Modell behebe, und im Animationszusatz in der X-Datei einen Fehler korrigiere?

... nein, es ist eine Korrektur. Ich hoffe mein Beitrag der "Interpretation" hilft Die weiter, wie Du vorgehen solltest...

Gruß
EASY
 

Bearbeitet von EASY
Geschrieben

Hallo @Neo,

ich bin jetzt auch leicht verwirrt. Gibt es schon eine neue Anleitung, wie ich nach der V9-Norm meine Modelle incl. Licht und Aktionen in Blender gestalten muss?
Und was muss ich beim Exportieren beachten?

Viele Grüße 
Frank

Geschrieben

Hallo Frank,

alle Informationen findest du im Modellbau-Wiki.

Hier geht es um ein spezielles Problem von Klartexter, der ein Lua-Skript verwendet, dass auf Animationen spezialisiert ist. Da in zukünftigen Modellen Animationen aber in den Hintergrund rücken und nicht mehr direkt per EV angesprochen werden, muss das Lua-Skript ebenfalls angepasst werden. Mit dem normalen Modellbau in V9 hat das nicht viel zu tun.

Viele Grüße,

Neo

Geschrieben
vor 4 Stunden schrieb Neo:

Was spricht dagegen, dein Lua-Skript an die neuen Möglichkeiten anzupassen?

Zum einen die fehlenden Kenntnisse sowohl bei Lua wie auch bei den Neuerungen von V9. Bei letzterem fehlen einfach noch Tutorials, wie sie @Goetz immer sehr gut erstellt. Denn wenn ich die EV aufrufe, und etwas mit den Schaltern bewerkstelligen will, dann verstehe ich nur noch Bahnhof. Ein einfaches Beispiel:

schalter.thumb.jpg.4015d9d74bcae8d427767ed4c8374e7a.jpg

Beim Objekt werden mir alle Fahrzeugteile eines Combinos angeboten, aber das Augsburger Modell hat schon mal 7 Teile. Wenn ich 10 Combinos auf einer Anlage einsetze, dann wird das schon ein ganzer Roman. Bisher war es so, dass die Aktion Zug betritt ein Gleis das Luascript ausgelöst hat. Aber wenn jetzt mit Schalter gearbeitet wird, dann muss ich jedes Fahrzeugteil einzeln als Objekt eingeben und den entsprechenden Schalter dazu benennen. Wo da ein Vorteil liegen soll weiß ich nicht. WIKI hilft mir da auch nicht weiter, da die Schalter dort noch keine Rolle spielen.

Ich bin mittlerweile 74, und meine berufliche Selbstständigkeit führt auch dazu, dass ich noch kein geruhsames Rentnerdasein lebe. Von daher fehlt mir auch die Zeit, mich beispielsweise intensiv mit Lua zu beschäftigen. Mein Motto für Tätigkeiten war immer: So einfach wie möglich. Ich bin nun mal kein IT-Freak, die Kenntnisse muss ich mir mehr oder weniger mühsam erarbeiten. Das nur zum besseren Verständnis.

Walter

Geschrieben
vor 57 Minuten schrieb Klartexter:

dann muss ich jedes Fahrzeugteil einzeln als Objekt eingeben

Du kannst in einer Wiederholung "Alle Fahrzeuge in einem Zugverband" ansprechen.
Den Zugverband identifizierst du über das auslösende Fahrzeug:

WiederholungZugverband.jpg.9e40585928137371cc2930a1cdeddbb3.jpg

Viele Grüße
Götz

Geschrieben

Hallo @Klartexter

Das folgende Beispiel soll dir verdeutlichen, wie es funktioniert:

Alle Türen öffnen.mbp

Die Aktion ist in Skriptform, weil ich per Bedingung prüfen muss, ob im jeweiligen Objekt die Tür existiert, die ich bedienen will.
In der grafischen Bedingung kann ich meines Wissens derzeit nicht prüfen, ob ein bestimmter Schalter im Objekt vorhanden ist.

Geschrieben
vor einer Stunde schrieb Klartexter:

Zum einen die fehlenden Kenntnisse sowohl bei Lua

Ich bin bisher davon ausgegangen, dass das Lua-Skript von dir selber stammt. Wenn dem nicht so ist, erklärt das natürlich einiges.

Schalter steuerst du genauso wie Animationen in der EV, dafür braucht es kein IT-Studium. Der Vorteil von Schaltern liegt darin, dass hinter einem Schalter mehrere Logiken liegen können, wie z.B. eine Animation, ein Licht, ein Geräusch oder ein Partikeleffekt. Der Nutzer muss sich darüber keine Gedanken mehr machen und kann die EV somit schlanker halten (anstatt alles einzeln anzusteuern).

Viele Grüße,

Neo

Geschrieben

Hallo Walter @Klartexter,

Ihr dreht Euch hier ziemlich im Kreis, deshalb zurück zu Deiner Ausgangsfrage

Am 16.11.2024 um 22:07 schrieb Klartexter:

Warum funktioniert das Lua-Skript in V9 nicht mehr?

Antwort: Weil Du unbeabsichtigt ein reines V9-Modell des Combino erzeugt hast, was Du ja gar nicht wolltest. Wenn Du den Combino aktualisierst wie von Neo beschrieben wird auch das Skript funktionieren.

Deshalb nur der Vollständigkeit halber: Bei einem reinen V9-Modell funktioniert das Skript wegen der Zeilen

Tuer:play(0, 1)
Tuer:play(1, -1)

nicht, weil reine V9-Modelle keine Animationen haben, die man abspielen kann (play).

Beste Grüße

Phrontistes

Geschrieben

Erst einmal danke an @Goetz und an @Neo. Das Luascript ist schon zum Teil von mir, @Neo, der andere Teil stammt aus der Umwandlung im MBS. Aber meine Kenntnisse sind da noch viel zu gering, um mich an größere Abläufe zu wagen. Ein besonderer Dank geht an @Goetz für das Beispiel, solche Dinge helfen mir zum besseren Verstehen, und da habe ich gleich noch eine Frage zu Lua:

if Wdh.actions["Tür vorn"] ~= nil then
  Wdh.actions["Tür vorn"].state = 0
  Wdh.actions["Tür vorn"].autoMode = ""
end

if Wdh.actions["Tür hinten"] ~= nil then
  Wdh.actions["Tür hinten"].state = 0
  Wdh.actions["Tür hinten"].autoMode = ""
end

Die zweite Zeile beschreibt nach meinem Verständnis die Einstellung der Animation, also 0 für geschlossen.  In der dritten Zeile ist bei autoMode kein Eintrag. Gehe ich da recht in der Annahme, dass es übersetzt bedeutet, dass dies die Standardeinstellung für den Schalter  ist? Theoretisch könnte ich da also auch festlegen, dass sich die Tür nur am Tag öffnet - oder liege ich hier daneben? Mag vielleicht eine dumme Frage sein, aber ich versuche eben, Lua auch zu verstehen. Daher auch ein Dank an @Phrontistes für den Hinweis zu play.

Walter

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto besitzen, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen.

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...