"Saubere" Kamerasteuerung

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

Terror-State

Betreff: "Saubere" Kamerasteuerung

BeitragSo, Mai 21, 2006 19:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi na Leute! Ich dachte mir ich belästige euch mal wieder ein wenig ^^
Folgendes:

Ich habe eigentlich die standard kameraführung(pivot und camera als child dazu z.B GTA VC) nur ist ja hier das bekannte problem, des "Terrainsabtauchen" was ich persönlich ziiiieeeeemlich unschön finde! also wenn die Kamera unter der Terrainhöhe liegt.

In modernen Spielen (z.B GTA VC ^^) is es so gelöst, dass die kamera ihre position verändert sobald ein eintauchen droht. sie wandert über die spielfigur und dreht dabei runter. wen die gefahr eines eintauchens gebannt ist, nimmt die kamera wieder ihr standardposition ein.

Cam(1) = EntityX(Cam(0),1)
Cam(2) = EntityY(Cam(0),1)
Cam(3) = EntityZ(Cam(0),1)
Cam(4) = TerrainY(terrain,Cam(1),0,Cam(3))

das liefert aber leider nur die relative position... naja viele worte wenig sinn:
wie krieg ich das ansehnlich gelöst? codebeispiele wären echt hilfreich. danke für die komplizieren in eure kopf gehirnprozesse! Very Happy
Ob friedlich oder militant, wichtig ist der Widerstand

Vincent

BeitragSo, Mai 21, 2006 21:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo !
Es kommt immer darauf an, für welches Spiel du eine Kamera haben willst (z.B. Flugsimulation oder Dungeon-Fantasy ).
Dein Code ist für mich zusammenhangslos.

Für sinnvoll halte ich das System, welches z.B. bei World of Warcraft verwendet wird:
Die Kamera ist immer in einem festen Winkel und fester Entfernung hinter der Spielfigur. Wenn ein Hinderniss, wie Terrain oder Wand die Sicht versperrt, dann wird die Kamera automatisch so nahe heranbewegt, dass sie sich geradeso hinter dem Hinderniss befindet und der Blick frei ist.

Realisieren könntest du das so:
mit "Entityinview" testest du, ob man die Spielfigur sehen kann.
http://www.blitzbase.de/befehle3d/entityinview.htm

Wenn das Ergebiss 0 ist, dann versetze einen Pivot auf die Position des Spielers und lass ihn in Richtung Kamera fliegen ( Pivot und Hindernisse können kolidieren ... mit stoppen). Dort wo der Pivot hängen geblieben ist, positionierst du die Kamera nun.
Gott ist nicht mit uns ... weil er mit Idioten keine Gnade kennt !
 

Davok`xarden

BeitragFr, Jun 09, 2006 14:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich nehm an du hast die Camera als Parent von nem Pivot gesetzt. Also kriegst du nur daten die relativ zum Pivot sind machs doch so:

cam(0) = EntityX(cam) + EntityX(pivot)
cam(1) = EntityY(cam) + EntityY(pivot)
cam(2) = EntityZ(cam) + EntityZ(pivot)

Denke es geht so bin mir abber nit sicher
Gott hat euch alle liebt, aber der Rest denk ihr seid [ZENSIERT

Markus2

BeitragFr, Jun 30, 2006 16:46
Antworten mit Zitat
Benutzer-Profile anzeigen
EntityY(,True) gibt die Globale Pos. zurück

Blitzcoder

Newsposter

BeitragFr, Jun 30, 2006 21:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Am einfachsten geht es mit einfachen BB Collisionen.

Code: [AUSKLAPPEN]


[...]
entitytype terrain,1
entitytype camera,2

collisions 1,2,2,2

[...]


Beschreibung von Kollisionen siehe hier: http://blitzbase.de/befehle3d/collisions.htm

MfG Blitzcoder
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________
|°°°°°°°°°°°°°°||'""|""\__,_
|______________ ||__ |__|__ |)
|(@) |(@)"""**|(@)(@)****|(@)

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group