Le style visuel de mon jeu en cours de développement
LAUNDRY GAME (oui, c'est une publicité sans scrupules) est basé sur de
grands pixels clairs en 3D.
J'adore la 3D basse résolution. On m'a posé beaucoup de questions sur la façon dont je l'ai fait, j'ai donc décidé d'écrire un tutoriel.
Remarque: ce n'est que ma décision! Il existe des méthodes utilisant des shaders, des blits graphiques et d'autres astuces, mais pour mon petit projet solo, une telle solution était tout à fait suffisante.Ajout 1: le gars intelligent Pete Brisburn a envoyé un script ici au cas où vous n'aimeriez pas l'astuce «quad dans le ciel» (étapes 4 à 6)!Étape 1: préparation de la scène source
Vous devez d'abord préparer la scène! J'ai créé ce petit cube avec mon ami oiseau
Oscar J. Ruffles . Il court autour du cube et hurle constamment. (Ce ne sont que le contrôleur de personnage et l'animateur connectés ensemble.)
Mais regardez ces lignes de lissage dégoûtantes! Fu, débarrassons-nous d'eux.
Étape 2: retirer les caméras MSAA
Mettez en surbrillance
Appareil photo principal et
décochez la
case Autoriser MSAA . Comme vous pouvez le voir, les pixels sont beaucoup plus nets. Mais il n'y a pas encore de mise à l'échelle! Autrement dit, tous les pixels seront petits. Il doit être corrigé.
Étape 3: rendre la caméra dans la texture de rendu
Je fais un zoom avant (pour obtenir d'énormes pixels
nets ) en utilisant
RenderTexture et en rendant la caméra principale dans cette texture. Cela nous permettra d'utiliser cette texture de rendu comme n'importe quelle texture ordinaire!
Voici les options que j'utiliserai pour ma
RenderTexture . La taille est la taille
à laquelle nous zoomons. Plus le nombre est petit, plus les pixels sont grands. Pour les deux valeurs, j'utilise généralement des nombres compris
entre 300 et 600 (excellent
Celeste , par exemple, effectue un zoom de 320x200).
Le mode filtre est un moyen d'effectuer une montée / descente d'échelle. Le mode «Point» n'ajoute pas d'anticrénelage, c'est-à-dire qu'il préserve la netteté des pixels dont nous avons tant besoin.
Mais que s'est-il passé?
Maintenant, nous rendons la caméra non pas à l'écran, mais dans RenderTexture, donc rien n'est rendu à l'écran!
Pour résoudre ce problème, nous devons configurer une
autre caméra , mais cette fois un peu différente.
Étape 4: créer une caméra zoom + quad
Commençons par créer une nouvelle caméra dans la scène (appelons-la
QuadCamera ) et attachons-lui un
quad 3D comme un enfant.
Étape 5: placez-le quelque part dans le vide
Ensuite, nous devons prendre la
QuadCamera et la pousser quelque part. Peu importe où, l'essentiel est qu'il ne devrait jamais être visible depuis la
caméra principale . Je le soulève généralement haut dans le ciel ou je l'abaisse profondément.
Étape 6: Fixez la texture de rendu au Quad et placez-la devant la caméra
Ensuite, nous prenons le quad. J'ai défini
Sprites-Default pour cela (un matériau Unity standard qui n'est pas affecté par l'éclairage) afin qu'il ne soit pas affecté par un éclairage aléatoire dans la scène.
Faites ensuite glisser la
texture de rendu sur le quad. Maintenant, quad montre notre scène! Ensuite, nous déplaçons le quad pour qu'il se trouve devant la
QuadCamera (la caméra qui rend maintenant l'écran cible).
Comme vous pouvez le voir, l'échelle de rendu a maintenant été augmentée! Oscar peut constamment cliquer sur son bec de pixels! Mais en même temps, nous nous sommes beaucoup plus rapprochés de sa tête.
Étape 7: ajuster les caméras
À la dernière étape, revenons à ma
caméra principale et configurons-la pour que nous puissions voir la même chose auparavant. Ici, vous pouvez augmenter la taille de la texture de rendu afin que les pixels deviennent légèrement plus petits, ou la réduire, de sorte que seuls 7 pixels tiennent sur l'écran. Il est temps d'expérimenter, trouvez ce qui vous convient personnellement.
Bonus: assurez-vous que les textures ne sont pas floues
Comme nous l'avons vu, la texture du modèle (le grand œil d'Oscar) s'est estompée pendant tout ce temps. Cela est dû au fait que lors de l'importation de textures dans Unity, des paramètres standard sont sélectionnés pour générer des textures de mip et une mise à l'échelle fluide. Mais nous n'en avons pas besoin. Par conséquent, lors de l'importation de textures, vous devez désactiver
Générer des mip maps et sélectionner le mode
Point pour le mode
Filtre .