[2D] Animated Shiny Effect / Effet de brillance animé

Tous les tutoriaux unity, de la communauté ou d'ailleurs.
Avatar de l’utilisateur
cayou66
Codeur
Codeur
Messages : 6450
Inscription : 30 Juin 2011 14:45
Localisation : Montréal

[2D] Animated Shiny Effect / Effet de brillance animé

Message par cayou66 » 04 Oct 2012 02:17

Sujet: Réaliser un effet brillant sur des textures 2d.
Difficulté:

ImageImageImageImageImage

Salut à tous !
J'ai réalisé il y a peu de temps un p'tit effet sympa 2d, à savoir la surbrillance animé des textures2d. J'ai parcouru les forums et j'ai rien trouvé sur ça, pour Unity.
Si vous voulez plus de détails, vous pouvez vous rendre à cette adresse:
http://addyosmani.com/blog/shinetime/

En gros c'est ça, comme un effet de brillance présent dans pas mal de jeux, surtout les jeux oldschool. Je vais vous détailler la procédure, les ressources nécessaires, ainsi qu'un exemple (et une démo si vous êtes sage :) ).
Vous pouvez retrouver le lien de mini tutoriel sur mon site en bas de page.

Le principe:
Le meilleur moyen de réaliser un tel effet, c'est de se servir d'un shader particulier, et de coupler ça à l'animation UV tiling d'une texture. Pour ceux qui ne savent pas, vous avez la doc, et plein d'exemple qui traitent de ce sujet.
http://docs.unity3d.com/Documentation/C ... erial.html
Le shader va prendre 2 textures, et utiliser le channel alpha pour découper l'image selon une autre, comme un masque.

Exemple:
Image

Pré-requis:
- Shader:
http://cayou-prod.com/unity/AlphaTest-Diffuse.shader

- Exemples de textures:
La texture qui représente le reflet:
http://cayou-prod.com/images/shine2D.png
L'image de base:
http://cayou-prod.com/images/title.png

- Script:
http://cayou-prod.com/unity/Shine2DAnimation.cs

- HOTween. Si vous voulez utiliser mon code, il vous faudra HOTween, mais il ne me sert juste qu'à faire varier la variable de tiling, rien de plus. C'est juste pour des raisons pratiques.
http://www.holoville.com/hotween/download.html

Bien entendu, ces ressources sont libres :)

Utilisation:
Passons à la mise en pratique !
Créez deux planes 2d dans votre scène, l'un devant l'autre. Le plus près va recevoir notre shader spécial, ainsi que notre script Shine2DAnimation. Le second plane, derrière sera juste un plane avec un shader transparent, contenant l'image de base, notre titre.
Voilà à quoi ça doit ressembler pour l'instant:

Image

Une fois les paramètres des planes changés comme expliqué (le fond avec la texture title en transparent/diffuse, et celui de devant avec la texture Shine2D et le shader Transparent/cutout/AlphaTest), voilà le résultat:

Image
(ouvrez l'image dans un autre onglet pour l'avoir en entier)

Vous pouvez attribuer donc pour l'image en avant plan la texture du titre en première texture, et le Shine2D en seconde.

Vous appliquez le script sur le plane au 1er plan. Là vous pouvez paramétrer différentes valeurs, loop ou non, le temps entre chaque loop, le temps de l'animation.
Enfin la valeur min et max du tiling. Perso j'ai mis -1 et 0.6. Ça va dépendre sans doute de vos images, mais il faut que ça soit assez grand pour que le reflet sorte de l'image.

Une fois fait, il suffit de rajouter une lumière devant, en spotlight, pour rendre la texture du 1er plan plus lumineuse. Et vous pouvez lancer :)

Voici le résultat:
http://cayou-prod.com/unity/ShineExampl ... layer.html

Voici le package du projet, pour les fainéants :)
http://cayou-prod.com/unity/ShineExampl ... itypackage

N'hésitez pas à poser des questions, j'ai fais ça rapidos, il se pourrait que j'ai oublié des éléments importants.

Merci !

http://cayou-prod.com/?p=192&lang=fr
Dernière édition par cayou66 le 04 Oct 2012 13:25, édité 1 fois.

Avatar de l’utilisateur
axel
Messages : 1924
Inscription : 26 Avr 2012 09:10
Localisation : Lille - Dunkerque
Contact :

Re: [2D] Animated Shiny Effect / Effet de brillance animé

Message par axel » 04 Oct 2012 07:36

très bon, merci

Avatar de l’utilisateur
Franck
Bricoleur
Bricoleur
Messages : 2884
Inscription : 08 Jan 2011 18:43
Localisation : Tours

Re: [2D] Animated Shiny Effect / Effet de brillance animé

Message par Franck » 04 Oct 2012 08:33

Sympa.
Cela offre des perspectives intéressantes a ceux qui surf sur la 2d.

Merci.
Dés fois j'bug, dés fois j'bug pas.

Avatar de l’utilisateur
xstahef
Messages : 163
Inscription : 27 Avr 2012 09:10
Localisation : Fréjus
Contact :

Re: [2D] Animated Shiny Effect / Effet de brillance animé

Message par xstahef » 05 Oct 2012 11:27

Merci :)

Avatar de l’utilisateur
Shaowkan
Codeur
Codeur
Messages : 319
Inscription : 30 Sep 2012 12:37
Localisation : Marseille
Contact :

Re: [2D] Animated Shiny Effect / Effet de brillance animé

Message par Shaowkan » 08 Oct 2012 20:19

Sa rend super :) merci

Avatar de l’utilisateur
cayou66
Codeur
Codeur
Messages : 6450
Inscription : 30 Juin 2011 14:45
Localisation : Montréal

Re: [2D] Animated Shiny Effect / Effet de brillance animé

Message par cayou66 » 09 Oct 2012 04:18

J'aimerai en faire un truc plus simple d'utilisation, mais je vois pas trop comment. Ça serait cool aussi de l'intégrer à NGUI ou un autre truc.
Après, cette méthode est impossible avec le GUI d'unity de base.

Merci à vous :)

J'espère pouvoir faire plus de trucs et astuces à l'avenir ;)

Avatar de l’utilisateur
cayou66
Codeur
Codeur
Messages : 6450
Inscription : 30 Juin 2011 14:45
Localisation : Montréal

Re: [2D] Animated Shiny Effect / Effet de brillance animé

Message par cayou66 » 19 Oct 2012 15:06

Je pense faire prochainement un ensemble d'astuces (mini tuto, un peu comme celui là) pour réaliser un jeu 8bit style, avec certaines mécaniques qui donnent un effet old school que j'ai appris en essayant d'en faire un.
J'espère que ça vous plaira, et que vous pourrez même y contribuer.

Au delà de ça, je trouverai ça intéressant qu'on lance des sujets particuliers sur des thèmes, et que chacun apporte son astuce, selon l'expérience qu'il en a. Cela permettrait d'établir une sorte de base pour démarrer dans tel ou tel autre genre de jeu.
Jeux de rythmes, jeux de course, plateformes...Tous ces jeux ont des sortes de "règles" qui fondent le genre, et en les respectant, cela permet de bien se lancer dans l'aventure.

J'ai pensé au 8bit car c'est un genre qui m'est cher et qui est plutôt facile en mettre en place en solo.

Répondre

Revenir vers « Tutoriaux »