Pour résumer les points ci-dessus, ce qui importe pour que deux éléments de pixel art correspondent, c'est que leur densité de pixels (texels par zone d'écran / unité mondiale) soit la même.
En utilisant certains sprites de Stardew Valley comme exemple, nous pouvons voir que même si les sprites ont des dimensions de texture différentes, ils correspondent sur une grille cohérente car chaque pixel est dessiné de la même taille.
Si nous considérons la taille de la plante comme une tuile / une unité d'espace mondial, nous pouvons voir que cette unité s'étend sur 16 pixels horizontalement et verticalement. Le personnage, ayant deux fois la hauteur de la plante, couvre également deux fois le nombre de tuiles / unités mondiales, de sorte que la densité de pixels reste la même à 16 pixels par unité mondiale.
Pour Unity en particulier, il l'expose pour vous en tant que paramètre Pixels par unité dans l'inspecteur des paramètres d'importation de Sprite . Tant que vous utilisez un nombre cohérent ici pour tous vos sprites, Unity se chargera automatiquement de les dessiner à la bonne taille dans votre monde pour conserver cette densité de pixels - même si ce sont des tailles impaires et non pas deux ou exactes. multiples de la taille de votre carreau. Donc, dans cet exemple, à la fois l'arbuste et le personnage, et tout le reste dans le jeu utiliserait un PPU OF 16.
Le nombre exact que vous choisissez n'est pas un problème, c'est la cohérence qui compte le plus. Si nous voulions que chaque tuile s'étende sur 2 unités mondiales, afin que lors de l'édition de niveau, nous puissions facilement nous aligner sur les coins de tuiles (nombres impairs) et les centres de tuiles (nombres pairs), alors nous utiliserions un PPU de 8 à la place pour tous nos sprites.
Ne le baissez pas trop bas. Vous verrez des articles recommandant un paramètre PPU de 1, ce qui signifie qu'un sprite de 256 pixels s'étendra sur 256 unités mondiales. Bien que cela puisse ne pas sembler alarmant, des systèmes comme la physique sont réglés en supposant que la plupart de votre gameplay se déroulera sur des échelles de dixièmes à des dizaines d'unités, et rendre votre échelle trop grande peut entraîner un mauvais comportement. Essayez de choisir un certain nombre de pixels significatifs dans votre gameplay, comme la largeur de votre personnage ou votre tuile. Cela facilitera également vos calculs pour la programmation et la conception de niveaux (par exemple, "Je veux que ce personnage lance 3 tuiles correctement, donc c'est x + 3.0f
")
Notez que la mise à l'échelle d'une image-objet, d'une image d'interface utilisateur ou de ses parents à l'aide des propriétés de transformation les distordra de cette densité de pixels cohérente, alors soyez très prudent avec les propriétés d'échelle et conservez la plupart ou la totalité de votre scène à une échelle de 1,0 pour plus de simplicité.
Une dernière mise en garde est que rien de tout cela ne détermine la taille réelle de vos sprites sur votre écran - cela est déterminé par la taille de votre fenêtre / écran de jeu, et la taille / FoV / angle de votre caméra. Pour des pixels parfaits en 2D, vous devrez également vous assurer que la hauteur de votre fenêtre est un multiple entier du nombre de pixels d'image-objet que votre caméra voit (hauteur orthographique de la caméra x 2 x PPU)