|
7 registered members (3run, miwok, AndrewAMD, Quad, TipmyPip, fairtrader, 1 invisible),
637
guests, and 2
spiders. |
|
Key:
Admin,
Global Mod,
Mod
|
|
|
Re: Ideen wie man einen Zug auf Schienen halten ka
[Re: Alexander]
#110694
02/12/07 19:22
02/12/07 19:22
|
Joined: Jul 2001
Posts: 6,904
HeelX
Senior Expert
|
Senior Expert
Joined: Jul 2001
Posts: 6,904
|
Also diese Sensorgeschichte/Textur.. usw. ist rechenzeitaufwendig, äußerst unpräzise und Fehleranfällig. Von wegen "ein Pfadsystem ist zu aufwändig" liegt wohl an einer gewissen Faulheit, ohne jetzt irgendwen angreifen zu wollen. Du willst garantiert nicht einen Zug mit mehreren Wagons mit polygonaler Kollisionserkennung über die map kutschieren lassen. Irre! Die ganzen Sachen sollten passable sein.
Es ist doch so: Gleise werden Stückweise verlegt. Also ist eine Strecke aus linearen Einzelteilen zusammengesetzt. Das heißt du weißt pro Gleis Anfang und Ende. Wenn du weißt auf welchem Gleis sich die Lok befindet, kannst du zurückverfolgen auf welchen Gleisen sich die Wagons befinden. Durch Wagonlänge und Start/End-Punkte weißt du auch IMMER wo sich die Rad-Teile des Waggons befinden (die sich, weil der Wagon ja auch in einer Kurve stehen kann) immer ein wenig anpassen. Das heißt: Startet der Wagon am Origin, musst du über eine Vektor/Winkel berechnung dich NUR an der Position deines Vorgängers orientieren (oder anders herum). Die Lok orientiert sich an der Position ihrer Vorderräder (oder anders herum). Der Vorteil liegt auf der Hand: du kannst den Zug passable über die Schienen bewegen (performance) und du musst nur dafür sorgen dass sich die Lok korrekt vorwärts bewegt. Die Wagons bewegen sich nicht selbst sondern die Position der Lok ist Anhaltspunkt für eine Routine, die die Position der Wagons rekursiv berechnet. Du gehst vom Origin des Nachfolgers solange das Gleis entlang, bist du als Luftlinie die Länge des/eines Wagons erreicht hast. Dort ist dann der Origin des Vorgängers zu setzen. Luftlinie deshalb, weil der Wagon auch über 2 Gleise stehen kann, die eine Kurve beschreiben.
Das ist definitiv die schnellste Lösung. Alles andere ist Unsinn, weil das im Endeffekt mehr Arbeit bedeutet: nicht beim Schreiben, sondern Arbeit beim Ausmerzen von Fehlern im code und im level Design aufgrund gewisser Anomalitäten die den code unbrauchbar machen. Eine Path-Lösung (wie gesagt das reicht wenn du die Gleise nacheinander mit ihren Start/Endpunkten registrierst) ist die kostengünstigste Variante!
Last edited by HeelX; 02/12/07 19:24.
|
|
|
Re: Ideen wie man einen Zug auf Schienen halten ka
[Re: HeelX]
#110695
02/12/07 19:35
02/12/07 19:35
|
Joined: Jun 2005
Posts: 152 Weiterstadt, Germany
Alexander
OP
Member
|
OP
Member
Joined: Jun 2005
Posts: 152
Weiterstadt, Germany
|
Was du beschreibst, haben wir ja zum Teil auch vor. Es wird ja nur am 1. Drehgestellt in Fahrtrichtung eine Polygongenaue abfrage gemacht, der Rest der Wagen orientiert sich ja dann an diesen Werten. Mach alles in allem 2 trace pro Zug. Ich finde damit kann man eigentlich noch leben. Wenn man jetzt auf einen dynamischen Fahrplan verzichtet, bleibt das alles ja noch im Rahmen, oder sehe ich das falsch? Was für Unrgelmäßigkeiten sollten / könnten denn deiner Meinung auftauchen, wodurch der Script unbrauchbar wird? Darunter kann ich mir im Moment nichts genaues vorstellen. Weswegen ist denn die Geschichte mit den 3 Sensoren ungenau? Mit den Texturen, das war wirklich ungenau, muss ich dir zustimmen. 
Gruß Alex =)
|
|
|
Re: Ideen wie man einen Zug auf Schienen halten ka
[Re: Alexander]
#110696
02/13/07 12:56
02/13/07 12:56
|
Joined: Jan 2007
Posts: 2,247 Deutsch Niedersachsen
Puppeteer
Expert
|
Expert
Joined: Jan 2007
Posts: 2,247
Deutsch Niedersachsen
|
Dass was heelx beschrieben hat war ja auch meine erste Idee... fand sie nur ein bischen zu langweilig um es zu scripten  Und ich bin mittlerweile ein sehr großer Fan von Dynamischen Scripten, die ihre Lösung flexibel finden ähnlich NNs und so immer eine Antwort parat haben und nicht sagen "kenn ich nicht, will ich nicht"  Omega
|
|
|
Re: Ideen wie man einen Zug auf Schienen halten ka
[Re: Puppeteer]
#110697
02/13/07 14:21
02/13/07 14:21
|
Joined: Jun 2005
Posts: 152 Weiterstadt, Germany
Alexander
OP
Member
|
OP
Member
Joined: Jun 2005
Posts: 152
Weiterstadt, Germany
|
Da gebe ich dir recht. Ich finde dynamische Script in der Regel auch besser. Sie können auf irgendetwas einfach reagieren. Wie gesagt, ich kann mir im Moment nicht vorstellen, wann der Script überfordert sein sollte und seine Arbeit verweigert. @derOmega: Wie hast du dir das mit der Drehung denn gedacht? Du hast in deinem letzten Beitrag so eine Andeutung gemacht. 
Gruß Alex =)
|
|
|
Re: Ideen wie man einen Zug auf Schienen halten ka
[Re: Alexander]
#110698
02/13/07 15:24
02/13/07 15:24
|
Joined: Jan 2007
Posts: 2,247 Deutsch Niedersachsen
Puppeteer
Expert
|
Expert
Joined: Jan 2007
Posts: 2,247
Deutsch Niedersachsen
|
Ja, ganz anders als du  Dafür muss man aber ein bischen Trigonometrie können  wenn du die Distanz Rechts und Links weißt, kannst du haargenau errechnen wie der Zug gedreht werden muss, damit er perfekt auf den Schienen liegt  Bsp: Die Distanz rechts und links ist gleich, also liegt der Zug Richtig auf der Strecke  Man müsste also: (Distanz links+Distanz Rechts)/2=der Unterschied (bevor ihr sagt stimmt nicht denkt noch mal genau drüber nach  ) _____ Die Distanz vom Zugmittelpunkt zu der Stelle an der du Tracest |xxx/ |xx/ |x/ Hypotenuse  |/ Der Unterschied X = nix In diesem Dreieck müssen wir jetzt mit trigonometrie den ganz rechten Winkel ausrechnen (der an der Hypotenuse) Und schon haben wir den Pan den wir Addieren bzw. Subtraieren müssen, dass ist davon Abhängig ob welche Tracedistanz größer ist  Ich haoff es ist verständlich Omega
Last edited by derOmega; 02/13/07 15:26.
|
|
|
Re: Ideen wie man einen Zug auf Schienen halten ka
[Re: Puppeteer]
#110699
02/13/07 15:30
02/13/07 15:30
|
Joined: Jun 2005
Posts: 152 Weiterstadt, Germany
Alexander
OP
Member
|
OP
Member
Joined: Jun 2005
Posts: 152
Weiterstadt, Germany
|
Okay, ich habe einigermaßen verstanden was du meinst. Jetzt stellt sich mir allerdings eine Frage. Du würdest also einfach bei Pan addieren oder subtrahieren? Wäre die Drehung an sich dann aber nicht auch ruckartig? Die Kurve, die der Zug fährt, ist ja auch nicht 100% rund, sondern muss ja gezwungenermaßen etwas eckig nachgebaut werden.
Gruß Alex =)
|
|
|
Re: Ideen wie man einen Zug auf Schienen halten ka
[Re: Puppeteer]
#110701
02/13/07 15:48
02/13/07 15:48
|
Joined: Jun 2005
Posts: 152 Weiterstadt, Germany
Alexander
OP
Member
|
OP
Member
Joined: Jun 2005
Posts: 152
Weiterstadt, Germany
|
Ich kann mir zwar nicht vorstellen wodurch das so sanft laufen soll, aber man kann es ja erst mal probieren, sonst habe ich noch eine Formel gefunden. Wenn wir ja den Winkel, die Geschwindigkeiten haben, könnte man mit der Formel, Code:
Winkelgeschwindigkeit = Kreisbahnradius / Geschwindigkeit
das ganze umsetzen. Da ich deine Idee mathematisch allerdings nicht umsetzen kann, könntest du mir das freundlicherweise in einen Script verfassen? 
Gruß Alex =)
|
|
|
Re: Ideen wie man einen Zug auf Schienen halten ka
[Re: Alexander]
#110702
02/13/07 15:51
02/13/07 15:51
|
Joined: Jan 2007
Posts: 2,247 Deutsch Niedersachsen
Puppeteer
Expert
|
Expert
Joined: Jan 2007
Posts: 2,247
Deutsch Niedersachsen
|
Ja... Arbeite ja schon... Wichtig ist anhand der Geschwindigkeit des Zuges müssen wir die Sensordistanz festlegen sonst klappt dass nicht  Und zwar immer so weit weg, wie der zug bis zum nächsten Frame fährt  Omega Einen augenblick...
|
|
|
Re: Ideen wie man einen Zug auf Schienen halten ka
[Re: Puppeteer]
#110703
02/13/07 16:10
02/13/07 16:10
|
Joined: Jun 2006
Posts: 2,640 Earth
Germanunkol
Expert
|
Expert
Joined: Jun 2006
Posts: 2,640
Earth
|
"In diesem Dreieck müssen wir jetzt mit trigonometrie den ganz rechten Winkel ausrechnen" Genialer satz  Ich hab ihn ausgerechnet! ich weis es!! der rechte winkel ist 90 grad  Ich war erster!! ... nur... wozu trig um den rechten winkel auszurechnen? ^^ ne, sry...^^ Könnte man denn das mit den wagons irgendwie mit constraints machen? physik und so? so dass die lok wirklich an den wagen zieht?? Ich weis nicht was du vor hast, für ein Wirtschafts simulationsspiel mit vielen strecken ist das natürlich quatsch, für einen zug-fahr-simulator wär das vielleicht realitisch. Ich hab aber noch nie was mit constraints gemacht, also... macht das net nur weil ich die idee hatte^^ Es würd vielleicht am ende nur realistischer wirken... Und würde mehr spass amchen zu scripten 
~"I never let school interfere with my education"~ -Mark Twain
|
|
|
|