Confusion sur la taille des sprites dans l'espace mondial (Unity)

11

J'ai un Sprite avec une résolution 1080x1920. Et j'ai également réglé la résolution d'affichage du jeu sur 1080x1920. Ce que je pensais, c'est que le sprite (1080x1920) devrait s'intégrer correctement dans la vue de la caméra.

la résolution de l'image est de 1080x1920

Mais lorsque je fais glisser ce sprite, le sprite est agrandi et sort de la vue de la caméra.

vue écran, sprite est hors caméra

Quels ajustements dois-je faire pour m'assurer que ce sprite est 100% adapté à la vue de la caméra. J'aurais pu changer l'échelle de transformation de sprite. Mais cela causera des problèmes car j'ai beaucoup d'autres sprites à gérer et ils devraient être proportionnels.

Faizan Khan
la source
Parlez-vous d'un sprite 3D? Ou sprite UI 2D?
TomTsagk
Un
sprite

Réponses:

19

Cela a du sens lorsque vous vous souvenez que les sprites ne sont pas simplement mélangés pixel par pixel sur votre écran (ce qui en ferait un cauchemar pour obtenir le même aspect sur des écrans avec des résolutions différentes, car ils recadreraient tous votre art différemment) , mais ils font plutôt partie de votre monde 3D dans un système de coordonnées de jeu indépendant de l'appareil que vous pouvez contrôler.

Comme tout le reste de ce monde de jeu, la partie qui finit par être mappée à l'écran est déterminée par la façon dont vous avez configuré votre objet Appareil photo.

Donc, il y a quatre parties qui décident de la taille de votre sprite:

  1. La résolution source du sprite.

  2. Le paramètre Pixels par unité choisi dans son inspecteur des paramètres d'importation.

    Cela définit un facteur de conversion pour transformer les tailles des pixels dans l'espace de texture en unités dans l'espace du monde (c'est-à-dire l'espace dans lequel tous vos calculs de gameplay et de physique se produisent)

    Hauteur en unités universelles = Hauteur source en pixels / pixels par unité

    Vous devez généralement choisir ce numéro pour l'aligner sur certaines métriques de jeu pertinentes de votre jeu. par exemple. si vous avez une grille de tuiles avec un espacement de 135 pixels, choisir Pixels par unité = 135 rendra chaque cellule de votre grille exactement 1 unité de large dans le système de coordonnées du jeu, ce qui rendra vos calculs plus pratiques.

  3. La taille orthographique de votre caméra.

    (Ou, si vous utilisez une caméra en perspective, une combinaison du champ de vision de la caméra et de la profondeur de la caméra à votre sprite)

    Cela détermine combien d'unités de votre monde votre appareil photo peut voir, du centre de sa vue au bord supérieur.

    Partie de la hauteur de la caméra occupée = hauteur en unités universelles / (2 * taille ortho caméra)

    Donc, si nous courons avec la valeur de 135 PPU, le sprite de 1920 pixels de hauteur sera de 14,222222 unités dans le monde, ce qui signifie que nous aurons besoin d'un appareil photo d'une hauteur de 7,1111111 pour capturer le tout de haut en bas (puisque la hauteur de la caméra est mesurée à partir de le milieu)

  4. La taille en pixels de votre résolution de fenêtre / écran de sortie.

    Par défaut, la vue de la caméra remplira l'écran verticalement, donc si votre écran / fenêtre change de hauteur, le recadrage vertical de votre scène ne changera pas (un objet en haut ou en bas de l'écran ne bougera pas ou être recadrée, la scène entière deviendra juste plus grande ou plus petite pour remplir la hauteur disponible).

    Ainsi, le nombre d'unités mondiales que votre appareil photo peut voir de haut en bas correspond au nombre de pixels dans votre fenêtre / écran de haut en bas.

    Taille du pixel de sortie = partie de la hauteur de la caméra occupée * hauteur de la fenêtre en pixels

    Donc, si notre écran mesure 1 920 pixels de hauteur et que notre image-objet source remplit exactement la vue de la caméra, elle sera sortie sur l'ensemble des 1 920 pixels de l'écran en alignement 1: 1.

DMGregory
la source
Je vous suis vraiment reconnaissant pour votre réponse détaillée !!!!
Faizan Khan
3
Je suis content que vous l'ayez trouvé utile! J'ai écrit quelques autres questions et réponses sur l'utilisation des tailles de sprite dans Unity qui pourraient également aider: sur le choix des tailles de sprite , sur la correspondance de l'apparence des sprites de différentes tailles , sur la mise à l'échelle du pixel art
DMGregory
1
Merci .... Je vous ai également suivi sur Twitter ... Je me sens vraiment bien d'avoir interagi avec une personne travaillant chez UbiSoft :)
Faizan Khan