In questa serie di tutorial, creeremo un'applicazione di simulazione di volo utilizzando ShiVa3D Suite. Per costruire questa applicazione, tratteremo tutti gli argomenti necessari per creare giochi 3D, applicazioni educative e applicazioni 3D innovative. Questo tutorial, parte 2 della serie, riguarderà l'ambiente e la creazione del terreno.
Nella parte 1 di questa serie, abbiamo introdotto l'applicazione simulatore di volo denominata Simulator e spiegato il processo di sviluppo che abbiamo seguito durante la creazione del simulatore. Abbiamo anche descritto il contenuto dell'archivio di download che accompagna questa serie e le manovre di volo di base simulate nell'app. In questo tutorial, iniziamo a descrivere come sviluppare il gioco usando l'Editor ShiVa. Il nostro obiettivo principale sarà la creazione dei componenti visivi dell'applicazione.
Per prima cosa forniamo una breve introduzione ai vari moduli disponibili nell'editor ShiVa. Prendiamo in prestito la maggior parte di queste informazioni dalla documentazione della guida di ShiVa Editor.
Data Explorer è un gestore risorse per fornire l'accesso a vari elementi del gioco, tra cui il gioco stesso, scene, AIModels, materiali, ecc. La sua interfaccia utente presenta tali risorse in una struttura gerarchica di cartelle.
Editor di giochi è il modulo principale dell'editor che consente allo sviluppatore di modificare la risorsa del gioco. Ad esempio, con l'editor di giochi, uno sviluppatore può definire le scene e l'AIModel associato al gioco.
Scene Viewer consente allo sviluppatore di visualizzare le scene del gioco e i modelli in quelle scene.
Scene Explorer è un modulo separato indipendente dal visualizzatore di scene. Lo sviluppatore utilizzerà principalmente lo Scene Explorer per trovare e gestire le risorse in una scena.
Editor di ambiente è usato per modificare gli attributi visivi di una scena come il colore, l'illuminazione e vari effetti visivi.
Editor AIModel consente allo sviluppatore di modificare AIModels. Con l'editor AIModel, è possibile definire variabili, funzioni, stati e gestori per un AIModel.
Script Editor è usato per modificare script di un AIModel.
I passaggi per creare il simulatore possono essere organizzati come segue:
Avvia l'Editor di ShiVa. Dal menu della barra in alto, seleziona Principale -> Progetti -> Aggiungi. Inserisci un percorso di cartella per memorizzare il gioco. (Abbiamo scelto D: \ ShProj \ Projects \ Flight_Simulator.) Questo è mostrato sotto.
Chiudere la finestra di dialogo premendo Chiudi.
In Data Explorer, evidenzia la cartella Giochi, quindi fai clic con il pulsante destro del mouse su Crea -> Gioco.
Assegna un nome al simulatore del gioco. premere OK.
In Data Explorer, evidenzia la cartella Scene e dal menu di scelta rapida Crea -> Scena.
Assegna un nome alla scena Scene1. premere OK.
Apri l'editor di giochi e in Esplora dati, sotto la cartella Giochi fai doppio clic sul simulatore. Nell'Editor dei giochi, dovresti vedere varie proprietà del gioco Simulator.
Nell'Editor dei giochi seleziona la scheda Scene. In Esplora dati nella cartella Scene selezionare Scene1, trascinarlo e rilasciarlo nella scheda Scene in Game Editor. Dovresti vedere qualcosa di simile a questo:
Nella scheda Scene di Game Editor, fai doppio clic su Scene1. Vedrai un segno di spunta verde sotto la colonna Loaded.
Il singolo elemento visivo più importante nel Simulatore è il terreno perché, a parte il cielo, il terreno è ciò che l'utente vedrà durante l'intera simulazione. ShiVa Editor ci consente di creare terreni sofisticati. Ai fini di questa serie, creeremo un terreno relativamente semplice. Per maggiori informazioni sulle capacità del terreno di ShiVa Editor, vedi il capitolo 16 del Libro di Shiva di Shando e questo articolo su Terrain Creation.
Mostra l'editor del terreno. In Esplora dati, nella cartella Scene, fai doppio clic su Scene1. Nel menu dell'editor del terreno, seleziona Crea.
In Terrain Editor, seleziona il menu Crea.
premere OK.
Abbiamo definito un quadrato i cui bordi sono i confini del terreno. Su ogni lato, ci sono 32 blocchi in cui la dimensione del blocco è 128 (4 x 32). Con queste definizioni, ciascun lato del terreno è composto da 4.096 unità (4 x 32 x 32).
Ora, aggiungeremo irregolarità, cioè colline e cavità, al terreno. Nell'editor del terreno, seleziona la sezione Chunk. Fai clic sull'angolo in alto a sinistra del terreno (mostrato sotto):
Tieni premuto il pulsante del mouse e trascina il cursore fino all'angolo in basso a destra per selezionare tutti i blocchi come mostrato di seguito.
Mentre tutti i blocchi del terreno sono selezionati, vai alla sezione Geometria nell'Editor del terreno e fai clic sul rettangolo a sinistra che contiene una freccia blu rivolta verso il basso.
Dal menu a discesa, selezionare Rumore.
Sostituire i seguenti valori:
premere OK.
A questo punto, abbiamo creato le irregolarità del terreno. Ora dobbiamo solo aggiungere un po 'di colore.
Ora vai alla sezione Materiali nell'editor del terreno. Seleziona le caselle di controllo "Ricevi illuminazione dinamica" e "Ricevi ombre dinamiche". Assicurati che l'importo AO sia 0.00 e che la distanza AO sia 10.
Ancora, nella sezione Materiali, seleziona Ambiente. Nella finestra di dialogo Seleziona colore, inserisci:
Fai clic su "OK".
Nella sezione Materiali, fai clic su Diffuse e quindi, nella finestra di dialogo Seleziona colore, inserisci:
premere OK.
Nella sezione materiali, fare clic su Speculare e nella finestra di dialogo Seleziona colore, immettere:
premere OK.
Infine, nella sezione Materiali, fare clic sul pulsante Produzione.
Alla domanda "Effettua effettivamente la selezione?" premere Sì.
Ora che la superficie del terreno è stata creata, nella sezione Chunks di Terrain Editor dovresti vedere qualcosa di simile (anche se l'altezza minima e massima possono leggermente variare).
Successivamente, dobbiamo creare il cielo sopra il terreno. Questo sarà fatto usando la funzione Skybox di ShiVa Editor. Lo Skybox ha sei lati: anteriore, superiore, sinistro, destro, posteriore e inferiore. Il terreno si trova sul fondo e gli assi X, Y e Z globali puntano rispettivamente verso destra, in alto e sui lati posteriori dello Skybox. Per ogni lato (eccetto il fondo, poiché è coperto dal terreno) forniremo un'immagine da 512 pixel x 512 pixel per costruire il nostro Skybox. (Vedi sotto).
Per un aspetto senza soluzione di continuità, tali immagini devono essere tali che i bordi adiacenti di due immagini debbano adattarsi inseparabilmente insieme, ad es. il bordo destro dell'immagine sinistra e il bordo sinistro dell'immagine anteriore. Per ottenere questo effetto, è più facile se si creano quelle immagini da un'immagine panoramica e si applicano ulteriori modifiche, se necessario. Durante l'esecuzione nel simulatore, è possibile osservare un'imperfezione dovuta al bordo sinistro dell'immagine posteriore che non si fonde con il bordo destro dell'immagine destra. Tuttavia, ciò che dovremmo è sufficiente per gli scopi di questa serie.
Nel menu Esplora dati, selezionare Importa -> Texture.
Nella finestra di dialogo Importa trama, fai clic su '? 'accanto al File per importare e selezionare i seguenti cinque file dall'archivio del codice che accompagna questo tutorial:
La finestra di dialogo Importa una trama sarà simile a questa:
Premere il pulsante Importa per completare l'importazione. Ora, in Data Explorer, se selezioni la cartella Textures, vedrai i file importati (evidenziati sotto):
Apri l'editor di Ambience e in Data Explorer, fai doppio clic su Scene1 nella cartella Scene (se ti viene chiesto di salvare Scene1, scegli "Sì").
L'editor di Ambience sarà simile a questo:
In Ambience Editor, mostra la sezione Sky. Sotto Skybox, fai clic sulla freccia accanto a Front (-Z) e seleziona front_crop
.
Allo stesso modo, selezionare right_crop
per destra (-X), back_crop
per indietro (+ Z), left_crop
per sinistra (+ X) e top_crop
per Top (+ Y). Dovresti avere il seguente.
Ora, aggiungeremo una fonte di luce a Scene1. In ShiVa Editor, c'è una sorgente di luce dinamica predefinita chiamata DefaultDynamicLightSet, che è un modello integrato (Nota: dalla documentazione di ShiVa Editor, l'illuminazione dinamica viene utilizzata per spostare luci / oggetti, con rendering della luce in tempo reale mentre la luce statica è utilizzato per illuminazione statica e ombre, su oggetti statici, per i nostri scopi abbiamo selezionato una sorgente di luce dinamica).
Mostra Visualizzatore scene ed Esplora dati side-by-side. In Data Explorer, sotto la cartella Scene, fai doppio clic su Scene1 (se ti viene chiesto di salvare Scene1, scegli "Sì").
Dovresti vedere qualcosa di simile all'immagine sotto in Scene Viewer
In Esplora dati, aprire la cartella Modelli, che si trova direttamente nella cartella Flight_Simulator di livello superiore. Seleziona DefaultDynamicLightSet, quindi trascinalo sul Visualizzatore scene.
In Data Explorer, vai alla cartella Scene e fai doppio clic su Scene1. Quando viene richiesto di salvare Scene1, selezionare Sì. Ora, porta su Scene Explorer. Sotto la scheda Oggetti, dovresti vedere DefaultDynamicSet, così come DefaultCamera.
In Scene Explorer, sotto la scheda Modelli dovresti vedere quanto segue.
Ora creeremo l'AIModel per il gioco. Questo verrà utilizzato per memorizzare il codice e le variabili per il simulatore. In Esplora dati, fare clic con il tasto destro sulla cartella AIModels nella cartella Risorse. Dal menu, selezionare Crea -> AIModel.
Assegna un nome a AIModel MainAI. premere OK.
Ora, dobbiamo associare il MainAI al gioco Simulator. Mostra l'editor di giochi e l'esploratore dei dati affiancati. In Esplora dati, sotto la cartella Giochi, fai doppio clic sul simulatore. Il simulatore è ora caricato nell'editor di giochi. Apri la scheda Principale nell'Editor di giochi. Vedrai che la sezione AI principale dell'utente è vuota.
In Data Explorer, sotto la cartella Risorse -> AIModels, seleziona MainAI, trascinalo nella sezione User AI principale nell'Editor di giochi. Dovresti vedere quanto segue.
Nella parte 2, abbiamo iniziato a descrivere come sviluppare il gioco usando l'Editor di ShiVa. Il nostro obiettivo principale era la creazione dei componenti visivi dell'applicazione. Nella parte 3, continueremo con l'aggiunta del codice e dell'unità di test del prodotto finale.