Comment obtenir des textures sur le bord des murs, comme dans Super Metroid et Aquaria?


57

Des jeux comme Super Metroid et Aquaria présentent le terrain avec les autres parties en vis-à-vis ayant des roches et autres objets, tandis que plus profondes derrière elles (c'est-à-dire sous terre), il y a des détails différents ou juste du noir.

entrez la description de l'image ici

entrez la description de l'image ici

J'aimerais faire quelque chose de similaire en utilisant des polygones. Le terrain est créé dans mon niveau actuel sous la forme d'un ensemble de cases carrées superposées. Je ne sais pas si cette méthode de rendu fonctionnera comme un tel système pour la création de terrain, mais si quelqu'un a des idées, j'aimerais les entendre. Sinon, j'aimerais savoir comment je devrais réécrire le système de rendu de terrain pour qu'il puisse réellement dessiner le terrain de cette manière ...


1
Aquaria inclut un éditeur de niveau. Vous pouvez donc y jeter un coup d'œil pour voir comment ils ont construit les actifs.

2
Outre l’éditeur de niveau d’Aquaria, la méthode de base utilisée ici consiste à restituer deux couches de terrain (ou plus).
Thedaian

Réponses:


133

Metroid n'utilise que des tuiles, rien de spécial.

Aquaria fait cependant quelque chose d'assez intelligent. Si vous remarquez, beaucoup de ces roches sur le lit se répètent plusieurs fois. Voici l'une des roches par exemple:

une variété de roche répétée avec chaque instance encerclée

On dirait qu'ils viennent de déposer des sprites sur les bords de leur terrain. C'est un peu comme ce que Metroid a fait - un arsenal massif de tuiles de chant, mais si vous faites attention, vous remarquerez la répétition des tuiles. Acquaria fait la même chose, sauf avec des sprites de roche et non sur une grille.

Comment le répliquer

Ce n'est peut-être pas exactement comme ils le font, mais c'est une façon de produire le même résultat final.

Tout d’abord, procurez-vous une belle bande de sprites de rock comme ceci:

quelques sprites de perdy rock

Maintenant, il y a un processus à suivre pour que vous sachiez où les mettre.

Déterminez les sommets et les arêtes qui constituent votre terrain.  Les traverser comme une araignée traversant une ligne de toile et à des distances régulières stocke les coordonnées actuelles.  La distance invervale dépend de la taille de vos sprites!  Coloriez un côté en noir puis déposez une image-objet sur chaque point enregistré.

Tada!

Vous pouvez l'utiliser une fois pour générer une liste de roches et leur emplacement, puis dessinez tous vos sprites de roches. Ou peut-être pouvez-vous simplement dessiner tous les points et choisir un sprite différent sur lequel dessiner à chaque pas, créant ainsi le bord d'une fosse de lave ou d'un terrain étranger!

Et d'autres caractéristiques du terrain ...

Aquaria aurait pu utiliser une méthode très similaire pour vider tous les champignons, coraux et autres éléments présents sur le fond marin (y compris les structures rocheuses géantes qui forment la toile de fond). Les champignons auraient pu être générés comme ceci:

  1. Rassemblez des points à des intervalles aléatoires et non à des intervalles fixes.
  2. Ne vous contentez pas de stocker le point. Stockez également la normale du bord dont vous avez choisi le point.
  3. Choisissez une rotation aléatoire dans une certaine plage de la rotation de la normale. Par exemple, si la normale pointe à 30 degrés, choisissez une rotation dans les 20 degrés (c’est-à-dire entre 10 et 50 degrés).
  4. Dessinez votre champignon à la rotation choisie et à une longueur de tige aléatoire.

Tout le reste est probablement une variation par rapport aux mêmes instructions: le corail ne fait pas l'objet d'une rotation importante, ces deux coquillages / pierres ne sont probablement placés que si la normale du terrain pointe approximativement vers le haut (c.-à-d. Que le terrain est plat).

Notes finales

Depuis qu'un intervenant a demandé: Je crée ces images dans Adobe Photoshop (rétréci ici de 50% pour des lignes nettes) à l'aide d'une tablette Wacom Intuos3 (qui me permet de dessiner à main levée et naturellement et de faire varier la largeur de mes lignes, etc.).


25
Bonne réponse! Grande illustration d'accompagnement.
Tim Holt

2
Wow, la plupart des dessins et des photos que j'ai jamais vus sur une réponse.
Xeoncross

Meilleure réponse. Excellent travail
Ellis

2
@ Jonathan Hobbs: Très belle oeuvre d'art. Avez-vous dessiné tout cela? Si oui, quel programme avez-vous utilisé? J'aime beaucoup le résultat et l'effet que cela donne lorsqu'on essaie de démontrer quelque chose. Merci.
Jesse Emond

4
Je pense "je dois prendre une de ces tablettes pour pouvoir faire du bon art comme ça!" Ensuite, je me suis dit "Oh oui, je ne suis pas bon en dessin de toute façon et une tablette ne va pas aider à cela"
MichaelHouse

3

Faire cela avec des polygones serait assez simple, tant que vous avez un joli motif de répétition / mosaïque, vous pouvez facilement définir la duplication de vos modèles le long d'une courbe, sans aucune complexité.

J'espère que ça t'as aidé.


Après cela, vous POUVEZ le rendre et utiliser simplement des avions pour obtenir le même résultat (à condition qu’ils ne soient que pour le premier plan et que le joueur ne les touche jamais les objets dupliqués (comme dans les 2 exemples ci-dessus) seront très intensifs
Dan_Tsukasa

Si vous utilisez une bande triangulaire pour créer la bordure, la densité sera moins intensive (N / 2) +2, mais vous ne pourrez pas obtenir le bel effet de «chevauchement» sans créer de mosaïques spécifiques.
Jonathan Connell
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.