Continueremo con il nostro omaggio a Cookbook di CryENGINE 3 e ti offriremo la possibilità di ottenere una breve anteprima di alcuni dei contenuti che questo fantastico libro ha da offrire. Di seguito troverai il primo dei tre prossimi capitoli di esempio che pubblicheremo nel corso della prossima settimana. Se non hai già inserito la tua possibilità di vincere una copia, scopri come dopo il salto!
L'autunno è finalmente arrivato e ci stiamo avviando in grande stile collaborando con Packt Publishing per darti la possibilità di vincere una delle tre copie del loro attesissimo libro di cucina CryENGINE 3, creato da Dan Tracy e Sean Tracy di Crytek. Con la recente versione di CryENGINE 3 questo è il momento perfetto per entrare e iniziare a lavorare con uno dei motori di gioco più potenti del settore.
Con la complessità complessiva implicata nella creazione di giochi che diventano estremamente difficili e costosi con ogni generazione di console successive, molti sviluppatori di giochi si sono rivolti a motori middleware, come il CryENGINE, che offre una pipeline completa per il processo di sviluppo del gioco. CryENGINE è perfetto per la maggior parte degli sviluppatori in quanto consente agli utenti di creare i loro contenuti in modo rapido e semplice e, quindi, consentire ai giochi di soddisfare e superare gli attuali standard di qualità di generazione e ancora essere creato da sempre meno persone.
In questo articolo di Dan Tracy, autore del libro di cucina CryENGINE 3, tratteremo quanto segue:
Prima di poter fare qualsiasi cosa con il gameplay del progetto che stai creando, per prima cosa abbiamo bisogno di un nuovo livello per il giocatore. Questa ricetta spiegherà come creare un nuovo livello da zero.
Prepararsi
Prima di iniziare, devi aprire Sandbox 3.
Come farlo?
In qualsiasi momento, con Sandbox aperto, puoi creare un nuovo livello seguendo questi passaggi:
1. Fare clic File (trovato nella parte superiore della barra degli strumenti principale di Sandbox).
2. Fare clic Nuovo.
Da qui, vedrai una nuova finestra di dialogo che ti chiederà informazioni su come vuoi impostare il tuo livello. L'aspetto più importante di un livello è nominarlo, dato che non sarai in grado di creare un livello senza una sorta di nome proprio per la directory del livello e .piangere file. Puoi nominare il tuo livello qualsiasi cosa desideri, ma per la facilità delle istruzioni ci riferiremo a questo livello come My_Level:
1. Nel Nome del livello finestra di dialogo, digitare My_Level.
2. Per il Terreno proprietà, utilizzare i seguenti valori:
* Uso Dimensione del terreno personalizzato: Vero
* Risoluzione mappa altezza: 512x512
* Metri per unità: 1
3. Fare clic ok.
A seconda delle specifiche del sistema, è possibile che la creazione di un nuovo livello richiederà da pochi secondi a un paio di minuti. Una volta terminato, il Viewport dovrebbe visualizzare un cielo blu chiaro con la finestra di dialogo nella console che legge le seguenti tre righe:
Pre-cache sincrona terminata di render mesh per 0 CGF
Posizione della fotocamera pre-cache finita (1024,1024,100) in 0,0 sec
Giocatore di spawn per il canale 1
Ciò significa che il nuovo livello è stato creato con successo.
Diamo uno sguardo più da vicino a ciascuna delle opzioni utilizzate durante la creazione di questo nuovo livello.
Utilizzando l'opzione Terreno
Questa opzione consente allo sviluppatore di controllare se avere qualsiasi terreno sul livello da manipolare con una heightmap o meno. A volte il terreno può essere costoso per i livelli e se qualcuno dei tuoi livelli futuri contiene solo interni o solo oggetti posizionati per il giocatore da navigare, quindi impostando questo valore su falso sarà una buona scelta per te e salverà un'enorme quantità di memoria e aiuto nell'esecuzione del livello più tardi.
Risoluzione della mappa dell'altezza
Questo menu a discesa controlla la risoluzione della heightmap e la dimensione base dell'area di gioco definita. Le impostazioni possono variare dalla più piccola risoluzione (128 x 128) fino alla risoluzione più grande supportata (8192 x 8192).
Metri per unità
Se viene visualizzata la risoluzione della mappa di altezza in termini di dimensioni dei pixel, questa finestra di dialogo può anche essere visualizzata come Metri per pixel. Ciò significa che ogni pixel della heightmap sarà rappresentato da questi molti metri. Ad esempio, se ha una risoluzione di heightmap 4 metri per unità (o pixel), quindi ogni pixel sulla heightmap generata misurerà quattro metri di lunghezza e larghezza sul livello.
Anche se questo Metri per unità può essere usato per aumentare la dimensione del tuo livello, diminuirà la fedeltà della heightmap. Si noterà che il tentativo di smussare il terreno può essere difficile in quanto ci sarà una dimensione minima del triangolo più ampia impostata da questo valore.
Dimensione del terreno
Questa è la dimensione risultante del livello con l'equazione di (Heightmap Resolution) x (Meters Per unit). Ecco alcuni esempi dei risultati che vedrai (m = metri):
Se è necessario modificare le dimensioni dell'unità dopo aver creato la mappa, è possibile modificarla accedendo all'Editor del terreno | Modifica | Imposta dimensione unità. Ciò ti consentirà di cambiare i Metri originali per unità in base alle dimensioni che desideri.
Questa ricetta si occupa della generazione procedurale di un terreno. Anche se non è mai abbastanza buono per un prodotto finale perché vorrà mettere a punto la heightmap secondo le vostre specifiche, questi terreni generati sono un ottimo punto di partenza per chiunque sia nuovo a creare livelli o per chiunque abbia bisogno di impostare un livello di test con Sandbox. Diversi semi di mappatura delle altezze e un paio di ritocchi all'altezza del livello e puoi generare rapidamente catene montuose o isole di base che sono immediatamente pronte per l'uso.
Prepararsi
Avere My_Level aprire all'interno di Sandbox.
Come farlo?
In alto nella parte centrale della barra degli strumenti principale di Sandbox, troverai una selezione di menu chiamata Terreno. Da lì dovresti vedere un elenco di opzioni, ma per ora vorrai cliccare Modifica terreno. Questo apre il Editor del terreno finestra.
Il Editor del terreno finestra ha una moltitudine di opzioni che possono essere utilizzate per manipolare la heightmap nel tuo livello. Ma prima vogliamo impostare un heightmap generato di base per noi per costruire una mappa semplice con.
Prima di generare qualcosa, dovremmo innanzitutto impostare l'altezza massima della mappa su qualcosa di più gestibile. Segui questi passi:
1. Fare clic Modificare.
2. Quindi fare clic Imposta altezza massima.
3. Imposta il tuo Altezza massima del terreno a 256 (queste unità sono in metri).
Ora, potremmo essere in grado di generare il terreno:
1. Fare clic Utensili.
2. Quindi fare clic Genera terreno.
3. Modifica il Variazione (base casuale) al valore di 15.
4. Fare clic ok.
Dopo aver generato, dovresti essere in grado di vedere una heightmap simile alla seguente schermata:
Il Altezza massima il valore è importante in quanto regola l'altezza massima alla quale è possibile aumentare il terreno. Questo non significa che sia l'altezza massima del tuo livello interamente, dato che sei ancora in grado di posizionare oggetti ben al di sopra di questo valore. È anche importante notare che se si importa una heightmap in scala di grigi in CryENGINE, questo valore verrà utilizzato come estremo superiore della heightmap (255,255,255 bianco) e l'estremo inferiore sarà sempre a 0 (0,0,0 nero) . Pertanto, la heightmap verrà generata entro 0 m di altezza e l'altezza massima.
Problemi come il seguente sono un evento comune:
* I picchi alti sono ovunque sulla mappa o ci sono montagne imponenti e pendii ripidi:
Soluzione: ridurre il Altezza massima ad un valore più adatto alle montagne e alle piste che desideri
* La mappa è molto piatta e non ha colline o altro dalla mia heightmap:
Soluzione: aumentare il valore Altezza massima ad un valore che è adatto per fare le colline che vuoi
Ecco alcune altre impostazioni che potresti scegliere di utilizzare durante la generazione del terreno.
Impostazioni di generazione del terreno
Le seguenti sono le impostazioni per generare un terreno procedurale:
* Dimensione caratteristica: Questo valore gestisce le manipolazioni dell'altezza generale all'interno del seme e le dimensioni di ciascun tumulo all'interno del seme. Poiché la dimensione della funzione dipende molto dai numeri arrotondati, è facile finire con un'isola perfettamente arrotondata, quindi è meglio lasciare questo valore a 7.0.
* Bumpiness / Noise (Fade): Fondamentalmente, questo è un filtro rumore per il livello. Maggiore è il valore, maggiore sarà il rumore sulla heightmap.
* Dettaglio (passaggi): Questo valore controlla quanto saranno dettagliate le pendenze. Per impostazione predefinita, questo valore è molto alto per visualizzare i singoli rilievi sulle pendenze per dare un'impressione migliore di una superficie più ruvida. Riducendo questo valore diminuirai la quantità di dettagli / ruvidità dei pendii visti.
* Variazione: Controlla il numero di seme utilizzato nella generazione complessiva della mappa altezza terreno. Ci sono un totale di 33 semi che vanno da 0 a 32 da scegliere come base di partenza per una heightmap di base.
* Sfocatura (sfocatura passaggi): Questo è un filtro sfocatura. Maggiore è la quantità, più morbide saranno le pendenze sulla tua heightmap.
* Imposta il livello dell'acqua: Dal Editor del terreno finestra, è possibile regolare il livello dell'acqua da Modifica | Imposta il livello dell'acqua. Questo valore modifica l'altezza di base del livello dell'oceano (in metri).
* Fai l'isola: Questo strumento ti consente di prendere la heightmap dal tuo livello e abbassa automaticamente le aree di confine attorno alla mappa per creare un'isola. Dal Editor del terreno finestra, selezionare Modifica | Crea l'isola.
La capacità di navigare intuitivamente livelli è un'abilità di base che tutti gli sviluppatori dovrebbero avere familiarità con. Fortunatamente, questa interfaccia è abbastanza intuitiva per chiunque abbia già familiarità con lo schema di controllo WASD popolare nella maggior parte dei giochi sparatutto in prima persona sviluppati sul PC.
Dovresti aver già aperto un livello dal contenuto del kit di sviluppo del software CryENGINE 3 e aver visto una vista prospettica che mostra il livello.
La finestra in cui è possibile visualizzare il livello è denominata finestra Prospettiva. È usato come finestra principale per visualizzare e navigare nel tuo livello. Qui è dove verrà creata la maggior parte del tuo livello e verranno eseguite attività comuni come posizionamento di oggetti, modifica del terreno e test di riproduzione in-editor.
Come farlo?
Il primo passo per interagire con il livello caricato è di esercitarsi nello spostamento nella finestra Vista prospettica.
Sandbox è progettato per essere ergonomico sia per utenti mancini che per destrimani. In questo esempio, utilizziamo lo schema di controllo WASD, ma i tasti freccia sono supportati anche per il movimento della telecamera.
1. Premere W per andare avanti.
2. Quindi premere S per tornare indietro.
3. UN viene premuto per spostarsi o spostarsi a sinistra.
4. Finalmente, D viene premuto per spostarsi o spostarsi a destra.
5. Ora hai imparato a spostare la telecamera sui suoi assi principali, è ora di regolare la rotazione della telecamera.
6. Quando il viewport è la finestra attiva, tenere premuto il tasto destro del mouse sul mouse e spostare il puntatore del mouse per attivare la vista.
7. È inoltre possibile tenere premuto il pulsante centrale del mouse e spostare il puntatore del mouse per eseguire la panoramica.
8. Ruota la rotella centrale del mouse per spostare la vista in avanti o indietro.
9. Infine, puoi tenere premuto Maiusc per raddoppiare la velocità dei movimenti della vista.
Viewport consente un'enorme varietà di viste e layout per la visualizzazione del tuo livello; la vista prospettica è solo una delle tante. La vista prospettica è comunemente usata poiché mostra l'output del motore di rendering. Inoltre ti mostra una vista del tuo livello usando la prospettiva della fotocamera standard, mostrando tutti i livelli geometrici, luci ed effetti.
Per sperimentare ulteriormente con il viewport, si noti che può anche eseguire il rendering di sottosistemi e relativi set di strumenti come il flow graph o l'editor di caratteri.
Probabilmente vorrai regolare la velocità del movimento e come personalizzare il viewport a tuo uso personale. È anche possibile dividere il viewport in più viste differenti, che verranno discusse ulteriormente.
Controllo della velocità del movimento di Viewport
Il Velocità input è utilizzato per aumentare o diminuire la velocità di movimento di tutti i movimenti effettuati nella finestra Prospettiva principale.
I tre pulsanti a destra di Velocità: gli input sono collegamenti rapidi al .1, 1, e 10 velocità.
Sotto Viste è possibile regolare la vista per visualizzare diversi aspetti del proprio livello
Le viste Top View, Front e Left mostreranno i rispettivi aspetti del tuo livello, costituiti da bounding box e helper basati su linee. Va notato che la geometria non è disegnata.
La vista mappa mostra una mappa aerea del tuo livello con informazioni su helper, terreno e texture relative al tuo livello.
Divisione della finestra principale in diverse finestre secondarie
I singoli utenti possono personalizzare il layout e impostare opzioni di visualizzazione specifiche per le proprie esigenze utilizzando il menu viewport accessibile facendo clic con il pulsante destro del mouse sull'intestazione viewports.
La finestra di configurazione del layout può essere aperta dall'intestazione viewport sotto Configura il layout. Una volta selezionato, sarà possibile selezionare una delle configurazioni preimpostate per disporre le finestre dell'editor Sandbox in più configurazioni di visualizzazione. È necessario riconoscere che in più configurazioni di visualizzazione alcuni effetti di rendering potrebbero essere disabilitati o le prestazioni potrebbero essere ridotte.
In questa sezione, tratteremo le basi della pittura manuale della vostra altezza. Questa ricetta ti insegnerà come appiattire, alzare, abbassare e levigare manualmente la mappa dell'altezza, dipingendola in entrambi Editor del terreno finestra così come Vista in prospettiva.
Usando il Spazzola del terreno dal Editor del terreno è buono per un passaggio generale di alto livello sul tuo livello; è solo decente quando si inizia su un nuovo livello. Per un lavoro più dettagliato, molti designer usano il Spazzola del terreno dall'interno del Vista prospettica per vedere i loro risultati all'istante. Copriremo entrambi i metodi.
1. Avere My_Level aperto all'interno di Sandbox.
2. Rivedere il Generare un terreno procedurale ricetta per conoscere il Editor del terreno.
3. Rivedere il Navigazione di un livello con la fotocamera Sandbox ricetta per familiarizzare con il Vista in prospettiva.
4. Avere il Rollup Bar disponibile nel tuo layout Sandbox e pronto.
Sul lato destro di questa finestra vedrai un menu di rollout che legge Spazzola del terreno. Questo menu è il punto focale di questa ricetta e ha le stesse funzioni sia nei metodi Terrain Editor che in Prospettiva.
1. Per iniziare, appiattiremo una sezione del livello. Cambiare il genere di pennello (menu a discesa a Appiattire) e impostare i seguenti parametri:
* Raggio esterno = 50
* Raggio interno = 50
* Durezza = 1
* Altezza = 30
2. Ora dipingi sull'angolo nord-ovest della mappa e appiattisci l'intero quarto della mappa.
3. Modificare il genere di pennello a Liscio e impostare i seguenti parametri:
* Raggio esterno = 50
* Durezza = 0,7
4. Tra l'area appiattita e il resto della heightmap generata, dipingere su quest'area, che livellerà la pendenza tra l'area appiattita inferiore e le posizioni più in alto.
5. Cambia il genere di pennello a Sollevalo un pò meno e impostare i seguenti parametri:
* Raggio esterno = 30
* Raggio interno = 25
* Durezza = 0,4
* Altezza = 1
6. Nel appiattito area, dipingi nello stesso punto per vedere l'aumento del heightmap.
7. Scolpisci il terreno nel vista in prospettiva. Il metodo Vista prospettica ha gli stessi pennelli come dimostrato in precedenza, tranne che puoi trovare dove cambiarli nel Rollup Bar sotto il Terreno scheda | Modificare pulsante.
Anche se ognuna delle funzioni del pennello si spiega da sé in base al nome, condividono molte delle stesse proprietà. Queste proprietà sono Raggio esterno, Raggio interno, Durezza, e Altezza (con l'eccezione di Smooth). Quello che segue è ciò che fa ciascuna di queste proprietà:
* Raggio esterno: Il bordo esterno del pennello che sentirà il minimo impatto dal resto dei parametri del pennello.
* Raggio interno: L'area interna che si sentirà il più forte. A seconda di Durezza e Altezza, c'è una caduta tra il Raggio interno e Raggio esterno.
Per creare cumuli, colline o montagne più ripide, impostare il raggio interno ed esterno in modo che siano vicini l'uno all'altro. Per ottenere colline più basse e più levigate, impostare il raggio interno ed esterno più distanti.
* Durezza: Quanto deve essere duro il pennello quando si dipinge? In sostanza, se il Durezza è impostato per 1, quindi con un clic avrai l'altezza desiderata. Se impostato su 0.01, quindi ci vorranno 100 clic per ottenere lo stesso risultato. (Per liscia, controlla quanto sarà difficile provare a normalizzare i triangoli della heightmap).
* Altezza: Controlla l'altezza desiderata che desideri Appiattire strumento per impostare il terreno su, o controlla la dimensione del passo (metri) del Sollevalo un pò meno strumento.
Ecco alcune altre impostazioni aggiuntive che potresti voler utilizzare quando scolpisci un terreno.
Impostazioni del rumore
Abilitare Rumore funziona solo con Appiattire e Sollevalo un pò meno spazzole. Questa impostazione aggiunge un po 'di variazione casuale alla heightmap quando si dipinge con questi pennelli.
* Scala (%): Quanto alta / bassa sarà la modifica del rumore
* Frequenza (%): Quante volte il rumore varierà l'altezza lungo la superficie del terreno
Riposizionare oggetti e vegetazione
Abilitando una di queste caselle di controllo si riposizionerà l'oggetto / vegetazione dopo che l'altezza sotto quella oggetto / vegetazione è cambiata (questo non funziona se l'oggetto è sotto il terreno).
Tutta la vegetazione che è colpita è sotto il Terreno | Vegetazione scheda in Rollup Bar.
Tutti gli oggetti interessati sono sotto il Oggetti scheda in Rollup Bar.
In questa ricetta, ti insegneremo come impostare una nuova trama del terreno simile a un erba che puoi dipingere sul terreno.
Prepararsi
1. Avere My_Level aprire all'interno di Sandbox.
2. Rivedere il Generare un terreno procedurale ricetta per conoscere il Editor del terreno.
3. Rivedere il Navigazione di un livello con la fotocamera Sandbox ricetta per familiarizzare con il Vista in prospettiva.
4. Rivedere il Scultura del terreno ricetta.
5. Avere il Rollup Bar aperto e pronto.
Come farlo?
1. Per prima cosa apri il Strati di texture del terreno finestra, trovata nel principale Barra degli strumenti Sandbox | Terreno | Struttura.
2. In questa finestra, crea un nuovo livello-Aggiungi livello.
3. Rinomina il tuo Nuovo strato a Erba (doppio click Nuovo strato rinominarlo).
4. Quindi modifica la trama del livello di questo livello: Cambia la texture dei livelli | Cartella terreno | ground_mud_grey.dds.
5. Ora cambia la trama dei dettagli; fai clic sul percorso del materiale per questo livello, Materiali / materiale_Terrain_default | Cartella terreno | grass_7. Ritornare a Strati di texture del terreno finestra | Assegna materiale.
6. Configura il tuo livello per avere un colore verdastro-RollupBar | Terreno scheda | Layer Painter | selezionare Erba. Impostare il colore nella casella dei colori su Rosso: 191, Verde: 215, Blu: 138.
7. Salvare il colore sul layer e fare clic su Strato pulsante sopra la scatola dei colori.
8. Dipingi sul tuo terreno.
Il Strato Texture e Texture di dettaglio lavorare insieme in modo sovrapposto per dare vita alla trama del terreno che viene applicata sul terreno. Mentre il Strato Texture funziona meglio come un randomizzatore di luminosità generale (visto con il ground_mud_grey trama) per rompere la piastrellatura distante, il Texture di dettaglio è la trama principale che si vede quando è più vicina alla vista del giocatore.
È importante notare che il Texture di dettaglio dovrebbe fornire solo il dettaglio e non tanto il colore (il colore è gestito nel Strato Texture). Le trame grigie all'interno del materiale del dettaglio non interferiscono con i colori del Strato Texture. Ognuna di queste trame diffuse dovrebbe essere filtrata in alto.
Ecco alcune impostazioni aggiuntive che possono essere utilizzate.
Raggio e durezza: Proprio come Sculpting Terrain, puoi cambiare le dimensioni e la durezza del pennello in Layer Painter in una vasta area coperta con la Texture terreno, o semplicemente per ottenere quei dettagli fini dove ti servono.
Altitudine e pendenza: Questi parametri possono essere impostati per livello consentendo di dipingere solo quel livello all'interno della soglia Altitudine (metri) o Pendenza (gradi). Ciò è particolarmente utile per i livelli a forma di scogliera (ad esempio, da 55 a 90).
Filtro (luminosità): Il cursore Filtro è un passaggio di luminosità extra sul colore che hai già impostato. Senza dover cambiare il colore più e più volte, è possibile modificare rapidamente la luminosità con questo cursore.
Risoluzione delle piastrelle: La risoluzione tessera influisce sul numero di tessere terreno in ogni settore del terreno. Maggiore è la risoluzione, maggiore è la quantità di tessere utilizzate (migliore fusione di livelli e transizioni più morbide nella Texture Layer).
Dal 64x64 al 2048x2048, questa risoluzione della piastrellatura è un fattore importante quando si tratta di ottimizzazione e di terreni di alta qualità. Si consiglia di utilizzare un valore più alto per le aree di gioco della mappa e valori bassi per i settori del terreno che non includano il giocatore.
Generazione di trame di superficie: È importante dopo aver lavorato con le trame del terreno sulla mappa su una texture di superficie generica per cuocere le tue trame sul terreno. Ciò crea una versione compressa del lavoro di texture del terreno dipinto in a .file pak chiamato terraintexture.pak. Le informazioni memorizzate in questo file .pak riducono le dimensioni totali della trama del terreno della mappa a 1/6 della sua dimensione originale e riducono la quantità di richiami al livello.
Per generare trame di superficie, vai a File | Genera texture di superficie | Scegli la risoluzione (superiore = migliore qualità, prestazioni inferiori) | (Opzionale) Alta qualità (esegue un passaggio aggiuntivo sulle trame per ottenere ulteriori dettagli mantenendo lo stesso ingombro di memoria) | ok.
In questo articolo abbiamo dato un'occhiata alla scultura del terreno.
Circa l'autore :
Dan Tracy è il Level Designer di Crytek per il pluripremiato CryENGINE e Crysis 2. È responsabile della creazione e della manutenzione di numerose funzionalità tecniche e applicazioni esterne utilizzate per la telemetria e l'ottimizzazione. Visto come più di un level designer, Dan è orgoglioso di spingere la busta quando si tratta di migliorare sia i disegni tecnici che quelli relativi al gioco in più discipline di produzione. Dan è stato assunto da Crytek nel 2009 dopo l'anno precedente lavorando come tecnico dell'assicurazione della qualità per BioWare. È stato reclutato grazie al suo ruolo fondamentale nel co-fondare e guidare lo sviluppo del progetto di conversione totale vincitore del premio "MechWarrior: Living Legends". Da allora, è stato presentato in numerose riviste di giochi ed è stato intervistato da più organi di stampa. Dan è un appassionato giocatore, ma un modder e game designer ancora più appassionato con una vasta conoscenza ed esperienza con più motori e titoli tra cui "Aurora d'inverno" Aurora, Motore di Battlefield Frostbite, Unreal 3 e CryENGINE.
Nota dell'editore: Questo post è stato sponsorizzato da Packt Publishing.