autos\ eisenbahn
Übersicht

judosBetreff: autos\ eisenbahn |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hey mal eine sehr komplizierte Frage :
wie kann man einen Zug auf einem gleis halten wenn man z.b. im c4d die gesamte strecke entworfen hat ? oder wie geht es am einfachsten ? genau gleich bei den autos wie könnte man eine function programmieren, der man nur noch angeben muss in welche richtung,wie schnell und wann es abbiegen soll ??? grüsse judos |
||
![]() |
Vertex |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mit NURBS ![]() Wo wir gerade beim Thema sind, wie kann man DOOM 4 porgrammieren? |
||
vertex.dreamfall.at | GitHub |
konstantin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
MakeGame( "Doom 4" ) | ||
Darren |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
also ich würde des mit waypointslösen. dazu solltest du dir einen editor schreiben | ||
MFG Darren |
![]() |
Lord_Vader |
![]() Antworten mit Zitat ![]() |
---|---|---|
er kann auch einfach childs setzen und die bestimmt benennen und dann weglöschen, wenn er die waypoints eingespeichert hat... | ||
judos |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
könnte man nicht fast wie bei einer magnetbahn einfach eine schiene in der mitte erstellen, den wagen verschieben und auf kollision mit der schiene überprüfen ? bei einer kollision sollte sich der wagen dann einfach drehen sofern das möglich ist... was meint ihr dazu ??? | ||
konstantin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
probiers doch einfach aus. verdammt. | ||
judos |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
stopword alu,"alle Fluchwörter" | ||
![]() |
Ayman |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich glaube auch die Idee mit den Waypoints ist am besten.
Wenn du es mit Kollisionen machst, hast du immernoch das Problem nicht zu wissen in welche Richtung du den Wagen nach der Kollision drehen sollst. Die Waypoints könntest du sogar aus einem simplen Entity, das du mit c4d z.B. als 3ds exportiert hast auslesen. Dazu müsstest du nur auf die Vertex-Koordinaten zugreifen und mit der Entity-Position addieren. Ayman |
||
judos |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
und wie genau geht das ?
nehmen wir an man hat eine kurve von 90grad wo setzt du dann den wegpunkt ? und vorallem wie soll der Wagen dann merken wie und wann er sich drehen muss ??? gruss judos |
||
![]() |
Ayman |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zwei Probleme, wovon das zweite nicht wirklich eines ist ![]() 1. Man muss zunächst mal die Wegpunkte in irgend einer Form editieren/bestimmen/setzen können. Da setzt meine Idee an, dies in einem Modeller zu machen. Es ist dabei egal, ob du bereits eine Straße/Schienenstrecke als Modell fertig hast oder nicht. Ich gehe mal davon aus, dass Du einen Weg findest, die Raumkoordianten der Wegpunkte in der richtigen Reihenfolge in einer Struktur oder einem Array abzulegen. (Wie man das u.a. machen könnte steht unten.) 2. Anschließend muss man ein Entity in Blitz3D dazu bekommen diesem Pfad zu folgen. Doch das ist recht einfach: Man erzeugt aus jeder Wegpunktkoordinate z.B. mit "wp(i) = CreateSphere()" eine Sphere (Kugel). [kannst auch ein Sprite oder einen Cube erzeugen. Wichtig ist nur dass du alle Parameter für Kollisionstests anschließend richtig setzt.] Anschließend macht man alle Kugeln mit "EntityAplha wp(i), 0" unsichtbar. Damit werden sie nicht mehr dargestellt, belasten also RenderWorld nicht weiter. Dann setzten wir alle diese Entities auf ein und den selben Kollisionstyp, etwa mit "EntityType wp(i), COLTYPE_WEGPUNKT". Im Spiel testen wir dann auf Kollisionen mit diese Objekten, die wir nacheinander mit PointEntity anfahren. Am Anfang des Spiels richten wir mit "PointEntity auto, wp(0)" unser Fahrzeug auf den ersten Wegpunkt aus. Im Spiel verschieben wir das auto stets nach vorn, bis wir eine Kollision mit dem Wegpunkt 0 entdecken. Nun richten wir das Fahrzeug auf Wegpunkt 1 aus, verschieben es stetig nach vorn und warten bis Kollision mit wp(1) eintritt, usw. Wie man Wegpunkte editiert? Ich würde einen 3D-Modeller nehmen, ein paar Vertices oder Joints oder was immer plazieren, an den Stellen, wo meine Wegpunkte liegen sollen, dann das ganze als ASCII-Datei speichern oder exportieren und von Blitz3D diese Punkte mit einer Laderoutine auslesen. Milkshape weigert sich leider reine Joints oder Vertices als ASCII zu exportieren. Da keine Faces dabei sind, meint er, es gäbe nichts zum Exportieren. Aber man kann Joints auch in einer ms3d-Datei abspeichern. Deren Format ist auf der Milkshape-Seite dokumentiert (im sog. SDK). Du kannst auch Vertex fragen, wie man sowas liest ![]() Grüße Ayman |
||
Klaas |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also die sache mit den Kollisionen find reichlich übertrieben.
Wenn man schon die Wegpunkte in der richtigen Reihenfolge hat ... einfach mal den Befehl anschauen: SETANIMKEY Entity, Frame [,Verschiebung] [,Rotation] [,Skalierung] ... oder wenn man mehr Kontrolle haben will, hier mal ein Blick draufwerfen: http://www.blitzbasic.com/code...p?code=781 Die Frage ist doch erstmal, wie willst du deine Wegpunkte bzw, deine Schienen auslegen. |
||
![]() |
Ayman |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: einfach mal den Befehl anschauen:
SETANIMKEY Entity, Frame [,Verschiebung] [,Rotation] [,Skalierung] ... sieh mal an, den kannte ich noch gar nicht. Mit Animationen habsch mich noch nicht befasst. Danke für den Tipp ![]() |
||
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Für den Zug könntest du Bezierinterpolation benutzen ,
jeweils über 4 Punkte die einen Streckenabschnitt ergeben . Um die Pos. zu bestimmen(bekommen) kann man dort einen Wert von 0-1 angeben. Dafür sollte allerdings auch die Streckenlänge immer gleich sein weil der Zug sonnst in der Geschwindigkeit variieren würde . Durch die Interpolation könnte man auch direkt die Schienen in BB erzeugen und diese z.B. mit CopyEntity wieder verwenden . Wenn du dir die Streckenabschnitte so zusammen setzt das es z.B. eine Rundfahrt wird könnte man auch von 0-X interpolieren . 0 ist der Anfang und 0.99 das Ende des ersten Abschnittes . 1 ist der Anfang und 1.99 das Ende des zweiten Abschnittes . ... |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group