Ganz blöde Kamerasteuerungsfrage

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

mpreu

Betreff: Ganz blöde Kamerasteuerungsfrage

BeitragDo, Jan 09, 2014 12:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich stell mich grad bissl blöd an.
Wenn ich eine Kamera um einen bestimmten winkel drehe und ich diese dann fortbewege, müsste diese sich doch in die neue blickrichtung bewegen, oder?

Spark Fountain

BeitragDo, Jan 09, 2014 12:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Das kommt darauf an, mit welchem Befehl du die Kamera verschiebst. Mit MoveEntity verschiebst du ein Objekt relativ zu seiner Ausrichtung, d.h. wenn die Kamera nach vorne schaut und um die Y-Achse rotiert wird, und du schreibst
BlitzBasic: [AUSKLAPPEN]
MoveEntity(camera,0,0,1)

dann wird die Kamera vorwärts bewegt, und zwar in der Richtung, in die sie schaut.

Der Befehl TranslateEntity dagegen verschiebt ein Objekt um einen bestimmten XYZ-Abstand, allerdings absolut, d.h. ohne die lokale Ausrichtung zu berücksichtigen. Wenn du also deine Kamera z.B. um 90° nach rechts um die Y-Achse drehst, und dann schreibst
BlitzBasic: [AUSKLAPPEN]
TranslateEntity(camera,0,0,1)

dann wird es für dich so aussehen, als bewege sich die Kamera nach links. In Wirklichkeit schaut sie aber nach rechts und wird, bezogen auf das Raum-Koordinatensystem, vorwärts bewegt.
Gewinner der MiniBCC's #11, #13 und #28
 

mpreu

BeitragSo, Jan 12, 2014 19:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Alles klar.
Andere Frage.
Nehmen wir mal an ich habe ein Fahrzeug und möchte dieses über Terrain bewegen und die Kamera folgen lassen.
Ich habs jetzt noch nicht probiert sondern bin es mal in Gedanken durchgegangen.

Müsste ich ein Pivot erstellen und an dieses das Fahrzeug als child anheften, und ebenso die kamera.
Und zum bewegen von allem müsste ich dann das pivot bewegen.sehe ich das so im ansatz richtig?

DAK

BeitragSo, Jan 12, 2014 22:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Das kannst du so machen. Was auch geht ist die Kamera direkt als Child vom Fahrzeug anzuhängen oder jedes Frame die Kamera (mittels PositionEntity) an die Position des Fahrzeugs zu versetzen, ihr die Rotation des Fahrzeugs zu verpassen (RotateEntity) und dann mittels MoveEntity ein Stück zurück zu schieben.

Die letzte Methode hat den Vorteil, dass du die X-Rotation damit recht einfach rausfiltern kannst, was für eine stabilere und angenehmere Kamerabewegung sorgt. Auch die Z-Rotation wäre eventuell gut rauszufiltern.

Wenn du alle drei Rotationsachsen fixierst (wie es auch bei den Pivot-Geschichten der Fall ist), dann kann es eventuell unangenehm anzuschauen werden, wenn das Auto sich überschlägt oder so. Ohne den X- und Z-Rotationen wird es dann eventuell angenehmer.
Gewinner der 6. und der 68. BlitzCodeCompo
 

mpreu

BeitragMo, Jan 13, 2014 0:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Ah vielen Dank.
Hat mir sehr geholfen.

Tagirijus

ehemals "Tag"

BeitragMo, Jan 13, 2014 17:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Es gibt keine blöden Fragen. Nur blöde / dumme Antworten. Meine zum Beispiel. Wink
Tagirijus.de

Tankbuster

BeitragMo, Jan 13, 2014 21:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Es gibt noch die geniale Möglichkeit mittels einem Pivot, der der Spielfigur auf Abstand folgt und welcher das Parent der Kamera ist, die Kamera hinter dem Spieler her zu bewegen, und mittels PointEntity die Kamera auf die Spielfigur auszurichten. Dadurch erziehlt man "weichere" bewegungen.

Im Mario-Sample wird aber eine noch tollere Technik benutzt:

Dort gibt es die Spielfigur, den Kamera-Pivot und einen Ziel-Pivot, der immer VOR der Spielfigur ist. Anstatt auf die Kamera wie oben auf die Spielfigur auszurichten, wird dort der Ziel-Pivot per PointEntity anvisiert, sodass man beim Drehen der Spielfigur das sichtfeld auch "weich" verschiebt.

Eine Kamera direkt an die Spielfigur zu hängen ist in vielen Fällen unschön und ruckelig, so wird das ganze etwas gedämpft und sieht professioneller aus Wink


MFG
Twitter
Download Jewel Snake!
Windows|Android

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group