Come posso ottenere trame sui bordi delle pareti come in Super Metroid e Aquaria?


57

Giochi come Super Metroid e Aquaria presentano il terreno con le altre parti di fronte con rocce e roba mentre più in profondità dietro di loro (cioè sottoterra) ci sono dettagli diversi o solo neri.

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine

Vorrei fare qualcosa di simile usando i poligoni. Il terreno viene creato nel mio livello attuale come un insieme di caselle quadrate sovrapposte. Non sono sicuro se questo metodo di rendering funzionerà come un sistema per la creazione di terreno, ma se qualcuno ha idee mi piacerebbe ascoltarle. Altrimenti mi piacerebbe sapere come dovrei riscrivere il sistema di rendering del terreno in modo che funzioni effettivamente per disegnare il terreno in questo modo ...


1
Aquaria include un editor di livelli, quindi puoi guardarlo per vedere come hanno costruito esattamente le risorse.

2
Oltre a guardare l'editor di livelli di Aquaria, il metodo di base usato qui è quello di avere due (o più) strati di terreno da renderizzare.
thedaian,

Risposte:


133

Metroid sta usando solo le tessere, niente di speciale sta succedendo lì.

Aquaria invece sta facendo qualcosa di piuttosto intelligente. Se noterai, molte di queste rocce sul letto si ripetono più volte. Ecco una delle rocce per esempio:

una varietà di roccia ripetuta con ciascuna istanza cerchiata

Sembra che abbiano appena scaricato gli sprite lungo i bordi del loro terreno. È un po 'come quello che ha fatto Metroid: un enorme arsenale di tessere perimetrali, ma se presti attenzione puoi notare la ripetizione delle tessere. Acquaria sta facendo la stessa cosa, tranne che con gli sprite di roccia, e non su una griglia.

Come replicarlo

Questo potrebbe non essere esattamente come lo fanno, ma è un modo per produrre lo stesso risultato finale.

Per prima cosa, procurati un bel gruppo di sprite di roccia come questo:

alcuni sprite perdy rock

Ora c'è un processo da seguire in modo da sapere dove metterli.

Determina i vertici e i bordi che compongono il tuo terreno.  Attraversali come un ragno che cammina su una linea di tela e a distanze regolari memorizza le coordinate correnti.  La distanza inverval dipende dalle dimensioni dei tuoi sprite!  Colora un lato in nero, quindi scarica uno sprite su ciascun punto registrato.

Tada!

Puoi usarlo una volta per generare un elenco di rocce e dove disegnarle, quindi basta disegnare tutti i tuoi sprite di roccia. O forse puoi semplicemente disegnare tutti i punti e scegliere uno sprite diverso da disegnare su ogni gradino, facendo il bordo di una buca di lava o un terreno alieno!

E altre caratteristiche del terreno ...

Aquaria avrebbe potuto usare un metodo molto simile per scaricare tutti i funghi, i coralli e altre caratteristiche sul fondo del mare (comprese le gigantesche strutture rocciose che formano lo sfondo). I funghi avrebbero potuto essere generati in questo modo:

  1. Raccogli alcuni punti a intervalli casuali , non a intervalli fissi.
  2. Non limitarti a memorizzare il punto. Memorizza anche la normale del bordo da cui hai scelto il punto.
  3. Scegli una rotazione casuale entro un certo intervallo di rotazione della normale. Ad esempio, se la normale punta a 30 gradi, scegli una rotazione entro 20 gradi (cioè tra 10-50 gradi).
  4. Disegna il tuo fungo alla rotazione scelta e ad una lunghezza del gambo casuale.

Tutto il resto è probabilmente una variazione su quelle stesse istruzioni: il corallo non è ruotato molto, quei due gusci / pietre sono probabilmente posizionati solo se il terreno normale punta approssimativamente verso l'alto (cioè il terreno piatto).

Note finali

Dal momento che un commentatore ha chiesto: creo queste immagini in Adobe Photoshop (ridotto qui del 50% per linee nitide) usando un tablet Wacom Intuos3 (che mi permette di disegnare a mano libera e naturalmente e variare la larghezza della mia linea ecc.).


25
Bella risposta! Grandi opere d'arte di accompagnamento.
Tim Holt,

2
Wow, il maggior numero di disegni e foto che abbia mai visto in una risposta.
Xeoncross,

Migliore risposta. Ottimo lavoro
Ellis,

2
@Jonathan Hobbs: opere d'arte molto belle. Hai disegnato tutto questo? In tal caso, quale programma hai utilizzato? Mi piace molto il risultato e l'effetto che dà quando si prova a dimostrare qualcosa. Grazie.
Jesse Emond,

4
Penso "Devo procurarmi uno di quei tablet per poter fare una buona arte del genere!" Poi penso "Oh giusto, non sono bravo a disegnare comunque e un tablet non lo aiuterà"
MichaelHouse

3

Farlo con i poligoni sarebbe abbastanza semplice, a patto che tu abbia un bel motivo di ripetizione / piastrellatura, puoi facilmente impostare i tuoi modelli per duplicarli lungo una curva, niente di complesso affatto.

Spero che aiuti.


Dopodiché POTREBBE renderizzarlo e utilizzare solo gli aerei per ottenere lo stesso risultato (a condizione che siano solo per il primo piano e che il giocatore non li tocchi mai, in questo modo il poligono all'interno della scena sarebbe più piccolo, poiché è possibile che avere così tanti gli oggetti duplicati (come nei 2 esempi precedenti) saranno piuttosto polifunzionali.
Dan_Tsukasa

Se usi una striscia triangolare per creare il bordo, sarà meno polifunzionale (N / 2) +2, ma non sarai in grado di ottenere il piacevole effetto di "sovrapposizione" senza creare tessere specifiche.
Jonathan Connell,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.