Kamera
Kameras in Computerspielen bestimmen aus welcher Sicht die Spieler die virtuelle Welt eines Spiels erleben. Sie entscheiden wie die Spielwelt auf den Monitor gerendert wird. Dazu gibt es eine ganze Reihe von verschiedenen Kameratypen und Verhaltensweisen die für verschiedene Arten von Spielen oder zum Erzeugen verschiedener Effekte verwendet werden. Neben der Betrachter-Perspektive gehört dazu unter anderem auch die Art und Weise wie die Kamera auf Benutzereingaben oder andere Spielelemente reagiert.
Bedeutung von Kameras
Die Darstellung des Geschehens durch die Kamera hat einen bedeutenden Einfluss auf das Spielerlebnis der Zuschauer. Ein schlecht implementiertes Kamerasystem kann Anwendungen derart verschlechtern, dass selbst eine exzellente Grafik oder eine herausragende Spielmechanik nicht ausreichen um dies auszugleichen. Häufige Probleme bei Kameras sind z.B. Clippingfehler (das Eindringen der Kamera in Umgebungsobjekte), eine umständliche Steuerung die vom Spieler ständig nachjustiert werden muss, oder auch ungünstig gewählte Bildausschnitte bei denen wichtige Bereiche der Spielwelt nicht einsehbar sind.
Die folgende Designphilosophie aus dem Buch "Real-Time Cameras: A Guide for Game Designers and Developers" von Mark Haigh-Hutchinson trifft diesen Aspekt sehr gut:
An ideal virtual camera system, regardless of the genre, is notable by the lack of attention given to it by the viewer.
Wenn die Kamera also in der Lage ist dem Spieler die virtuelle Welt so zu präsentieren, dass sie komplett darin eintauchen können, dann kann man das Kamerasystem als gelungen bezeichnen.
Aufgrund der Bedeutung des Kamerasystems für das Spielgefühl sollte ihm während der Entwicklung des Spiels durchgehend genug Aufmerksamkeit geschenkt werden, vor allem auch während der anfänglichen Planungsphase.
Das Kamerasystem
Der Begriff Kamerasystem bezieht sich auf mehrere unterschiedliche Elemente, die es dem Spiel in Zusammenarbeit erlauben zu steuern, wie dem Spieler die virtuelle Welt präsentiert wird. Das Kamerasystem ist ein bedeutender Teil einer Spieleengine. Dies sind die Hauptkomponenten eines Kamerasystems:
- Verwaltung der aktiven Kameras und der Wechsel zwischen ihnen.
- Anwendung von speziellen Verhaltensweisen, die die Positionierung, Bewegung und Orientierung der Kameras bestimmen.
- Kontrolle über sich ändernde Kameraverhalten, abhängig von den Gameplay Anforderungen.
- Erstellung der Informationen die von der Grafikengine zum Rendern der Ansichten der Spielwelt benötigt werden.
Die Rolle des Kamerasystems ist es, die Spielerfahrung der Betrachter durch die Handhabung der Positionen, Orientierungen und anderen Eigenschaften von Kameras in interaktiven Szenen zu verbessern und nicht-interaktive Szenen (z.B. Zwischensequenzen) so darzustellen wie es von den Entwicklern geplant ist. Man sollte beachten, dass bereits kleine Änderungen der Position oder Orientierung einer Kamera die Wahrnehmung des Betrachters der virtuellen Welt gravierend verändern kann, denn die relative Größe und Position von Charakteren oder Objekten in einer Szene beeinflusst für gewöhnlich die Bedeutung die der Betrachter ihnen zuteilt.
Aufbau einer Kamera
Eine typische Spielekamera setzt sich aus den folgenden Komponenten zusammen:
- Position
- Die Position der Kamera in der Welt. Je nach Art der Kamera kann diese z.B. von der Position des Spielers abhängig sein.
- Orientierung
- Die Orientierung bestimmt die aktuelle Blickrichtung der Kamera. Es gibt verschiedene Möglichkeiten sie festzulegen, z.B. über eine Look-at Position oder über yaw, pitch und roll Rotationswerte oder auch über Up- und Forward-Vektoren.
- Viewing Volume
- Das Viewing Volume ist der Bereich den eine Kamera potentiell erfassen könnte. Für Spielekameras wird nur ein bestimmter Teil dieses Bereichs genutzt, das sogenannte View Frustum.
- View Frustum
- Das View Frustum bestimmt den Bereich der durch eine Spielekamera sichtbar gemacht werden kann. Das View Frustum setzt sich aus der Position und Orientierung der Kamera, dem Viewport und dem Field of View zusammen.
- Viewport
- Das Viewport ist in Spielen eine Datenstruktur, die einem Teil des Anzeigegeräts, welches zur Darstellung der Spielwelt wie sie aus einer bestimmten Kamera gesehen wird, entspricht. Viewports sind meist rechteckig, können in ihrer Größe variieren und sich auch gegenseitig überlappen (z.B. ein Rückspiegel in einem Rennspiel, der über das normale Spiel-Viewport gezeichnet wird). Eine klassische Anwendung für verschiedene Viewports ist z.B. auch ein Splitscreen Modus für Multiplayer Spiele an einem PC. Ein Viewport wird maßgeblich durch die folgenden Werte definiert:
- Width
- Die Breite des Viewports bzw Ergebnisbildes der Kamera (wird in Pixeln angegeben).
- Height
- Die Höhe des Viewports bzw Ergebnisbildes der Kamera (wird in Pixeln angegeben).
- Aspect Ratio
- Das Verhältnis zwischen der Breite und Höhe des Viewports. Für normale Standardgeräte beträgt dieser Wert für gewöhnlich 1.33, also ein Verhältnis von 4:3. Für Breitbildgeräte 1.78, also ein Verhältnis von 16:9. Es gibt aber auch andere Formate, z.B. in der Filmproduktion.
- Near Plane
- Die near plane wird durch einen Tiefenwert bestimmt, der der Entfernung des Anfangs des View Frustums von der Kameraposition entspricht.
- Far Plane
- Die far plane wird durch einen Tiefenwert bestimmt, der der Entfernung des Endes des View Frustums von der Kameraposition entspricht.
- Field of View
- Das field of View (kurz: FOV) bezieht sich auf den Winkel zwischen der oberen und unteren Grenze des View Frustums. Damit bestimmt es die Höhe der projizierten Sicht auf die Spielwelt.
Darstellungsarten
Ortographische Darstellung (2D-Kamera)
Der Name der 2D Darstellung kommt von der verwendeten Projektion beim Renderprozess, typischerweise eine parallele orthographische Projektion. Bei dieser Art der Projektion bleiben parallele Linien parallel, was bei einer perspektifischen Projektion nicht der Fall ist. Durch das Verwenden verschiedener Ebenen lässt sich auch hier ein Eindruck von Tiefe erzeugen.
Perspektifische Darstellung (3D-Kamera)
Die meisten Spiele verwenden eine Darstellungsart, die eine dreidimensionale Sicht der Spielwelt in einer Art simuliert, die der menschlichen optischen Wahrnehmung sehr ähnlich ist. Dies wird durch eine perspektifische Projektion ermöglicht, bei der parallele Linien so gerendert werden, dass sie in Fluchtpunkten zusammenlaufen. Diese Art der Projektion erzeugt beim Abbilden von Punkten der Spielwelt auf eine flache Ebene Verzerrungen die von der Position des Betrachters, also der Kamera, abhängig sind.
Hybride Darstellung (2.5D-Kamera)
Der Unterschied in der Darstellung zu einem rein zweidimensionalen Ansatz ist der, dass einige Elemente eine dreidimensionale Ansicht simulieren, obwohl das Spiel hauptsächlich als eine orthographische Projektion dargestellt wird. Dies können Spielobjekte oder auch genauso Teile des Hintergrunds sein.
Die am häufigsten verwendete parallele Projektion zum Erzeugen von peuso-dreidimensionalen Ansichten ist die isometrische Projektion. Diese Projektion gibt eine pseudo 3D-Ansicht der Welt, wobei oft vorgerenderte Hintergrundgrafiken mit vorgerenderten oder dynamisch gerenderten Sprites kombiniert werden, welche zur selben Projektion passen. Die isometrische Projektion wird oft aufgrund dieser Illusion der Tiefe als 2.5D bezeichnet.