Changer un sprite d'une animation 2D

Questions techniques liées à l’utilisation d'Unity (et n'entrant pas dans le cadre d'une des sections suivantes)
Didjynn
Messages : 10
Inscription : 09 Déc 2016 18:40

Changer un sprite d'une animation 2D

Message par Didjynn » 22 Déc 2016 11:26

Bonjour à tous, j'espère que vous avez prévu de passer de bonnes fêtes.

Comme j'ai quelques interrogations, je me permets de vous en faire part :
Sachant que j'anime plusieurs sprites dans un empty, je voulais savoir s'il est possible de ne pas avoir à refaire toute une animation lorsqu'on ne veut en changer qu'un seul élément par exemple en cas de personnalisation. J'ai un personnage qui marche et je peux changer son pantalon, me faut-il refaire l'animation de l'élément changé ou y-a-t-il un moyen pour que je ne change que cet élément en sachant que le nouveau pantalon a forcément les mêmes dimensions (à quelques pixels prêt).

D'une autre manière, peut-on le faire en programmation ? Remplacer dynamiquement le pantalon du personnage y compris dans ses animations ?

Enfin, si pour des raisons de performance je dois réduire la taille des PNG que j'anime (les sprites donc), est-il possible de redimensionner l'animation pour l'adapter à la nouvelle taille des sprites ? Ou faudra-t-il que je replace tout comme il faut à la main ?

D'avance je vous remercie pour vos réponses, couvrez vous bien parce que fais froid ! (et puis surtout je ne l'ai pas fait et me voilà enrhumé maintenant...)
Dernière édition par Didjynn le 22 Déc 2016 12:33, édité 1 fois.

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6215
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Changer un sprite d'une animation 2D

Message par boubouk50 » 22 Déc 2016 12:09

L'animation est gérée comment? Si tu changes seulement la texture du sprite, toutes les animations du sprite (gameObject) resteront. Si l'animation est dans la texture de sprite (animation de texture) alors il te faut forcément faire cette animation pour le nouveau pantalon dans la texture de sprite.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Didjynn
Messages : 10
Inscription : 09 Déc 2016 18:40

Re: Changer un sprite d'une animation 2D

Message par Didjynn » 22 Déc 2016 12:59

merci pour la réponse :)

Je crée un empty dans lequel je pose mes sprites et les anime. Je suppose donc que je ne modifie pas directement les sprites (enfin, j'espère).

Après aurais-tu une idée pour mon histoire de redimensionnement ?

Merci encore !

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6215
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Changer un sprite d'une animation 2D

Message par boubouk50 » 22 Déc 2016 13:15

Il ne faut pas confondre la dimension de la texture et taille du Sprite.
Un sprite de 200x200 pixel (taille du gameObject: RectTransform) gardera sa taille de 200x200 avec une texture 512x512 ou 64x64.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Didjynn
Messages : 10
Inscription : 09 Déc 2016 18:40

Re: Changer un sprite d'une animation 2D

Message par Didjynn » 31 Déc 2016 10:55

Merci pour cette réponse bien que je ne sois pas certain d'avoir bien compris.

Il faudrait donc que je crée un empty pour chaque sprite, que j'anime l'empty et que je change le sprite à l'intérieur au besoin ?

Je me suis également demandé comment je pourrais me débrouiller pour l'optimisation (24 éléments par perso, ça fait peut être un peu beaucoup pour le pc et encore plus si je veux un jour rendre ce jeu jouable sur téléphone).
Pour le moment, je n'ai toujours qu'un empty dans lequel j'ai tous mes sprites que j'anime ensuite directement dans la scène de unity (un peu comme un automate, j'ai découpé mes personnages à chaque articulation et comme je trouve le rendu sympathique et qu'il y aura de la personnalisation, je ne vois pas comment faire autrement).

Je vous remercie d'avance pour votre temps,

Une bonne année avec quelques heures d'avance !

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6215
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Changer un sprite d'une animation 2D

Message par boubouk50 » 03 Jan 2017 12:13

Tu as donc créé une hiérarchie d'éléments. Du coup, pour changer un sprite pas de souci de compatibilité avec l'animation (L'animation est stockée dans le transform, pas dans la texture).
Il te suffit donc de changer la texture de tes sprites sur les bons éléments au moment voulu.
Sur le forum, il y a beaucoup de posts sur le changement de sprite au runtime. Tu trouveras la solution avec un peu de recherche.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Répondre

Revenir vers « Unity le logiciel »