Χαρακτήρες

Χρησιμοποιούμε τα αντικείμενα χαρακτήρες για να φτιάξουμε τους χαρακτήρες του παιχνιδιού μας. Έχουν τη δυνατότητα να μετακινούνται προς οκτώ κατευθύνσεις, να στρέφουν, να μιλάνε αλλά και να εκτελούν διάφορες άλλες κινήσεις όπως, για παράδειγμα, να "παίρνουν κάποιο αντικείμενο". Ένας συνηθισμένος χαρακτήρας αποτελείται από μία σειρά animations, κάτι το οποίο κάνει το σχεδιασμό του να απαιτεί πολύ χρόνο.

Ένα adventure συνήθως περιλαμβάνει πολλούς χαρακτήρες, αλλά οι πιο πολλοί από αυτούς είναι αρκετά περιορισμένοι στις κινήσεις τους. Για παράδειγμα μπορούν μόνο να κάθονται και να σηκώνονται σε κάποια συγκεκριμένη θέση. Για το σχεδιασμό αυτών είναι προτιμότερη η χρήση των entities αντί των χαρακτήρων ( μάθετε περισσότερα για τις entities ) οι οποίοι πρέπει να επιλέγονται για τη δημιουργία πολύπλοκων χαρακτήρων, όπως ο βασικός ενός παιχνιδιού.

Προς το παρόν δεν υπάρχει συγκεκριμένο εργαλείο για τον σχεδιασμό των χαρακτήρων και θα πρέπει να τους κατασκευάζετε γράφοντας απλά αρχεία κειμένου προσδιορίζοντας τις ιδιότητές τους. Αυτό όμως δεν πρέπει να σας προβληματίζει καθώς η δομή αυτών των αρχείων είναι πολύ απλή και άλλωστε δεν θα χρειαστείτε πολλούς πολύπλοκους χαρακτήρες για το παιχνίδι σας.

Τι χρειαζόμαστε όμως για να δημιουργήσουμε ένα χαρακτήρα; Καταρχήν τέσσερις κατηγορίες animations ( sprites ): για περπάτημα, για όταν στέκεται ακίνητος, για όταν γυρνάει προς άλλη κατεύθυνση και για όταν μιλάει. Να έχετε υπόψη σας ότι εφόσον ο χαρακτήρας μπορεί να περπατήσει προς οκτώ κατευθύνσεις χρειαζόσαστε οκτώ εκδόσεις του ιδίου animation από διαφορετικές οπτικές γωνίες. Εναλλακτικά μπορείτε να κατασκευάσετε animations μόνο για τέσσερις κατευθύνσεις χρησιμοποιώντας το ίδιο animation για δύο κατευθύνσεις. Για παράδειγμα μπορείτε να φτιάξετε ένα animation για το χαρακτήρα όταν αυτός περπατάει δεξιά και να το ορίσετε και για την κατεύθυνση επάνω-δεξιά. Σε αυτή την περίπτωση όμως το αποτέλεσμα θα είναι σαφώς κατώτερο από τη χρήση οκτώ διαφορετικών animations. 

Το αρχείο προσδιορισμού του χαρακτήρα δεν περιλαμβάνει ορισμούς για ειδικά animations, όπως για παράδειγμα όταν θέλετε ο χαρακτήρας σας να πάρει ένα αντικείμενο. Αυτά ελέγχονται ξεχωριστά μέσω των scripts ( μάθετε περισσότερα για τα scripts ).

Animations για περπάτημα

Τα animations για περπάτημα χρησιμοποιούνται όταν ο χαρακτήρας μετακινείται από ένα μέρος σε κάποιο άλλο. Το μόνο ιδιαίτερο στοιχείο αυτών είναι ότι πρέπει να ορίσετε τις τιμές μεταφοράς τους στον SpriteEdit. Οι δύο τιμές (αντίστοιχα για τους δύο άξονες, X και Y) ορίζουν πόσο θα μετακινείται ο χαρακτήρας όταν αυτός περπατάει.

Για παράδειγμα, στην ακόλουθη εικόνα βλέπουμε ένα animation για περπάτημα με κατεύθυνση προς τα αριστερά με τιμή μεταφοράς στον άξονα X -12. Αυτό σημαίνει ότι κάθε φορά που θα παίζει αυτό το καρέ ο χαρακτήρας θα μετακινείται 12 εικονοστοιχεία αριστερά στον άξονα X.

Με αυτό τον τρόπο μπορείτε να ορίσετε την ταχύτητα των χαρακτήρων. Αξίζει να σημειωθεί ότι όταν αλλάζει το μέγεθος των χαρακτήρων, αλλάζει αυτόματα και αναλογικά η ταχύτητά τους.

Αnimations ακκινησίας

Τα animation ακκινησίας χρησιμοποιούνται όταν ο ηθοποιός δεν μετακινείται. Μπορούν να αποτελούνται από μία στατική εικόνα ή από ένα animation όπως, για παράδειγμα, αναπνοή.

Animations αλλαγής κατεύθυνσης

Τα animations αλλαγής κατεύθυνσης ορίζονται για κάθε κατεύθυνση και η μηχανή παίζει το αντίστοιχο όταν ο χαρακτήρας γυρίζει. Είναι διαφορετικά και εξαρτώνται από τη φορά της κίνησης του χαρακτήρα.

Συνήθως αποτελούνται από ένα μόνο καρέ, αλλά είναι δυνατό να φτιάξετε και πιο πολύπλοκα για μία πιο ρεαλιστική απόδοση (οι άνθρωποι συνήθως μετακινούν και τα πόδια τους όταν αλλάζουν κατεύθυνση, δοκιμάστε το :-)

