Αρχείο προσδιορισμού 3D χαρακτήρα στο φορμά MS3D (να αποφεύγεται η χρήση του)

ΣΗΜΕΙΩΣΗ: Η υποστήριξη για 3D χαρακτήρες στο φορμά MS3D έχει πλέον σταματήσει να αναπτύσσεται και προσφέρεται μόνο για λόγους συμβατότητας με παλαιότερες εκδόσεις. 

Όπως και με τους απλούς χαρακτήρες, ορίζετε τους 3D χαρακτήρες με ένα απλό αρχείο προσδιορισμού. Αυτά τα αρχεία έχουν την κατάληξη .act3d και χρησιμοποιούν την ίδια σύνταξη με τα υπόλοιπα αρχεία της WME. Ας δούμε ένα παράδειγμα ενός τέτοιου αρχείου:

ACTOR3D
{
 NAME = "trinity"
 CAPTION = "Trinity"
 INTERACTIVE = TRUE
 SCRIPT = "actors\trinity\trinity.script"

 SCALE = 180

 ;--- ταχύτητες
 VELOCITY = 70.0
 ANGULAR_VELOCITY = 400.0

 ;--- εξωτερικά δεδομένα
 MODEL = "actors\trinity\trinity.ms3d"
 FONT = "fonts\outline_red.font"
 CURSOR = "sprites\arrow.sprite"

 SHADOW = TRUE
 SIMPLE_SHADOW = TRUE

 ; ρυθμίσεις σκιών πραγματικού χρόνου
 LIGHT_POSITION { -40, 200, -40 }
 SHADOW_COLOR { 0, 0, 0, 128 }

; ρυθμίσεις απλών σκιών SHADOW_SIZE = 12.0 SHADOW_IMAGE = "actors\trinity\shadow.png"
ANIMATION { NAME="walk" LOOPING=TRUE START_FRAME=1 END_FRAME=25 EVENT { FRAME = 4 NAME = "footstep" }
EVENT { FRAME = 16 NAME = "footstep" } } ANIMATION { MODEL = "actors\trinity\trinity2.ms3d" NAME="idle" LOOPING=TRUE START_FRAME=26 END_FRAME=65 } }
Οι περισσότερες από αυτές τις ιδιότητες είναι προαιρετικές και εάν δεν τις ορίσετε η WME θα χρησιμοποιήσει κάποιες λογικές προκαθορισμένες τιμές.

Το πρώτο τμήμα ορίζει τις συνήθεις ιδιότητες, όνομα, υπότιτλος, διαδραστικότητα και ορισμός script. Θα πρέπει ήδη να τις γνωρίζετε αυτές. Αν όχι, δείτε το κεφάλαιο Χαρακτήρες.

Η ιδιότητα SCALE επηρεάζει το μέγεθος του χαρακτήρα. Συνήθως θα χρειαστεί να ορίσετε αυτή την ιδιότητα αν το μοντέλο του χαρακτήρα έχει διαφορετική αναλογία μεγέθους σε σχέση με τα μοντέλα της σκηνής. Βεβαίως το μέγεθος του χαρακτήρα μπορεί να αλλάξει και κατά τη διάρκεια του παιχνιδιού για να επιτευχθούν διάφορα εφέ (σμίκρυνση χαρακτήρα, νάνοι κ.λπ.). Επιπλέον αυτή η ιδιότητα επηρεάζει και την ταχύτητα του χαρακτήρα.

Η ταχύτητα του χαρακτήρα ορίζεται με δύο παραμέτρους. Η VELOCITY ορίζει την ταχύτητα βαδίσματος και η ANGULAR_VELOCITY την ταχύτητα που ο χαρακτήρας στρίβει.

Το επόμενο τμήμα ορίζει τις αναφορές σε εξωτερικά αρχεία. Οι παράμετροι FONT και CURSOR είναι οι συνηθισμένες. Ενώ οι 3D χαρακτήρες περιλαμβάνουν επιπλέον την παράμετρο MODEL που αναφέρεται στο μοντέλο MilkShape.

