Pivot Problem
Übersicht

BB-FanBetreff: Pivot Problem |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nein, die Verbindung besteht nur in die Richtung Parent -> Child | ||
BB-Fan |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group