Erfahren Sie, wie Sie den Ansichtsbereich Ihres Spiels durch Schwenken, Zoomen und Skalieren steuern.
Ein gut konzipiertes Kamerasystem kann dazu beitragen, dass Spieler in die Spielwelt eintauchen und ein besseres Gefühl für den Standort bekommen. Die Kamera fungiert als Auge des Spielers und ermöglicht ihm die Navigation und Interaktion mit der Spielwelt.
Das Erstellen eines Kamerasystems in Godot ist einfach und dennoch leistungsstark. Sie können die Kamera ganz einfach so einrichten, dass sie dem Spieler folgt, ihre Bewegungen auf den Spielbereich beschränken und sogar dynamisches Zoomen und Skalieren basierend auf den Ereignissen im Spiel hinzufügen.
Ein einfaches Spiel erstellen
Bevor Sie beginnen, müssen Sie eine 2D-Spielwelt und einen Charakter in Ihrer erstellen Godot-Game-Engine dass die Kamera folgen kann.
Erstellen Sie eine neue 2D-Szene und fügen Sie eine hinzu CharacterBody2D Knoten. Dies wird als unser Spielercharakter dienen. Fügen Sie innerhalb von CharacterBody2D eine hinzu
CollisionShape2D und stellen Sie die Form ein RechteckForm2D um die physische Präsenz des Spielers in der Welt sicherzustellen.Der in diesem Artikel verwendete Code ist hier verfügbar GitHub-Repository Die Nutzung steht Ihnen unter der MIT-Lizenz kostenlos zur Verfügung.
Fügen Sie außerdem innerhalb von CharacterBody2D eine hinzu Sprite2D Knoten und weisen Sie ihm Ihr Spieler-Sprite-Bild zu. Erstellen Sie ein neues Skript, das an den CharacterBody2D-Knoten angehängt ist, und fügen Sie den folgenden Code hinzu:
extends CharacterBody2D
var speed = 200
func _physics_process(delta):
var velocity = Vector2()if Input.is_action_pressed('ui_right'):
velocity.x += 1if Input.is_action_pressed('ui_left'):
velocity.x -= 1if Input.is_action_pressed('ui_down'):
velocity.y += 1if Input.is_action_pressed('ui_up'):
velocity.y -= 1
velocity = velocity.normalized() * speed
move_and_collide(velocity * delta)
Mit diesem Code kann sich der Spielercharakter nun in alle vier Richtungen bewegen und wird mit den Plattformen kollidieren.
Implementierung eines Folgekamerasystems
Der nächste Schritt besteht darin, eine Kamera zu erstellen, die den Bewegungen des Spielers folgt. Füge hinzu ein Kamera2D Knoten als Kind von Ihnen CharacterBody2D Knoten. Dadurch wird sichergestellt, dass die Kamera dem Spieler immer folgt. Um die Bewegung sanfter zu gestalten, aktivieren Sie die Positionsglättungseigenschaft des Kamera2D Knoten.
$Camera2D.enabled = true
$Camera2D.position_smoothing_enabled = true
Implementierung von Kameragrenzen und -beschränkungen
Oft ist es wichtig, die Sicht des Spielers auf den Spielbereich zu beschränken. Wenn Sie dies jedoch nicht richtig handhaben, kann es sein, dass die Kamera Bereiche sichtbar macht, die außerhalb des Spielbereichs liegen. Dies können Leerzeichen oder unvollständige Bereiche sein.
Godot bietet eine einfache Möglichkeit, Kameragrenzen festzulegen und ihre Bewegungen innerhalb des Spielbereichs einzuschränken.
Im Kamera2D Knoteneigenschaften, es gibt vier Variablen: limit_left, limit_top, limit_right, Und limit_bottom. Diese bestimmen die Grenzen der Kamera. Sie können diese Werte entsprechend der Größe Ihrer Spielwelt festlegen.
$Camera2D.limit_left = 0
$Camera2D.limit_top = 0
$Camera2D.limit_right = your_game_area_width
$Camera2D.limit_bottom = your_game_area_height
Ersetzen your_game_area_width Und your_game_area_height mit der Breite und Höhe Ihrer Spielwelt. Dieses Skript schränkt die Kamera effektiv auf den gewünschten Bereich ein und bietet dem Spieler ein sauberes und fokussiertes Spielerlebnis.
Handhabung des Zoomens und Skalierens der Kamera
Dynamisches Zoomen und Skalieren können entscheidend dazu beitragen, eindrucksvolle Momente im Spiel zu schaffen. Beispielsweise möchten Sie möglicherweise während einer kraftvollen Aktion auf den Spielercharakter heranzoomen oder herauszoomen, um einen großen Feind oder einen Panoramablick auf die Spielwelt sichtbar zu machen.
Godot erleichtert das Zoomen und Skalieren mit dem Zoomen Eigentum der Kamera2D Knoten. Diese Eigenschaft ist ein Vector2, wobei (1, 1) die Standardzoomstufe ist. Bei höheren Werten wird herausgezoomt, sodass die angezeigten Objekte kleiner erscheinen. Bei niedrigeren Werten wird hineingezoomt, sodass die Objekte größer erscheinen.
Zum Vergrößern können Sie Folgendes verwenden:
$Camera2D.zoom = Vector2(0.7, 0.7)
Und um den Zoom zurückzusetzen, verwenden Sie:
$Camera2D.zoom = Vector2(1, 1)
Die Werte, die Sie an Vector2() übergeben, bestimmen die Zoomstufe auf der X- und Y-Achse. Ein Zoomwert von (0,7, 0,7) bedeutet, dass die Kamera hineinzoomt, während ein Wert von (1,5, 1,5) die Kamera herauszoomen würde.
Normalerweise sollten Sie für beide Achsen den gleichen Wert beibehalten, um das Seitenverhältnis beizubehalten. Sie können jedoch mit unterschiedlichen Werten experimentieren, um einzigartige Effekte zu erzielen.
Inklusive zusätzlicher Funktionen
Wenn Sie ein Kamerasystem für Ihr Spiel erstellen, können Sie zahlreiche zusätzliche Funktionen integrieren, um das Erlebnis zu verbessern.
Kamera wackelt
Ein häufiger Effekt, der insbesondere in vielen Spielen verwendet wird Plattformspiele, ist das Verwackeln der Kamera. Dies wird normalerweise verwendet, um die Wirkung oder Intensität in bestimmten Momenten im Spiel zu vermitteln, z. B. bei einer Explosion oder dem mächtigen Angriff eines Charakters.
Sie können diese Funktion ganz einfach in Godot hinzufügen, indem Sie eine erstellen Shake() Funktion. Sie können die Dauer und Intensität des Shake-Effekts entsprechend dem jeweiligen Spielereignis festlegen.
Geräusche können das Orts- und Bewegungsgefühl in einem Spiel erheblich verbessern. Dies kann so einfach sein wie das Spielen eines Swooshs Sound-Effekt wenn sich die Kamera schnell bewegt oder schwenkt, oder so komplex wie das Ändern der Lautstärke oder Tonhöhe von Umgebungsgeräuschen oder Musiktiteln basierend auf dem Standort oder der Zoomstufe der Kamera.
Beispielsweise möchten Sie möglicherweise die Lautstärke eines Liedes verringern, während die Kamera herauszoomt, um ein Gefühl für die Entfernung zu vermitteln.
Dynamische Beleuchtung
Sie können Ihrer Kamera auch dynamische Lichteffekte zuordnen. Während sich Ihre Kamera durch die Spielwelt bewegt, können Sie die Lichtverhältnisse ändern, um die neuen Umgebungen widerzuspiegeln oder bestimmte Bereiche oder Objekte hervorzuheben.
Dazu können Dinge wie das allmähliche Abdunkeln der Szene gehören, während die Kamera in eine Höhle eindringt, oder das Hervorheben eines wichtigen Objekts mit einem Scheinwerfer.
Kameraübergangseffekte
Beim Wechsel zwischen Kameras können Sie verschiedene Übergangseffekte erzeugen. Dies kann ein einfacher Schnitt sein, bei dem die Ansicht sofort von einer Kamera zur anderen wechselt, oder ein Fade, bei dem die Ansicht allmählich von einer Kamera zur anderen wechselt.
Sie können komplexere Übergänge wie Wischen, Schieben oder Iris mit zusätzlicher Codierung und Animation verwenden.
Best Practices für das Hinzufügen eines Kamerasystems
Wenn Sie Ihrem Spiel ein Kamerasystem hinzufügen, sollten Sie einige Best Practices beachten, um das bestmögliche Spielerlebnis zu gewährleisten.
Vermeiden Sie abrupte Kamerabewegungen
Plötzliche Veränderungen in der Kameraperspektive können für Spieler verwirrend sein und das Gameplay stören. Achten Sie immer auf sanfte Kameraübergänge, um das Eintauchen aufrechtzuerhalten.
Kameraverwacklungen begrenzen
Während ein Verwackeln der Kamera die Wirkung bestimmter Ereignisse verstärken kann, kann ein zu starkes Verwackeln dazu führen, dass das Spiel schwer zu verfolgen und unangenehm zu spielen ist. Setzen Sie diesen Effekt sparsam und in Maßen ein.
Testen Sie verschiedene Zoomstufen
Unterschiedliche Spiele und unterschiedliche Situationen innerhalb eines Spiels erfordern möglicherweise unterschiedliche Zoomstufen. Testen Sie gründlich, um für jede Situation die am besten geeignete Zoomstufe zu finden.
Berücksichtigen Sie sorgfältig die Grenzen der Kamera
Die Kameragrenzen sollten sorgfältig so festgelegt werden, dass sie zum Design Ihrer Level passen. Sie möchten nicht, dass der Spieler etwas außerhalb der Spielwelt sieht oder wichtige Elemente außerhalb des Bildschirms verpasst.
Priorisieren Sie das Spielererlebnis
Das Hauptziel des Kamerasystems sollte immer darin bestehen, das Spielerlebnis zu verbessern. Ganz gleich, ob es darum geht, die beste Sicht auf das Geschehen zu bieten, Schlüsselmomente hervorzuheben oder dem Spieler zu helfen, sich in der Umgebung zurechtzufinden, die Kamera sollte immer zu einem besseren Spielerlebnis beitragen.
Machen Sie Godot-Spiele mit dem Kamerasystem ansprechender
Ein gut implementiertes Kamerasystem kann das gesamte Spielerlebnis verbessern. Es kann die Handlung betonen, beim Geschichtenerzählen helfen und ein noch intensiveres Erlebnis bieten.
Indem Sie steuern, was der Spieler sieht und wann er es sieht, können Sie seine Reise durch die Spielwelt steuern und das Gameplay dynamischer und ansprechender gestalten.