Pivot Problem

Übersicht BlitzBasic Blitz3D

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

 

BB-Fan

Betreff: Pivot Problem

BeitragDo, Dez 20, 2007 15:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe zwei entities und ein pivot.

beide haben das pivor als parent.

kann ich die beiden entities in verschiedene richtungen drehen lassen, aber trotzdem den abstand halten, immer gleich?
 

Dreamora

BeitragDo, Dez 20, 2007 15:32
Antworten mit Zitat
Benutzer-Profile anzeigen
um ihr eigenen achsen ja.
um das pivot: nein
dann musst du 2 weitere pivots machen die die gleiche position haben wie das jetzige pivot und die beiden jetzt angehängten objekte an jeweils eines dieser zwei pivots hängen und dieses dann drehen
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

BB-Fan

BeitragDo, Dez 20, 2007 15:47
Antworten mit Zitat
Benutzer-Profile anzeigen
also ich möchte beide entities entgegengesetzt drehen, um die eigene z achse.

hatte vorher beide entities als parent zusammengehangen.

sozusagen eine camera steuerung hinter einem objekt.

dass die kamera mitfährt.

nun ist es aber erforderlich, dass sich die camera bei drehung um die z achse sich zwar das objekt dreht, jedoch die camera stehen bleibt, bzw. in die andere richtung auf der z achse dreht.

kannst du vielleicht einen codefetzen dazu spenden, ich seh so langsam bei der pivoteria grad nicht durch.

wäre echt lieb.
 

Dreamora

BeitragDo, Dez 20, 2007 15:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Bist du sicher das wir von der gleichen Achse reden?
In 3D spielen ist Z in die Tiefe oder aus dieser hinaus, Y ist nach oben (im unterschied zur Schule wo sie partout Z nach oben haben wollen)

Für denen Fall musst du 1 zusätzliches pivot einführen, welches an dein vorheriges pivot gehängt ist und an welches die Cam gehängt wird.

Die hierarchy würde dann so aussehen:

Pivot
- Object
- CamPivot (an der gleichen position wie Pivot)
- Cam

wenn du jetzt pivot drehst damit sich alles dreht, drehst du einfach CamPivot in die entgegen gesetzte Richtung
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

BB-Fan

BeitragDo, Dez 20, 2007 16:05
Antworten mit Zitat
Benutzer-Profile anzeigen
jetzt seh ich garnicht mehr durch.

ja z ist die tiefe in meinem fall die flugrichtung.

und eigentlich sollte es eine kamerasteuerung werden, wobei sich die kamera hinter dem flugobjekt befindet, aber bei einer drehung um die relative z achse des flugobjektes nicht mitdrehen soll.

gabs hier nicht irgendwo mal ein beispiel?
 

Dreamora

BeitragDo, Dez 20, 2007 16:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Für den Fall braucht man kein Pivot, das wird normalerweise eingesetzt wenn man eine umrundende Kamera benötigt oder eine Kamera die mit einer Welt kollidieren kann und deswegen "beweglich" sein muss relativ zum Objekt.

Für deinen Fall reichts wenn du das objekt an die Kamera festmachst und wenn das Objekt sich um seine Achse drehen soll, machst du auch genau das: du lässt das objekt rotieren nicht irgend ein anderes objekt wie das pivot oder so
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

BB-Fan

BeitragDo, Dez 20, 2007 16:27
Antworten mit Zitat
Benutzer-Profile anzeigen
ich wollts mir turn machen.
mmm kannst du das trotzdem eventuell erklären, wie das mit einem oder auch zwei pivots gecodet wird, so lerne ich gleich was für später, werde es sicher noch gut gebrauchen können.
also das ganze mit turnentity und pivots.damit ich trotzdem auch das kapiere.


wäre echt sehr nett von dir.
 

Dreamora

BeitragDo, Dez 20, 2007 16:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja das steht eigentlich oben. Da ist die Pivot hierarchy und wenn du alles drehen willst, drehst du das Pivot.
Wenn sich nur die Cam um das objekt drehen soll das Cam Pivot und wenn sich das Objekt drehen soll, jedoch nicht die Cam, dann drehst du das objekt. (alternativ kannst du da noch ein ObjPivot dazwischen hängen wie bei der cam und dann halt ObjPivot statt dem Pivot drehen wenn sich das objekt um einen anderen drehpunkt als den eigenen drehen soll)
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

