-
Gesamte Inhalte
3359 -
Benutzer seit
-
Letzter Besuch
Alle erstellten Inhalte von EASY
-
Hallo kokos, ... wenn es sich um eine "einfache Drehung" um die Z-Achse handelt (keine geneigte Z-Achse) geht es mit einem Schalter und z.B. einer Pyramide mit dem Ereignis "Schalter wird betätigt" und als Aktion in Lua die Zeile... $("Pyramide").transformation:rotateZ(math.rad(30)) ... ganz ohne die Quaternion. Gruß EASY
-
Hallo, ... da der Spieltrieb mit mir durchgegangen ist, wäre es auch was für die "virtuelle Spielwiese"... aber es sind immen noch meine ersten Versuche in MBS-V5. Einiges an Versuchen zusammengefasst, ist ein (kleiner) Schattenbahnhof dabei rausgekommen. Es stehen für einen Personenzug und einen Güterzug jeweils 10 Wagons und 2 Loks zur Verfügung. Es werden je Zug 4 bis 10 Wagons und eine Lok zufällig ausgewäht und auf die Strecke gebracht. P.S. Das Problem mit den in y-Richtung ausgerichteten Wagons hat eine Lösung gefunden. Es können also alle Wagons verwendet werden. Anmerkung: Wenn es denn mal möglich sein sollte, dass im MBS auch Arrays/Felder in Variablen zugelassen werden, (Lua kann sich keine Variablenänderungen beim Schließen des MBS-Projektes merken), sollte es auch möglich sein, die Auswahl an Wagons und Loks durch einfaches Ziehen aus dem Katalog individuell zu gestalten. P.S. Die gesamte Steuerung des Schattenbahnhofs beruht auf einer einzigen Ereignisdefinition... (... das 2. Ereignis ist Start-Stop). ... dass es ein etwas interaktiver Prozess war, sieht man etwas am Index ...(04) des Projektnamens... Schattenbahnhof04.mbp Gruß EASY
- 56 Antworten
-
- 15
-
-
Hallo, ... ich habe es kurz versucht mit einer kurzen und einer langen Schranke... "Schranke-kurz.anim" _AnimBarrier;0;25 "Schranke-lang.anim" _AnimBarrier;0;50 "Schranke-kurz" und "Schranke-lang" in ein Modell in den Katalog als Vatiation. "Schranke-kurz" als Standard. ... beide aif die Platte... ... und wenn ein Lok in den "Fangbereich" kommt, werden beide Animationen bis zum Ende abgespielt, und "Schranke-lang" schließt langsamer. Anmerkung: MBS-V5. in der .zip sind die .blend, .anim, .x Dateien (wenn es jemand selbst versuchen möchte in den Katalog zu bringen...) Schranke.zip ...irgendwie ist mir in Erinnerung, dass für LOD-Stufen die Animation vom Grundmodell genommen wird. ...und ein Hinweis von Neo, dass bei Varianten die Animationen "ähnlich" sein sollten... also nicht eine rotiert und die andere verschiebt ... evtl. Problem, wenn Animation läuft und Variante wird aufgerufen... alles etwas so im Halbdunkel an Erinnerung... Gruß EASY
-
Hallo @Neo Warum gibt das MBS bei der Abfrage der Rotation eines Objekes das Quaternion 0,0,0,-1 aus und nicht 0,0,0,1 ? (Bei 0° in allen Achsen). Hintergrund: Bei meinen Versuchen mit der Rotation ist mir gestern ein Objekt im wahrsten Sinne des Wortes "in Nirwana" verschwunden. Bei dem Versuch der Umwandlung einer Matrix in ein Quaternion hatte ich das Ergebnis 0,0,0,1 was eigentlich dem enspricht, was ich als 0° in alle Richtungen bezeichnen würde. ... also habe ich folgenden Versuch gemacht... ... ein Objekt irgendwie verdreht... ... und dem Schalter dies mit auf den Weg gegeben... $("Lineal 1:1 30 m").transformation.rotation={0,0,0,1} q=$("Lineal 1:1 30 m").transformation.rotation print(q.x,q.y,q.z,q.w) ...wenn ich den Schalter betätige sieht es eigentlich ganz gut aus... ... das ausgelesene Quaternion sieht so aus...(???) ... und wenn ich den Schalter dann noch einmal betätige dann dies... ... das ausgelesene Quaternion ist ??????? ... und das Objekt hat einen Quantenzustand angenommen... ... und ist aus diesem auch nicht wieder in die Realität zurückholbar... Quaternion01.mbp ... wenn ich also das Objekt in der Rotation zurücksetzen möchte muß ich... $("Lineal 1:1 30 m").transformation.rotation={0,0,0,-1} ... zuweisen... warum??? Gruß EASY
-
Hallo @Neo ... wenn bei " deferredCall" die gleiche Beschreibung wie bei "defer" stehen würde, wäre die Sache vielleicht klarer dargestellt. (und eindeutig, dass beides zusammengehört) Ich habe auch erst nach der Beschreibung bei "defer" verstanden, wie " deferredCall" einzusetzen ist. Gruß EASY
-
-
Hallo, ... was Neo hier beschreibt, hat mich doch etwas neugierig gemacht... Schritt für Schritt, erste Versuche zu Punkt 1... ... ergibt etwas erweitert die 3 Richtungsvektoren der Drehung aus dem Quaterion von "3D Zeiger". Wenn nun noch die Abstände im Modell vom Drehpunkt bekannt sind (Dimensionen in x,y,z), können die Richtungsvektoren entsprechend skaliert werden und die Koordinaten des Drehpunktes noch dazugerechnet ergibt die Koordinaten für vorne, hinten, links, recht, oben, unten... diese Koordinaten werden von "Markierung..." übernommen (laufender Timer)... ... wenn man bei "Timer läuft ab" aus... pos1={} pos1.x=y.x*l+lpos.x pos1.y=y.y*l+lpos.y pos1.z=y.z*l+lpos.z pos2={} pos2.x=-y.x*l+lpos.x pos2.y=-y.y*l+lpos.y pos2.z=-y.z*l+lpos.z ... dies macht... pos1={} pos1.x=x.x*l+lpos.x pos1.y=x.y*l+lpos.y pos1.z=x.z*l+lpos.z pos2={} pos2.x=-x.x*l+lpos.x pos2.y=-x.y*l+lpos.y pos2.z=-x.z*l+lpos.z ... folgen die beiden Markierungen den Spitzen von "3D Zeiger in x-Richtung"... Richtungsvektor-02.mbp P.S. den "3D Zeiger" gibt es als Entwurf unter 66659D78-7050-469C-89B9-511FA127357B Gruß EASY
-
Hallo Henry, ... kann ich nicht so ganz nachvollziehen... ich habe alle Kontakte noch mit "...innen" und "...aussen" versehen, damit man besser differenzieren kann...und die Ereignisse deaktiviert. Wenn ich "Köf-innen" eine Runde laufen lasse zeigt das Ereignisprotokoll folgendes: und bei "Köf-aussen" dies.. ... es gibt keinen Unterschied ob es nur der reine Gleiskontakt (aus dem Katalog) ist oder der Gleiskontakt in ein Funktionsmodell (Signal) mit integriert ist. P.S. wer sich wundert, warum jedes Ereignis 3-fach auftaucht (es gibt 3 Optionen "betreten", "mitte", "verlassen") V5-HemrysDoppelgleis1a.mbp so verstehe ich die Überschrift nicht so ganz... durch das setzen eines Gleiskontaktes wird ein Gleis nicht zum "Kontaktgleis"... sorry... etwas verwirrt... EASY
-
Hallo Neo, wäre es möglich das Ersetzen im Lua Editor noch auf "Auswahl" ("markiert") zu begrenzen? Gruß EASY
-
Kopfbahnhof mit nur zwei Ereignissen
EASY antwortete auf Roter Brummers Thema in Anleitungen und Tutorials
Hallo Brummi, ... erste Lua-Versuche ()... Gruß EASY -
Hallo, danke für den Zuspruch. ... den Schattenbahnhof hatte ich auch schon etwas im Hinterkopf. Da nicht sichtbar, bietet sich da natürlich immer die Gelegenheit Dinge zu tun, die man in der Öffentlichkeit nie tun würde... ... (natürlich aus rein technischer sicht)... Gruß EASY
-
Hallo, angeregt durch den "Zufallsgenerator" von Roter Brummer, hat es mich interessiert, wie man einen Tausch von Objekten unterschiedlicher Längen machen kann. Mein Ausgangspunkt ist ein Zug mit 5 Wagons, deren Reihenfolge ich tauschen wollte... ... bei den bisherigen Lösungen zum "Zufallsgenerator" wurde mit fixen Koordinaten gearbeitet, die getauscht wurden... bei unterschiedlich langen Objekten kann dies zu Überlappungen oder Lücken führen... ... also dachte ich mir, dass ich die Mittelpunktkoordinaten aus einer durchmischen Wagonreihe aus den Längen der einzelnen Wagons (ausgehend von der Position der Lok) herleite pos=$("L11").transformation.position l=$("L11").length/2 pos.x=pos.x-l for i=1,#ObjektListe do l=ObjektListe[t[i].pos].length/2 pos.x=pos.x-l ObjektListe[t[i].pos].transformation.position=pos pos.x=pos.x-l end und hatte dann dieses Ergebnis... ...so kamen mir erste Zweifel an der Methode... aber die Mathematik dahinter ist für so einen Irrtum zu einfach... ...der "T(r)ick" besteht darin, dass die Wagons immer noch auf den Gleisen stehen... wird ein kleiner Wagon gegen einen größeren getauscht, so drängelt er sich zwischenrein und da das MBS versucht eine Verbindung zur Reihe herzustellen, so wird der Zugverband vor und hinter dem Wagon verschoben... und bei groß gegen klein Tausch kann so eine Lücke entstehen...(...Lücke zu groß um einzurasten)... ... bevor ich die Wagons also neu setze müssen sie vom Gleis genommen... -- Wagons neben das Gleis setzen for i=1,#ObjektListe do pos=ObjektListe[i].transformation.position pos.y=pos.y+3 ObjektListe[i].transformation.position=pos end und wieder der Reihe nach auf das Gleis gesetzt werden...... da die Lok nicht verschoben wird, und als Referenz dient, muß für das Zurücksetzen die y-Koordinate nicht (zurück) korrigiert werden. ... dann geht es so, wie ich es mir vorgestellt habe... Wagen-Tauschen02.mbp P.S. Funktioniert nur, wenn der Zug in x-Richtung steht... ... aber dafür auch während der Zug fährt... Gruß EASY
-
Hallo Goetz, ... gibt es bei Methode 2 auch ein [theoretisch] "Mist!!!" oder könnte man auf die Möglichkeit auf Methode 1 verzichten? Gruß EASY
-
Hallo Goetz, ... wenn man schon zitiert, sollte man auch (noch einmal) alles lesen was da noch so alles steht...ich hatte mich nur auf das Skript konzentriert ... ... mit der darüberliegenden Erklärung ist der Faden wieder da... Gruß EASY
-
Hallo Goetz, ... die Lösung ist (in positiven sinne gemeint) typisch für Dich ... ich kann nur nicht so ganz nachvollziehen, wie diese Bedingung (garantiert) erfüllt ist... Gruß EASY
-
Hallo @Neo hast du dafür ein konkretes Beispiel? Für den eigentlichen Warentransport hat die Grundposition keine Bedeutung, d.h. der Kran kann aus jeder Position heraus jede andere valide Position ansteuern, ein Reset ist dafür nicht notwendig (ein Reset dient eher dazu, eine aktuelle Operation abzubrechen). ... da mußte ich erst noch etwas in mich gehen, wie ich Dir das erklären soll... Funktional ist es ohne Bedeutung... für mich hat es mehr optische Gründe. Wenn z.B. Ein Güterzug beladen wird und das letzte Ladegut ist gesetzt, dann finde ich es einfach nicht "schön" wenn der Zug dann gleich losfährt. Ich lasse da gerne den Kran in seine Grundposition fahren und dann erst den Zug in Bewegung setzen... sieht einfach nicht so nach "schnell weg hier" / "gehetzt") aus. So ist der Reset für mich weniger ein Abbruch sondern ein Abschluß einer Operation. Bei meinem letzten Versuch mit dem Taster ist mir ein weiteres Beispiel eingefallen, wo es durchaus Sinn machen könnte, wenn das Objekt das Ende der "Definitionsanimation" (die im Eigenschaftsfenster nicht als Animation gelistet werden) melden würde... wenn eine Schranke die über _AnimBarrier / _AnimBarrierClosed melden würde "Animation fertig" wäre die Steuerung z.B. einer erlaubten Weiterfahrt (Schranke ist [ganz] oben) evtl. einfacher... Gruß EASY
-
Besteht Interesse an einem Lua-Tutorial?
EASY antwortete auf Goetzs Thema in Allgemeine Diskussionen
Hallo, ob es wirklich so ist, weiß ich nicht... meine Überlegung dazu ist folgende... table.insert ohne Indexangabe fügt den Eintrag in einer fortlaufenden Tabelle (ohne Lücken) am Ende der Tabelle ein. Ende der Tabelle ist da, wo es mit nil (kein weiterer Eintrag) weitergeht. So gesehen trifft table.insert ohne Index bei einer Tabelle mit Lücken auf mehr als ein Ende (nil) und kann es sich sozusagen aussuchen wo der Eintrag hin könnte. Gruß EASY -
Hallo Goetz, ... mußt Du Lua nur noch das Schreiben beibringen... dann geht es als Einzeiler... Gruß EASY
-
Hallo, Andy hat mich mit seiner "Triggertaster" auf die Idee gebracht mal zu versuchen ob man irgendwie auch eine Verzögerung beim Schalten hinbekommen könnte. Ich weiß, es geht auch mit einer "verzögerten Aktion" (einfacher)... aber Ihr wisst ja... Standard ist nicht so mein Ding Ich habe dem Taster noch eine zweite Animation mit auf den Weg gegeben... _AnimSwitch;0;1;NoAutoPlay;NoLoop -> die eigentliche Animation der Taste... sie ist nur in der .anim definiert und macht nichts! Anzeig;2;26;NoAutoPlay;NoLoop -> die Animation läßt einen grünen Balken von links nach rechts laufen. Meine Idee war nun, daß der Taster seine eigene Animation "Anzeig" aufruft und und ich diese auswerte. So entsteht eine Verzögerung um die Laufzeit der Animation... ... so startet und stoppt die Lok verzögert mit der Betätigung des Tasters. P.S. der Triggerpunkt ist das Ende der Animation... wer also einen nervösen Klickfinger hat, bei dem passiert nicht viel... TasterVerzoegert01.mbp P.S. der Taster ist unter 5BF29487-E5EC-4B67-9EA6-F48019C2FA00 als Entwurf hochgeladen... p.PS. ... so etwas ist eine nette Abwechslung zum Quaternion... das leider nicht ganz so einfach im Umgang ist Gruß EASY
-
Hallo Andy, ... da muß ich Deine Hoffnung arg trüben... das Quaterion und ich wollen nicht so richtig miteinander... so wäre mein erster Ansatz auch nur gewesen, den "Hängewinkel" eisern auf Null zu halten auch wenn dies nicht für alle Fälle die Lösung bietet. Momentan ist die Kurzbeschreibung von Neo noch eine Bahnhofsansage die mir zwar das Ziel ansagt und daß der Zug eventuell auf Gleis 2 abfährt aber nicht welcher Zug zu welcher Zeit.... Als ich mich zuletzt mit der Rotation beschäftigt habe, hat mir Neo auch was von einer "Rotationsmatrix" durchgesagt und da stand ich auch irgendwo auf dem Bahnhof... habe es damals hinbekommen (auch wenn es "nur" ein [statisches] "zeige auf" war.)... es besteht also noch Hoffnung... ich habe bisher nur noch keine sanfte Einführung in die (mathematische) Betrachtung zum Umgang mit dem Quaterion gefunden... bin eben kein (studierter) Mathematiker... Gruß EASY
-
Hallo Neo, ... ich manchmal auch... ... da ich (gelegentlich) etwas ungeduldig bin, schreibe ich erst einmal code und überlege mir dann wo ich was kommentiere... und da brauche ich keine Vorschläge, was ich nun eingeben könnte... sondern empfinde dies als störend. Gruß EASY
-
Hallo Neo, das hier ist noch nicht mit drin im neuen Update 5.0.4.0 ? Gruß EASY
-
Hallo Andy, ... klingt so etwas nach Plagiat... ... ich arbeite über Streichlisten und es gibt den Unterschied, dass es immer nur der letzte Würfel ist, der ggf. getauscht werden muss... Gruß EASY
-
Hallo, ... hat mich natürlich auch interessiert... mein Lösungsansatz beruht darauf, dass jeder der 5 Würfel 5 Positionen einnehmen kann aber nur 4 einnehmen darf, da auf jeden Fall die Position getauscht werden soll. Jeder gesetzte Würfel schränkt die Möglichkeiten der verbliebenen Würfel ein. Bei 5 Würfel und 4 Positionen je Würfel, kann es sein, dass für dem letzten Würfel keine neue Position mehr überig bleibt. In diesem Fall mit einem beliebigen anderen Würfel tauschen... (die hintere Reihe im MBS-Projekt ist die alte Position...) ... ist alles in Lua Wuerfeln-4.mbp Gruß EASY
-
Hallo Andy, ... habe mich früher mal noch mit das Drehen über die Schnittstelle beschäftigt... etwas soll auf etwas anderes zeigen... ein kleiner Auszug aus der damaligen Betrachtung... ... mit der Erkenntnis... manche Möglichkeit "macht keinen Sinn"... Gruß EASY