autos\ eisenbahn

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

judos

Betreff: autos\ eisenbahn

BeitragMo, Jan 17, 2005 18:10
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMo, Jan 17, 2005 18:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit NURBS Wink
Wo wir gerade beim Thema sind, wie kann man DOOM 4 porgrammieren?
vertex.dreamfall.at | GitHub
 

konstantin

BeitragMo, Jan 17, 2005 18:18
Antworten mit Zitat
Benutzer-Profile anzeigen
MakeGame( "Doom 4" )
 

Darren

BeitragMo, Jan 17, 2005 18:27
Antworten mit Zitat
Benutzer-Profile anzeigen
also ich würde des mit waypointslösen. dazu solltest du dir einen editor schreiben
MFG Darren

Lord_Vader

BeitragMo, Jan 17, 2005 18:30
Antworten mit Zitat
Benutzer-Profile anzeigen
er kann auch einfach childs setzen und die bestimmt benennen und dann weglöschen, wenn er die waypoints eingespeichert hat...
 

judos

BeitragMo, Jan 17, 2005 18:32
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMo, Jan 17, 2005 18:35
Antworten mit Zitat
Benutzer-Profile anzeigen
probiers doch einfach aus. verdammt.
 

judos

BeitragMo, Jan 17, 2005 18:39
Antworten mit Zitat
Benutzer-Profile anzeigen
stopword alu,"alle Fluchwörter"

Ayman

BeitragMo, Jan 17, 2005 18:42
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMo, Jan 17, 2005 20:45
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMo, Jan 17, 2005 21:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Zwei Probleme, wovon das zweite nicht wirklich eines ist Wink

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 Wink, denn der hat mal einen Milkshape-Loader für Blitz3D geschrieben.

Grüße
Ayman
 

Klaas

BeitragMo, Jan 17, 2005 21:47
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMo, Jan 17, 2005 23:43
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Smile

Markus2

BeitragDi, Jan 18, 2005 19:53
Antworten mit Zitat
Benutzer-Profile anzeigen
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 .
...

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group