BB-Fan

BeitragDo, Dez 20, 2007 16:37
Antworten mit Zitat
Benutzer-Profile anzeigen
und alle anderen befehle von turnentity die ich relativ auf das objekt anwende, muss ich dann auf das obj pivot anwenden?

also fortbewegung?

ein kleiner code wäre hilfreich, entschuldige die bettelei, aber an einem beispiel würde ich es vielleicht leichter verstehen.
 

Dreamora

BeitragDo, Dez 20, 2007 16:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Von mir wirst du keinen Code erhalten, da ich dich dazu animieren will dass du ein Stück papier und nen Bleistift nimmst und es aufzeichnest, damit du verstehen kannst, was sich wie auf den Rest auswirkt, je nachdem worauf du es anwendest.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

BB-Fan

BeitragDo, Dez 20, 2007 16:48
Antworten mit Zitat
Benutzer-Profile anzeigen
das verstehe ich ja auch, und im kopf hab ich dies auch schon getan.
keine angst, ich setz mich schon die ganze letzte nacht damit auseinander, da bringe ich es mal zu papier, will ja was lernen.

ein code hätte meinem lerneffekt jedoch keinen abbruch getan.
 

Dreamora

BeitragDo, Dez 20, 2007 16:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja und nein.
Denn dies ist eine relativ "simple Sache" und erlaubt es dir aufgrund dessen auch die Herangehensweise zu lernen, wie man etwas von Papier (skizze oder Text) in ein Program umwandelt bzw. in diesem Falle wie man gezeichnete hierarchie in Entity Befehle umwandelt.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Foppele

BeitragDo, Dez 20, 2007 17:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Diese kleine Testumgebung kannst du verwenden, um Verschiedene Bewegungsbefehle, Globale vs. Lokale Koordinaten und Hieraechien zu verstehen. Ändere einfach die Hierarchie der Objekte und die Bewegungsbefehle.



Code: [AUSKLAPPEN]
Graphics3D 640,480,32,2
SetBuffer BackBuffer()
frametimer= CreateTimer(30)



light=CreateLight()
   LightColor light,50,50,50
   RotateEntity light,0,0,0
   PositionEntity light,0,0,0



Global cam=CreateCamera()
PositionEntity cam,0,0,-11
   
   

;--------------------------------------------------------------------------------------------------------------------------------


parent=CreateCube()
PositionEntity parent,5,0,0
EntityAlpha parent,0.5

child1=CreateCube()
PositionEntity child1,0,0,0
EntityAlpha child1,0.5

child2=CreateCube()
PositionEntity child2,-5,0,0
EntityAlpha child2,0.5

EntityParent child1,parent
EntityParent child2,child1



;---------------------------------------------------------------------------------------------------------------------------------



While Not KeyHit(1)




   If KeyDown(205)   Then TurnEntity parent,0,0,-1
   If KeyDown(208) Then TurnEntity child1,0,0,-1
   If KeyDown(203) Then TurnEntity child2,0,0,-1
   
   




   UpdateWorld
   RenderWorld


Text 10,10, "Lokal"


Text 150,10,EntityX#(child2)
Text 150,20,EntityY#(child2)
Text 150,30,EntityZ#(child2)



Text 300,10,EntityX#(child1)
Text 300,20,EntityY#(child1)
Text 300,30,EntityZ#(child1)



Text 450,10,EntityX#(parent)
Text 450,20,EntityY#(parent)
Text 450,30,EntityZ#(parent)



Text 10,410, "Global"   


Text 150,410,EntityX#(child2,True)
Text 150,420,EntityY#(child2,True)
Text 150,430,EntityZ#(child2,True)



Text 300,410,EntityX#(child1,True)
Text 300,420,EntityY#(child1,True)
Text 300,430,EntityZ#(child1,True)



Text 450,410,EntityX#(parent,True)
Text 450,420,EntityY#(parent,True)
Text 450,430,EntityZ#(parent,True)




   
   WaitTimer frametimer
   
   Flip 0
   
   
Wend
 

BB-Fan

