Αρχείο προσδιορισμού 3D χαρακτήρα στο φορμά X

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

ACTOR3DX
{
NAME = "trinity" CAPTION = "Trinity" INTERACTIVE = TRUE SCRIPT = "actors\trinity\trinity.script" SCALE = 180 ;--- ταχύτητες VELOCITY = 70.0 ANGULAR_VELOCITY = 400.0 ;--- εξωτερικά δεδομένα MODEL = "actors\trinity\trinity.x" FONT = "fonts\outline_red.font" CURSOR = "sprites\arrow.sprite"
SHADOW_MODEL = "actors\trinity\trinity_low.x" SHADOW_TYPE = "stencil" ; ρυθμίσεις σκιών πραγματικού χρόνου LIGHT_POSITION { -40, 200, -40 } SHADOW_COLOR { 0, 0, 0, 128 } ; ρυθμίσεις απλών σκιών SHADOW_SIZE = 12.0 SHADOW_IMAGE = "actors\trinity\shadow.png" ANIMATION { NAME="idle" LOOPING=TRUE } ANIMATION { NAME="walk" LOOPING=TRUE EVENT { FRAME = 4 NAME = "footstep" EVENT { FRAME = 16 NAME = "footstep" } }
Οι περισσότερες από αυτές τις ιδιότητες είναι προαιρετικές και εάν δεν τις ορίσετε η WME θα χρησιμοποιήσει κάποιες λογικές προκαθορισμένες τιμές.

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

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

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

Το επόμενο τμήμα ορίζει τις αναφορές σε εξωτερικά αρχεία. Οι παράμετροι FONT και CURSOR είναι οι συνηθισμένες.

Οι 3D χαρακτήρες περιλαμβάνουν επιπλέον την παράμετρο MODEL που αναφέρεται στο μοντέλο Microsoft X (.x). Μπορούν να υπάρχουν πολλαπλές γραμμές MODEL σε ένα αρχείο προσδιορισμού 3D χαρακτήρα κάτι που σας δίνει την δυνατότητα να ενώσετε πολλά animations σε ένα αρχείο. Σημείωση: ορισμένα προγράμματα 3D δεν σας επιτρέπουν να δώσετε ονόματα στα animations που περιλαμβάνονται μέσα σε ένα μοντέλο και τα εξάγουν ανώνυμα (για παράδειγμα το Blender). Σε αυτές τις περιπτώσεις το όνομα του animation είναι ίδιο με το όνομα του αρχείου X.

Στη συνέχεια υπάρχουν οι ιδιότητες που ρυθμίζουν τις σκιές. Η WME υποστηρίζει διάφορους τύπους σκιών. Με την παράμετρο SHADOW_TYPE ορίζετε τη σκιά που θα χρησιμοποιεί ο χαρακτήρας σας και μπορεί να έχει τις ακόλουθες τιμές: "none", "simple", "flat" or "stencil" με την τελευταία να είναι η προεπιλογή.

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

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

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

Το τελευταίο μεγάλο τμήμα του αρχείου ασχολείται με τα animations. Αυτή είναι μία μεγάλη αλλαγή σε σχέση με τους απλούς δισδιάστατους χαρακτήρες. Αντί για πολλά μικρά αρχεία όλα τα animations είναι προσχεδιασμένα στα αρχεία X. Για παράδειγμα το μοντέλο του χαρακτήρα σας μπορεί να περιλαμβάνει σετ από animations με ονόματα "walk" και "idle". Με την χρήση αυτών των ονομάτων μπορείτε να τα καλέσετε αργότερα μέσω των scripts με την μέθοδο PlayAnim. Υπάρχουν ορισμένα ειδικά (δεσμευμένα) ονόματα για τα βασικά animations, τα "walk", "idle", "talk", "TurnLeft" και "TurnRight" που χρησιμοποιούνται αυτόματα από την μηχανή.

Μέσα στο τμήμα κώδικα με τον τίτλο ANIMATION μπορείτε να ορίσετε επιπλέον ιδιότητες για τα διάφορα animations. Πρέπει να σημειωθεί ότι ο ορισμός των animations είναι προαιρετικός σε αντίθεση με τις προηγούμενες εκδόσεις της WME και τα αρχεία MS3D. 

Οι ιδιότητες των animations ξεκινούν με το όνομα αυτού (NAME) που δηλώνει σε ποιο animation θα ορισθούν αυτές.

Η επόμενη παράμετρος ονομάζεται LOOPINGκαι ορίζει αν το animation θα επαναλαμβάνεται μετά το τέλος του ή όχι. Μερικά προγράμματα 3D μπορούν να εξάγουν αυτή την πληροφορία κατευθείαν στο αρχείο X, ενώ άλλα όχι. Σε αυτή την περίπτωση θα πρέπει να ορίσετε την παράμετρο LOOPING στο αρχείο προσδιορισμού.

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