Μάθετε πώς να ελέγχετε το παράθυρο προβολής του παιχνιδιού σας με ενέργειες μετατόπισης, ζουμ και κλιμάκωσης.
Ένα καλά σχεδιασμένο σύστημα κάμερας μπορεί να βοηθήσει τους παίκτες να βυθιστούν στον κόσμο του παιχνιδιού και να δώσει μια καλύτερη αίσθηση της τοποθεσίας. Η κάμερα λειτουργεί ως τα μάτια του παίκτη, επιτρέποντάς του να πλοηγηθεί και να αλληλεπιδράσει με τον κόσμο του παιχνιδιού.
Η δημιουργία ενός συστήματος κάμερας στο Godot είναι απλή αλλά ισχυρή. Μπορείτε εύκολα να ρυθμίσετε την κάμερα να ακολουθεί τον παίκτη τριγύρω, να περιορίζει τις κινήσεις του στην περιοχή του παιχνιδιού και ακόμη και να προσθέτει δυναμικό ζουμ και κλιμάκωση με βάση τα συμβάντα του παιχνιδιού.
Δημιουργία ενός απλού παιχνιδιού
Πριν ξεκινήσετε, πρέπει να δημιουργήσετε έναν κόσμο 2D παιχνιδιού και έναν χαρακτήρα στο δικό σας Godot Game Engine που μπορεί να ακολουθήσει η κάμερα.
Δημιουργήστε μια νέα δισδιάστατη σκηνή και προσθέστε ένα CharacterBody2D κόμβος. Αυτό θα χρησιμεύσει ως ο χαρακτήρας του παίκτη μας. Μέσα στο CharacterBody2D, προσθέστε ένα
CollisionShape2D και ρυθμίστε το σχήμα του σε Ορθογώνιο Σχήμα 2Δ να παρέχει τη φυσική παρουσία του παίκτη στον κόσμο.Ο κώδικας που χρησιμοποιείται σε αυτό το άρθρο είναι διαθέσιμος σε αυτό Αποθετήριο GitHub και είναι δωρεάν για χρήση βάσει της άδειας MIT.
Επίσης, μέσα στο CharacterBody2D, προσθέστε ένα Sprite2D κόμβο και εκχωρήστε την εικόνα sprite του προγράμματος αναπαραγωγής σας σε αυτόν. Δημιουργήστε ένα νέο σενάριο συνδεδεμένο στον κόμβο CharacterBody2D και προσθέστε τον ακόλουθο κώδικα:
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)
Με αυτόν τον κωδικό, ο χαρακτήρας του παίκτη μπορεί πλέον να κινηθεί και προς τις τέσσερις κατευθύνσεις και θα συγκρουστεί με τις πλατφόρμες.
Εφαρμογή συστήματος παρακολούθησης κάμερας
Το επόμενο βήμα είναι να δημιουργήσετε μια κάμερα που παρακολουθεί τις κινήσεις του παίκτη. Πρόσθεσε ένα Κάμερα 2D κόμβος ως παιδί σου CharacterBody2D κόμβος. Αυτό διασφαλίζει ότι η κάμερα θα ακολουθεί πάντα τη συσκευή αναπαραγωγής. Για να κάνετε την κίνηση πιο ομαλή, ενεργοποιήστε την ιδιότητα εξομάλυνσης θέσης του Κάμερα 2D κόμβος.
$Camera2D.enabled = true
$Camera2D.position_smoothing_enabled = true
Εφαρμογή ορίων και περιορισμών κάμερας
Είναι συχνά σημαντικό να περιορίζετε την θέα του παίκτη στην περιοχή του παιχνιδιού. Ωστόσο, εάν δεν το χειριστείτε σωστά, η κάμερα μπορεί να αποκαλύψει περιοχές που βρίσκονται εκτός του πεδίου εφαρμογής του παιχνιδιού. Αυτά μπορεί να περιλαμβάνουν χώρους ή ημιτελείς περιοχές.
Ο Godot παρέχει έναν εύκολο τρόπο για να ορίσετε τα όρια της κάμερας και να περιορίσετε τις κινήσεις της εντός της περιοχής του παιχνιδιού.
Στο Κάμερα 2D ιδιότητες κόμβου, υπάρχουν τέσσερις μεταβλητές: limit_left, limit_top, limit_right, και limit_bottom. Αυτά καθορίζουν τα όρια της κάμερας. Μπορείτε να ορίσετε αυτές τις τιμές ανάλογα με το μέγεθος του κόσμου του παιχνιδιού σας.
$Camera2D.limit_left = 0
$Camera2D.limit_top = 0
$Camera2D.limit_right = your_game_area_width
$Camera2D.limit_bottom = your_game_area_height
Αντικαθιστώ your_game_area_width και your_game_area_height με το πλάτος και το ύψος του κόσμου του παιχνιδιού σας. Αυτό το σενάριο περιορίζει αποτελεσματικά την κάμερα στην επιθυμητή περιοχή, παρέχοντας μια καθαρή και εστιασμένη εμπειρία παιχνιδιού για τον παίκτη.
Χειρισμός ζουμ και κλιμάκωση κάμερας
Το δυναμικό ζουμ και η κλιμάκωση μπορεί να είναι καθοριστικής σημασίας για τη δημιουργία εντυπωσιακών στιγμών στο παιχνίδι. Για παράδειγμα, μπορεί να θέλετε να κάνετε μεγέθυνση στον χαρακτήρα του παίκτη κατά τη διάρκεια μιας ισχυρής δράσης ή σμίκρυνση για να αποκαλύψετε έναν μεγάλο εχθρό ή μια πανοραμική άποψη του κόσμου του παιχνιδιού.
Ο Γκοντό διευκολύνει το ζουμ και την κλιμάκωση με το ανίπταμαι διαγωνίως ιδιοκτησία του Κάμερα 2D κόμβος. Αυτή η ιδιότητα είναι Vector2, με το (1, 1) να είναι το προεπιλεγμένο επίπεδο ζουμ. Οι υψηλότερες τιμές θα κάνουν σμίκρυνση, κάνοντας τα αντικείμενα που βλέπετε να φαίνονται μικρότερα, ενώ οι χαμηλότερες τιμές θα μεγεθύνουν, κάνοντας τα αντικείμενα να φαίνονται μεγαλύτερα.
Για μεγέθυνση, μπορείτε να χρησιμοποιήσετε:
$Camera2D.zoom = Vector2(0.7, 0.7)
Και για να επαναφέρετε το ζουμ, χρησιμοποιήστε:
$Camera2D.zoom = Vector2(1, 1)
Οι τιμές που μεταβιβάζετε στο Vector2() καθορίζουν το επίπεδο ζουμ στους άξονες X και Y. Μια τιμή ζουμ (0,7, 0,7) σημαίνει ότι η κάμερα θα μεγεθύνει, ενώ μια τιμή (1,5, 1,5) θα σμίκρυνε την κάμερα.
Θα πρέπει συνήθως να διατηρείτε την ίδια τιμή και για τους δύο άξονες για να διατηρήσετε την αναλογία διαστάσεων, αλλά μπορείτε να πειραματιστείτε με διαφορετικές τιμές για να επιτύχετε μοναδικά εφέ.
Συμπεριλαμβανομένων πρόσθετων χαρακτηριστικών
Όταν δημιουργείτε ένα σύστημα κάμερας για το παιχνίδι σας, υπάρχουν πολλές πρόσθετες λειτουργίες που μπορείτε να ενσωματώσετε για να βελτιώσετε την εμπειρία.
Κούνημα κάμερας
Ένα κοινό εφέ που χρησιμοποιείται σε πολλά παιχνίδια, ειδικά παιχνίδια πλατφόρμας, είναι το κούνημα της κάμερας. Αυτό χρησιμοποιείται συνήθως για να μεταφέρει τον αντίκτυπο ή την ένταση κατά τη διάρκεια συγκεκριμένων στιγμών του παιχνιδιού, όπως μια έκρηξη ή μια ισχυρή επίθεση ενός χαρακτήρα.
Μπορείτε εύκολα να προσθέσετε αυτή τη συνάρτηση στο Godot δημιουργώντας ένα σέικ() λειτουργία. Μπορείτε να καθορίσετε τη διάρκεια και την ένταση του εφέ ανακίνησης σύμφωνα με το συγκεκριμένο γεγονός εντός του παιχνιδιού.
Οι ήχοι μπορούν να ενισχύσουν σημαντικά την αίσθηση του τόπου και της κίνησης σε ένα παιχνίδι. Αυτό μπορεί να είναι τόσο απλό όσο το να παίξετε ένα swoosh εφέ ήχου όταν η φωτογραφική μηχανή μετακινείται γρήγορα ή μετακινείται γρήγορα ή τόσο πολύπλοκη όσο η τροποποίηση της έντασης ή του τόνου των ήχων του περιβάλλοντος ή των μουσικών κομματιών με βάση τη θέση της κάμερας ή το επίπεδο ζουμ.
Για παράδειγμα, μπορεί να θέλετε να μειώσετε την ένταση ενός τραγουδιού καθώς η κάμερα μικραίνει για να δώσει μια αίσθηση απόστασης.
Δυναμικός φωτισμός
Μπορείτε επίσης να συνδέσετε δυναμικά εφέ φωτισμού στην κάμερά σας. Καθώς η κάμερά σας κινείται στον κόσμο του παιχνιδιού, μπορείτε να αλλάξετε τις συνθήκες φωτισμού ώστε να αντικατοπτρίζουν τα νέα περιβάλλοντα ή να επισημάνετε συγκεκριμένες περιοχές ή αντικείμενα.
Αυτό θα μπορούσε να περιλαμβάνει πράγματα όπως το σταδιακό σκοτάδι της σκηνής καθώς η κάμερα βυθίζεται σε μια σπηλιά ή την επισήμανση ενός βασικού αντικειμένου με προβολέα.
Εφέ μετάβασης κάμερας
Μπορείτε να δημιουργήσετε διάφορα εφέ μετάβασης κατά την εναλλαγή μεταξύ καμερών. Αυτό θα μπορούσε να είναι μια απλή περικοπή όπου η προβολή μεταπηδά αμέσως από τη μια κάμερα στην άλλη ή ένα ξεθώριασμα όπου η προβολή σταδιακά μεταβαίνει από τη μια κάμερα στην άλλη.
Μπορείτε να χρησιμοποιήσετε πιο περίπλοκες μεταβάσεις, όπως σκούπισμα, διαφάνεια ή ίριδα, με πρόσθετη κωδικοποίηση και κινούμενα σχέδια.
Βέλτιστες πρακτικές για την προσθήκη συστήματος κάμερας
Όταν προσθέτετε ένα σύστημα κάμερας στο παιχνίδι σας, υπάρχουν πολλές βέλτιστες πρακτικές που πρέπει να έχετε κατά νου για να εξασφαλίσετε την καλύτερη δυνατή εμπειρία παιχνιδιού.
Αποφύγετε τις απότομες κινήσεις της κάμερας
Οι ξαφνικές αλλαγές στην οπτική γωνία της κάμερας μπορεί να αποπροσανατολίσουν τους παίκτες και να διαταράξουν το παιχνίδι. Πάντα να στοχεύετε σε ομαλές μεταβάσεις της κάμερας για να διατηρήσετε την εμβάπτιση.
Περιορίστε το κούνημα της κάμερας
Ενώ ένα κούνημα της κάμερας μπορεί να προσθέσει αντίκτυπο σε ορισμένα γεγονότα, το υπερβολικό κούνημα μπορεί να κάνει το παιχνίδι δύσκολο στην παρακολούθηση και άβολο στο παιχνίδι. Χρησιμοποιήστε αυτό το εφέ με φειδώ και με μέτρο.
Δοκιμάστε διαφορετικά επίπεδα ζουμ
Διαφορετικά παιχνίδια και διαφορετικές καταστάσεις μέσα σε ένα παιχνίδι ενδέχεται να απαιτούν διαφορετικά επίπεδα ζουμ. Δοκιμάστε διεξοδικά για να βρείτε το καταλληλότερο επίπεδο ζουμ για κάθε κατάσταση.
Εξετάστε προσεκτικά τα όρια της κάμερας
Τα όρια της κάμερας θα πρέπει να ρυθμιστούν προσεκτικά ώστε να ταιριάζουν με τη σχεδίαση των επιπέδων σας. Δεν θέλετε ο παίκτης να βλέπει έξω από τον κόσμο του παιχνιδιού ή να χάνει σημαντικά στοιχεία εκτός οθόνης.
Δώστε προτεραιότητα στην εμπειρία του παίκτη
Ο κύριος στόχος του συστήματος κάμερας πρέπει πάντα να είναι η βελτίωση της εμπειρίας του παίκτη. Είτε παρέχει την καλύτερη προβολή της δράσης, δίνει έμφαση σε βασικές στιγμές ή βοηθά τον παίκτη να περιηγηθεί στο περιβάλλον, η κάμερα θα πρέπει πάντα να συμβάλλει σε μια καλύτερη εμπειρία παιχνιδιού.
Κάνοντας τα παιχνίδια Godot πιο αλληλένδετα με το σύστημα κάμερας
Ένα καλά εφαρμοσμένο σύστημα κάμερας μπορεί να βελτιώσει τη συνολική εμπειρία παιχνιδιού. Μπορεί να δώσει έμφαση στη δράση, να βοηθήσει στην αφήγηση και να προσφέρει μια πιο καθηλωτική εμπειρία.
Ελέγχοντας τι βλέπει ο παίκτης και πότε το βλέπει, μπορείτε να καθοδηγήσετε το ταξίδι του στον κόσμο του παιχνιδιού και να κάνετε το παιχνίδι πιο δυναμικό και ελκυστικό.