BeitragDo, Dez 20, 2007 20:33
Antworten mit Zitat
Benutzer-Profile anzeigen
betrifft das eigentlich nur rotationen?

also ich hab mir überlegt, dass ich ja ein hauptpivot auf position zwischen objekt und kamera positioniere.

sowie jeweils ein campivot und ein objektpivot auf den jeweiligen positionen der kamera und des objektes.

zum drehen des objektes nach links und rechts, drehe ich das hauptpivot.

zum fortbewegen bewege ich auch das hauptpivot.

zum ändern desneigungswinkels ebenfalls.

und wenn ich das schiff rollen lassen will um die z achse, drehe ich allein das schiff bzw. dessen pivot um die z achse.

die hierarchie wäre demzufolge:


Code: [AUSKLAPPEN]

                                                       hauptpivot
                                                    /          \                        jeweils parented
                                              campivot         objektpivot
                                                  /                \
                                           Kamera                   Objekt                    ebenfalls parented zu den übergeordneten pivots



liege ich damit jetzt richtig?




ach ich habs, ein pivot reichte vollkommen aus.

und zwar hab ich ein pivot erstellt welches als parent das objekt hat.
dannach habe ich diesem pivot (welches das child von objekt ist) die camera zugeteilt und dieses pivot als parent deklariert.

somit kann ich alles beim alten lassen und nur wenn ich dieses pivot ansteuere läßt sich die camera seperat steuern.

ferdisch.

und alles mit einem pivot!!!!
 

BB-Fan

BeitragFr, Dez 21, 2007 17:00
Antworten mit Zitat
Benutzer-Profile anzeigen
nagut, das geht doch nicht so wie ich wollte.

vielleicht fällt mir ja noch die lösung ein.

wo mit wem was zusammengehangen wird.


bei den beispielen von bb3d islandwars, genau so will ich das haben, seh da aber nicht durch.
  • Zuletzt bearbeitet von BB-Fan am Fr, Dez 21, 2007 17:30, insgesamt einmal bearbeitet
 

Dreamora

BeitragFr, Dez 21, 2007 17:17
Antworten mit Zitat
Benutzer-Profile anzeigen
das mit dem zusammen hängen hast du schon richtig, nur die positionierung der pivots scheint mir verwurmt ... hätte angenommen das alle pivots am gleichen ort sind (position hauptpivot), schiff und kamera jedoch an nem anderen ort. dadurch kann man beide unabhängig um dieses "drehzentrum" drehen lassen
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

BB-Fan

BeitragFr, Dez 21, 2007 17:36
Antworten mit Zitat
Benutzer-Profile anzeigen
du meinst meine schematische "Zeichnung" oben war Richtig???

also auch wer von was das parent ist?

ich seh da langsam nicht mehr durch, bin total verwirrt.


kann mir das nicht jemand schematisch aufzeichen oder so, und die abhängigkeiten erklären?
 

BB-Fan

BeitragSo, Dez 23, 2007 15:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Mal noch eine andere Frage.

Wenn ich ein Objekt habe welches das Child eines Pivots ist, welches ich durch (Movement Steuerung nutze), was passiert dann wenn ich das Objekt(das Child vom Pivot) bewege?

Folgt das Pivot dann auch, weil die ja verbunden sind?(ausser rotationen etc.)

Foppele

BeitragSo, Dez 23, 2007 16:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein, die Verbindung besteht nur in die Richtung Parent -> Child
 

BB-Fan

BeitragSo, Dez 23, 2007 16:54
Antworten mit Zitat
Benutzer-Profile anzeigen
ich kapier das nicht.

ich will ein objekt(raumschiff) in allen dimensionen steuern, und die kamera soll folgen, aber nicht alle bewegungen nach machen.

logischerweise nur die bewegungen in Z, X, Y Richtung, aber keine rotationen a´la turnentity oder so machen.

im beispiel von islandwars ist es so, wie ich es will, aber ich seh da einfach nicht durch.
kann mir da jemand die steuerung samt abhängigkeiten von pivot´s child´s camera und objekt erklären.

in code umsetzen das schaff ich, aber wie das alles zusammenhängt.

bitte bitte, morgen ist doch weihnachten, seht es als meinen weihnachtswunsch.

bitte bitte

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group