Στη συνέχεια υπάρχουν οι ιδιότητες που ρυθμίζουν τη σκιά του χαρακτήρα. Η WME υποστηρίζει δύο τύπους σκιών, απλές και πραγματικού χρόνου. Η απλή σκιά είναι ένας μαύρος κύκλος κάτω από τον χαρακτήρα, ενώ η σκιά πραγματικού χρόνου υπολογίζεται και δημιουργείται κατά την κίνηση του χαρακτήρα και είναι πολύ πιο ρεαλιστική. Μπορείτε να επιλέξετε να έχετε ή όχι σκιές (με την παράμετρο SHADOW) και ποιο είδος σκιάς θέλετε (με την παράμετρο SIMPLE_SHADOW). Πρέπει να σημειωθεί ότι ορισμένες παλιές κάρτες γραφικών δεν υποστηρίζουν τις σκιές πραγματικού χρόνου και σε αυτές τις περιπτώσεις η WME χρησιμοποιεί αυτόματα την απλή σκιά ανεξάρτητα από την επιλογή σας.

Στην περίπτωση των σκιών πραγματικού χρόνου μπορείτε να ρυθμίσετε το χρώμα της σκιάς (συνήθως αυτό δεν χρειάζεται) και το πιο σημαντικό την θέση της πηγής φωτισμού (LIGHT_POSITION). Η θέση αυτή υπολογίζετε σε σχέση με τη θέση του χαρακτήρα και ορίζει πόσο μεγάλη και προς ποια κατεύθυνση θα πέφτει η σκιά. Η παράμετρος αυτή ορίζεται με τις συντεταγμένες X, Y και Z του φωτός που δημιουργεί τη σκιά. Δείτε την παρακάτω εικόνα για ένα παράδειγμα:

Αν επιλέξετε τις απλές σκιές θα χρειαστείτε δύο παραμέτρους. Η SHADOW_SIZE ορίζει το μέγεθος της σκιάς, ενώ με την  SHADOW_IMAGE μπορείτε να αλλάξετε την εμφάνισή της. Αν δεν ορίσετε εσείς μία εικόνα η WME θα χρησιμοποιήσει μία προκαθορισμένη.

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

Η πρώτη ιδιότητα είναι το όνομα του animation (NAME). Χρησιμοποιώντας αυτό το όνομα μπορείτε να καλέσετε αργότερα όποιο animation θέλετε μέσω των scripts με την μέθοδο PlayAnim. Υπάρχουν ορισμένα ειδικά ονόματα για animations ("walk", "idle" και "talk") τα οποία χρησιμοποιούνται αυτόματα από την μηχανή.

Η επόμενη παράμετρος ονομάζεται LOOPING και ορίζει αν το animation θα επαναλαμβάνεται μετά το τέλος του ή όχι.

Μέσα σε ένα αρχείο MilkShape επιτρέπεται να έχετε πολλά animations. Με τις παραμέτρους START_FRAME και END_FRAME μπορείτε να περιγράψετε στην WME που αρχίζει και που τελειώνει το καθένα από αυτά.

Στο παράδειγμα επάνω το δεύτερο τμήμα με τίτλο ANIMATION περιλαμβάνει την προαιρετική παράμετρο MODEL. Μπορείτε να έχετε διάφορα animations σε πολλά αρχεία MilkShape. Σε αυτή την περίπτωση πρέπει να ορίζετε και σε ποιο αρχείο βρίσκεται το καθένα από αυτά. Πρέπει να σημειωθεί ότι από αυτά τα επιπλέον αρχεία χρησιμοποιούνται μόνο τα skeletal animations και όχι το μοντέλο του χαρακτήρα. Για αυτό το λόγο θα πρέπει να έχετε ακριβώς τον ίδιο σκελετό σε όλα τα αρχεία αλλιώς θα υπάρχουν απρόβλεπτα αποτελέσματα.

Όπως μπορείτε να δείτε στο πρώτο animation του παραδείγματός μας περιέχονται επίσης δύο ακόμα ομαδοποιημένα τμήμα με το όνομα EVENT. Με τη χρήση αυτών μπορείτε να ενεργοποιήσετε κάποιο γεγονός όταν το animation φτάσει σε ένα συγκεκριμένο καρέ. Οι έμπειροι χρήστες της WME το γνωρίζουν ήδη αυτό από τα sprites. Στο παράδειγμα ορίζεται ότι τα καρέ 4 και 16 ενεργοποιούν ένα γεγονός με όνομα "footstep". Αυτή η ιδιότητα είναι ιδιαίτερα χρήσιμη σε περιπτώσεις όπου θέλετε να ενεργοποιήσετε καταστάσεις που έχουν σχέση με το animation.