Στην άσκηση αυτή θα εξοικειωθείτε με τη σχεδίαση διαδρόμων με τα εργαλεία Clipping και Vertex καθώς και με τη χρήση οντοτήτων που επιτρέπουν τη σύνδεση χαρτών μεταξύ τους, χρησιμοποιώντας το λογισμικό Hammer Valve Editor. Ας ξεκινήσουμε λοιπόν! Για τις ανάγκες της εργαστηριακής άσκησης, ανοίξτε το χάρτη που έχει σχεδιαστεί στο αρχείο «hallwayinitial.rmf». Το αρχείο της τελικής σχεδίασης είναι το «hallwayfinal.rmf». Ανάλογα με τα εγκατεστημένα αρχεία υφής με την κατάληξη.wad ή τα αρχεία που εσείς επιθυμείτε να φτιάξετε (μέσω της μετατροπής του αρχείου εικόνας σε αρχείο.wad χρησιμοποιώντας το πρόγραμμα Wally), οι σχεδιάσεις σας μπορεί να γίνουν ιδιαίτερα εντυπωσιακές αρκεί να έχετε φαντασία. Σημείωση: Στο συγκεκριμένο παράδειγμα, τα αντικείμενα θα έχουν λευκό χρώμα, οπότε προσδώστε τους ιδιότητες υφής από τις ήδη διαθέσιμες στο πρόγραμμα Hammer Editor. Η σχεδίαση διαδρόμων μπορεί να γίνει με τρία βασικά εργαλεία: block tool, ώστε να δημιουργήσετε ορθογώνια παραλληλεπίπεδα εντός της σκηνής clipping tool, ώστε να μπορέσετε να "κόψετε" ή να διαχωρίσετε σχήματα σαν να είχατε ένα μαχαίρι και να διαπερνούσατε το πάχος του αντικειμένου vertex tool, ώστε να μπορέσετε να επεξεργαστείτε αντικείμενα μέσω των κορυφών τους (vertices) και να αλλάξετε το σχήμα τους μετακινώντας τις. Από τη στιγμή που δημιουργήσετε τους διαδρόμους, μπορείτε πολύ εύκολα, μέσω της λειτουργίας αντιγραφής-επικόλλησης, να τους χρησιμοποιήσετε σε διάφορους χάρτες. Τα βήματα σχεδίασης ενός μονοπατιού και σύνδεσής του με ένα δωμάτιο είναι τα ακόλουθα: 1. Δημιουργούμε ένα block αντικείμενο στις επιθυμητές διαστάσεις για να δημιουργήσουμε το δωμάτιο σύνδεσης. Δημιουργούμε μία οπή (λειτουργία Hollow) ώστε να φτιάξουμε το άνοιγμα του διαδρόμου, αποδίδουμε υφή στους τοίχους κι εισάγουμε τυχόν αντικείμενα και φωτισμό. Το βήμα αυτό, για εξοικονόμηση χρόνου έχει ήδη γίνει για εσάς. δωμάτιο σύνδεσης 2. Δημιουργούμε ένα ορθογώνιο αντικείμενο-διάδρομο στις επιθυμητές διαστάσεις, είτε συνδέοντας έναν-ένα τους τοίχους είτε εισάγοντας ένα block αντικείμενο και δημιουργώντας του οπή (hollowing). Χρειάζεται προσοχή ώστε το άνοιγμα του διαδρόμου να έχει παρόμοιες διαστάσεις με το "δωμάτιο" που θα ενωθεί και η βάση του να είναι προέκταση του δαπέδου του δωματίου ώστε ο παίχτης-ήρωας να έχει μια φυσική ροή στο περπάτημά του κατά τη μετάβαση από το δωμάτιο στο διάδρομο. διάδρομος οι διαστάσεις των αντικειμένων και το οριζόντιο επίπεδό τους ταιριάζουν Σχεδίαση διαδρόμων και διασύνδεση χαρτών στο περιβάλλον Hammer Editor - Λιβανός Γ. Σελίδα 1
3. Το επόμενο βήμα είναι να "αποδομηθεί" ο διάδρομος στις επιφάνειες από τις οποίες αποτελείται (Το βήμα αυτό δε χρειάζεται αν έχετε φτιάξει το διάδρομο συνενώνοντας τμήματα λεπτού πάχους ως τοίχους του). Για την "αποσύνδεση" των τοίχων απαιτούνται διαδοχικά οι λειτουργίες hollow και ungroup. 4. Μόλις χωριστεί ο διάδρομος σε "τοιχία", διαγράψτε τις κάθετες επιφάνειες αρχής και τέλους (είσοδος-έξοδος) ώστε να δημιουργήσετε τα ανοίγματα. Ελέγξτε για την ευθυγράμμιση. 5. Στο σημείο αυτό λαμβάνει σειρά η φαντασία και η δημιουργικότητα του σχεδιαστή. Επιλέξτε τις δύο κάθετες επιφάνειες (αριστερά δεξιά σε front view) και χρησιμοποιώντας το εργαλείο clipping χωρίστε τις οριζόντια σε 3 τμήματα, όχι απαραίτητα ισόπαχα. Προσέξτε τη χρήση γραμμή clipping του εργαλείου clipping: πρώτα επιλέγουμε τα αντικείμενα που θα χωριστούν, μετά επιλέγουμε το εργαλείο και δημιουργούμε το "χώρισμα" σε όσο το δυνατόν ευθεία τομή παρακολουθώντας την άσπρη γραμμή, στη συνέχεια το πατάμε τόσες φορές ώστε με λευκή γραμμή να σχηματιστεί το νέο σχήμα που θέλουμε και τέλος πατάμε το πλήκτρο ENTER. ΠΡΟΣΟΧΗ: αν πατήσουμε ENTER χωρίς να έχει σχηματιστεί η επιθυμητή μορφή κοπής τότε το επιλεγμένο τμήμα διαγράφεται. 6. Στη συνέχεια, μπορείτε να αρχίσετε να δίνετε "σχήμα" στο διάδρομο ώστε να μη μοιάζει με μια απλή σήραγγα. Προς αυτή τη δημιουργική κατεύθυνση, μπορείτε να δημιουργήστε ασυμμετρίες, μετατοπίζοντας ή κόβοντας τα επιμέρους τμήματα, όπως στο διπλανό σχήμα. Clipping Σχεδίαση διαδρόμων και διασύνδεση χαρτών στο περιβάλλον Hammer Editor - Λιβανός Γ. Σελίδα 2
7. Για ακόμη μεγαλύτερη πολυπλοκότητα σχήματος, μπορεί να χρησιμοποιηθεί το εργαλείο Vertex manipulation, με το οποίο τα αντικείμενα (brushes) μπορούν να πάρουν σχήμα επιπλέον του κύβου ή του παραλληλεπιπέδου, μετακινώντας κατάλληλα τις κορυφές των 3D δομών (Vertex tool) ή δημιουργώντας τομές υπό γωνία (Clipping tool), όπως στο διπλανό σχήμα. Για να χρησιμοποιήστε το εργαλείο Vertex manipulation, πρώτα επιλέγετε το αντικείμενο προς επεξεργασία, μετά επιλέγετε το εργαλείο από την εργαλειοθήκη στα αριστερά, οπότε και οι επιλεγμένες επιφάνειες μετασχηματίζονται σε συνενωμένες κουκκίδες. Μόλις επιλέξτε μία κορυφή, αυτή χρωματίζεται κόκκινη, οπότε και μπορεί να μετακινηθεί σε κατεύθυνση της επιλογής σας. 8. Ολοκληρώστε το σχέδιο του διαδρόμου κατά τη δημιουργική σας κρίση! Το τελευταίο βήμα είναι η απόδοση υφής, η εισαγωγή φωτισμού και ο έλεγχος λειτουργικότητας κατά την εκτέλεση του χάρτη. Από τη στιγμή που έχετε το σχέδιο, μπορείτε, σε λειτουργία αντιγραφής κι επικόλλησης, να δημιουργήστε διαδρόμους μεγάλου μήκους ή να δημιουργήσετε και καμπυλόγραμμα μονοπάτια. απόδοση υφής ακόμα κι οι απλές μετακινήσεις τμημάτων δίνουν την αίσθηση πολύπλοκης σχεδίασης 9. Τελευταίο βήμα αποτελεί η συνένωση του διαδρόμου με δωμάτιο ή άλλο διάδρομο ώστε να επιτρέπεται η ομαλή μετάβαση από το ένα σημείο στο άλλο. Από τη στιγμή που δημιουργήθηκε ένα συμμετρικό σχέδιο, μπορεί να χρησιμοποιηθεί για σύνδεση με άλλα αντικείμενα, ακόμη και σε άλλους χάρτες Ιδεατά, μπορείτε να δημιουργήσετε δικές σας εικόνες υφής και να τις εισάγετε, μέσω της μετατροπής τους σε αρχεία.wad στο λογισμικό Wally, στο περιβάλλον του Hammer Editor. Σχεδίαση διαδρόμων και διασύνδεση χαρτών στο περιβάλλον Hammer Editor - Λιβανός Γ. Σελίδα 3
Στο παράδειγμα αυτό θα συνδέσετε δύο χάρτες (αρχεία "globals1inιtial.rmf" και "globals2inιtial.rmf"), χρησιμοποιώντας τις κατάλληλες οντότητες και ρυθμίσεις. Είναι σημαντικό πως για να γίνει η σύνδεση θα πρέπει "το σημείο ένωσης" που θα τοποθετηθεί να είναι σχεδόν στην ίδια θέση στον ένα και στον άλλο χάρτη, οπότε στα δύο ξεχωριστά αρχεία θα πρέπει να υπάρχει κάποια κοινή σχεδίαση (βλ. σχήμα)! κοινό σημείο σύνδεσης ΧΑΡΤΗΣ 1 -> δωμάτιο 1 + ίδιος διάδρομος ΧΑΡΤΗΣ 2 -> δωμάτιο 2 + ίδιος διάδρομος ΣΕΝΑΡΙΟ ΥΛΟΠΟΙΗΣΗΣ: Στον πρώτο χάρτη- δωμάτιο υπάρχει ένα κουμπί το οποίο θα έπρεπε να ενεργοποιεί την καγκελωτή πόρτα για να ανοίξει, ωστόσο αυτό δε λειτουργεί. Για να ανοίξει η πόρτα θα πρέπει να ενεργοποιηθεί η μηχανή ρεύματος δίπλα στην είσοδο της πόρτας μέσω ενός κουμπιού που βρίσκεται στο δεύτερο δωμάτιο-χάρτη! ΒΗΜΑΤΑ ΥΛΟΠΟΙΗΣΗΣ: Εισάγετε μια οντότητα multi_manager μπροστά από την πόρτα που πρέπει να ανοίξει, με τις παρακάτω ρυθμίσεις: (Η οντότητα αυτή θα ενεργοποιεί την οντότητα του επόμενου βήματος, τον εαυτό της και κάποια λαμπάκια να ανάβουν) Εισάγετε μία οντότητα multisource μπροστά από την πόρτα που πρέπει να ανοίξει. H οντότητα αυτή στην ουσία θα ενεργοποιεί την πόρτα ώστε να περιστραφεί και να ανοίξει. Σχεδίαση διαδρόμων και διασύνδεση χαρτών στο περιβάλλον Hammer Editor - Λιβανός Γ. Σελίδα 4
Συνδέστε το κουμπί που βρίσκεται δίπλα στην πόρτα με την οντότητα multisource opendoor1 που τοποθετήσατε στο προηγούμενο βήμα, η οποία ενεργοποιεί την κίνηση της πόρτας Σε ένα σημείο του διαδρόμου, εισάγετε ένα block αντικείμενο και μετατρέψτε το σε οντότητα trigger_changelevel ώστε να ενεργοποιήσετε το γεγονός "αλλαγή επιπέδου χάρτη", κάνοντας τις κατάλληλες ρυθμίσεις. Τι όνομα θα βάλετε στο πεδίο New map name (είναι το όνομα του αρχείου χάρτη, χωρίς την κατάληξη, στον οποίο θα μεταβείτε!); Σχεδίαση διαδρόμων και διασύνδεση χαρτών στο περιβάλλον Hammer Editor - Λιβανός Γ. Σελίδα 5
Αμέσως μετά οντότητα που τοποθετήσατε στο προηγούμενο βήμα, εισάγετε μία οντότητα info_landmark έτσι ώστε να μπορέσετε να συνδέσετε τους δύο χάρτες σε αυτό το συγκεκριμένο σημείο. Την ίδια οντότητα με το ίδιο όνομα και περίπου στο ίδιο σημείο θα πρέπει να βάλετε και στο δεύτερο αρχείο-χάρτη! Στο δεύτερο χάρτη τώρα, εισάγετε αντίστοιχες οντότητες info_landmark και trigger_changelevel. Φροντίστε να τις τοποθετήσετε στο ίδιο περίπου σημείου του διαδρόμου με αυτό του πρώτου χάρτη (υπάρχει ήδη μια οντότητα παίχτη), ώστε να γίνει πιο ομαλή η αλλαγή της σκηνής. Τι όνομα θα βάλετε στο πεδίο New map name (το όνομα του αρχείο χάρτη στον οποίο θα μπορείτε να μεταβείτε!); Σχεδίαση διαδρόμων και διασύνδεση χαρτών στο περιβάλλον Hammer Editor - Λιβανός Γ. Σελίδα 6
Συνδέστε το κουμπί του χάρτη 2 ώστε να ενεργοποιεί την οντότητα (όνομα switch 1) που βρίσκεται μπροστά από το κουμπί και θα ενεργοποιήσει τον multisource trigger (global_switch1) που έχει συνδεθεί με το άνοιγμα της πόρτας στο χάρτη 1. Γιατί χρησιμοποιούμε οντότητα env_global; Γιατί είναι η μόνη επιλογή για να ενεργοποιηθεί ένα γεγονός μεταξύ δύο χαρτών! Η οντότητα του προηγούμενου βήματος ουσιαστικά δημιούργησε ένα καθολικό γεγονός (global), δηλαδή ένα γεγονός που μπορεί να ληφθεί και από άλλους χάρτες, με το όνομα "global_switch1". Το γεγονός αυτό το "διαβάζει" η οντότητα trigger_auto που βρίσκεται στο χάρτη 1, πάνω από την πόρτα. Ο trigger αυτός ενεργοποιείται (αφου ενεργοποιηθεί μία φορά μετά πρέπει να "σβήσει") και με τη σειρά του ενεργοποιεί τις επόμενες οντότητες ώστε να ανοίξει η πόρτα! Σχεδίαση διαδρόμων και διασύνδεση χαρτών στο περιβάλλον Hammer Editor - Λιβανός Γ. Σελίδα 7
ΣΥΜΠΕΡΑΣΜΑΤΙΚΑ: Στην άσκηση αυτή συνδέσαμε δύο χάρτες (αρχεία "globals1.rmf" και "globals2.rmf"). Η ροή και λειτουργικότητα των οντοτήτων που ρυθμίσαμε ήταν η εξής: Πάτημα κουμπιού για άνοιγμα πόρτας. Προχωράμε προς το διάδρομο ώστε να βρούμε το κουμπί που ενεργοποιεί την πόρτα Σε κάποιο σημείο του διαδρόμου ενεργοποιείται η οντότητα trigger_changelevel του πρώτου "Μπαίνουμε" στο δεύτερο χάρτη (στιγμιαίο μήνυμα "Loading..."), οπότε έχουμε συνδεθεί με ένα άλλο H οντότητα multisource opendoor1 ανοίγει την πόρτα door1 Ο παίχτης μπαίνει στην αποθήκη και παίρνει όπλα και χειροβομβίδες Πατάμε το κουμπί που βρίσκεται στο δεύτερο δωμάτιο H οντότητα multi_manager multi1 ενεργοποιεί τον multisource opendoor1 ΜΕΤΑ... ΓΙΝΕΤΑΙ ΧΑΜΟΣ! Το κουμπί ενεργοποιεί την οντότητα env_global με το όνομα switch1 H οντότητα trigger_auto ενεργοποιεί τον multi_manager multi1 To γεγονός global_switch1 διαβάζεται από την οντότητα trigger_auto Η οντότητα αυτή δημιουργεί ένα γεγονός global_switch1 μετά από 3 sec Σχεδίαση διαδρόμων και διασύνδεση χαρτών στο περιβάλλον Hammer Editor - Λιβανός Γ. Σελίδα 8