Animations ομιλίας

Χρησιμοποιούνται όταν ο χαρακτήρας μιλάει. Η wme σας δίνει την δυνατότητα να προσθέσετε διάφορα εφέ στην ομιλία του χαρακτήρα σας ορίζοντας τις στάσεις ομιλίας. Στην ουσία είναι διαφορετικά animations που μπορούν να συνδυαστούν σε μία εντολή actor.Talk. Δεν υπάρχει αριθμητικός περιορισμός, ενώ όταν τα καλείτε μέσω ενός script μπορείτε να ορίσετε ποια ακριβώς θα χρησιμοποιηθούν ( μάθετε περισσότερα για τη μέθοδο actor.Talk ). Σε αντίθετη περίπτωση η μηχανή θα επιλέξει κάποια τυχαία.

Επειδή πολλές φορές δεν είναι επιθυμητό να χρησιμοποιούνται όλα τα animations σε κάθε περίπτωση, μπορείτε να ορίσετε δύο στάσεις ομιλίας, απλή και ειδική. Με αυτό τον τρόπο μπορείτε να χρησιμοποιείτε τα απλά animations διαρκώς, ενώ τα ειδικά μονάχα σε περιπτώσεις που θα τακαλέσετε ξεχωριστά.

Δεν χρειάζεται να τρομάξει κανείς με όλες αυτές τις πολύπλοκες διαδικασίες καθώς για τους απλούς χαρακτήρες αρκεί να ορίσετε μονάχα ένα animation ομιλίας (ή και κανένα). Ο μηχανισμός για επιπλέον animations προσφέρεται για χρήστες που γνωρίζουν όλες τις διαδικασίες και επιθυμούν πιο ανεπτυγμένες δυνατότητες.

Scripts

Όλα τα animations που περιγράφονται πιο πάνω αφορούν μόνο την εμφάνιση, δηλαδή το σώμα, του χαρακτήρα. Το "μυαλό" του είναι τα scripts ( μάθετε περισσότερα για τα scripts ). Όπως συμβαίνει με όλα τα αντικείμενα έτσι και στους χαρακτήρες μπορούν να οριστούν περισσότερα από ένα scripts που θα ελέγχουν τη συμπεριφορά του.

Αρχείο προσδιορισμού χαρακτήρα

Εώς τώρα μάθαμε τι χρειαζόμαστε για να δημιουργήσουμε τη γραφική απεικόνιση ενός χαρακτήρα. Στη συνέχεια θα πρέπει να αθροίσουμε όλα αυτά τα συστατικά μέσα σε ένα αρχείο προσδιορισμού (με κατάληξη .actor). Τα αρχεία αυτά περιλαμβάνουν ένα τίτλο και στη συνέχεια κάποιες γενικές ιδιότητες:

ACTOR
{
 NAME = "MyActor"
 CAPTION="Ο καινούριος μου χαρακτήρας"
 X = 100
 Y = 100
 SCALABLE = TRUE
 INTERACTIVE = FALSE
 COLORABLE=TRUE
 ROTATABLE = FALSE
 SOUND_PANNING=TRUE
 SCRIPT="actors\MyActor\MyActor.script"
 FONT = "fonts\outline_red.font"
}
Επεξήγηση:

Στην συνέχεια ακολουθούν οι περιγραφές των animations που αναφερθήκαμε πιο πάνω. Πρέπει να οριστούν οκτώ animations σε κάθε τμήμα, ένα για κάθε κατεύθυνση.

Ο προσδιορισμός του animation για περπάτημα θα μοιάζει κάπως έτσι:

WALK
{
SPRITESET
{
LEFT = "actors\MyActor\ll\walk.sprite"
RIGHT = "actors\MyActor\rr\walk.sprite"
UP = "actors\MyActor\uu\walk.sprite"
DOWN = "actors\MyActor\dd\walk.sprite"
UP_LEFT = "actors\MyActor\ul\walk.sprite"
UP_RIGHT = "actors\MyActor\ur\walk.sprite"
DOWN_LEFT = "actors\MyActor\dl\walk.sprite"
DOWN_RIGHT = "actors\MyActor\dr\walk.sprite"
}
}
Τα υπόλοιπα animations ορίζονται με παρόμοιο τρόπο αντικαθιστώντας την λέξη "WALK" με τις STAND, TURN_LEFT, TURN_RIGHT, TALK ή TALK_SPECIAL.

Μπορούν να υπάρχουν περισσότεροι από ένας ορισμός TALK και TALK_SPECIAL για τι δημιουργία των στάσεων ομιλίας που αναφέραμε πιο πάνω. Σε αυτή την περίπτωση όμως θα πρέπει να δώσετε ένα διαφορετικό όνομα στο καθένα από αυτά. Για παράδειγμα:

TALK
{
 SPRITESET
 {
 NAME = "stance name"
 
 LEFT = "filename.sprite"
 RIGHT = "filename.sprite"
 ...
 }
}

Στο παιχνίδι επίδειξης της WME υπάρχει ένα ολοκληρωμένο αρχείο προσδιορισμού για τον χαρακτήρα "molly" στο φάκελο "actors\molly". Αξίζει να σημειωθεί ότι δεν είναι απαραίτητο να γράψετε ένα τέτοιο αρχείο από την αρχή καθώς υπάρχει ήδη ένα έτοιμο πρότυπο για χρήση μέσω του ProjectMan (μάθετε περισσότερα για τον ProjectMan ).

Δείτε ακόμα : τον οδηγό προγραμματισμού για το Αντικείμενο χαρακτήρα