Préparez votre Animation sous Unity, pour un effet garanti.
Cet effet est aussi très utilisé dans les jeux car il permet d'ajouter du dynamisme à l'action en cours, à l'aide principalement d'une Animation, qui sera préparée directement dans l'éditeur de Unity.
Vous pouvez retrouver prochainement cet effet dans le jeu , encore en cours de développement, qui sera publié sur Itch.io. En attendant sa publication, vous pouvez suivre le développement des systèmes et du jeu en lui-même, en rejoignant Tipee.
Pré-requis: Bases de l'utilisation de Unity . Bases du C# . Les bases de l'animation sous Unity
Décomposition de l'effet
Comme vous pouvez le voir dans la vidéo démo ci-dessus, on peut décomposer l'effet d'apparition de l'arbre "planche" en plusieurs étapes, assez simples:
- Un effet d'Animation jouant sur le scale pour l'effet pop-up du modèle 3D
- Un effet de particules pour mieux visualiser l'apparition
Le reste sera du script C#, qui permettra d'instantier notre prefab dans la scène.
Préparation du prefab
Vous pouvez décider de prendre n'importe quel élément 3D que vous pouvez trouver sur l'asset store de Unity ou tout autre site proposant des modèles 3D.
Dans le jeu vidéo, nous utilisons un modèle 3D qui représente un arbre "planche", mais si vous n'avez rien sous la main, l'effet fonctionne aussi avec un cube, une sphère ...
Créer l'animation de pop up
Ainsi dans une nouvelle scène placez votre modèle 3D, et ajouter lui un composant Animator.
Créez un Asset Animator, nommez le deadTreeAnim et donnez le au composant Animator (slot controller).
Il faut maintenant ajouter des animations dans notre asset animator !
Commençons donc par créer les animations.
Ouvrez le vue Animation
Menu du haut => Window => Animation => Animation
Sélectionnez votre GameObject qui porte le composant Animator, et créez 2 animations nommées idle et popup
Puis choisissez l'animation popup et cliquer sur le bouton record pour enregistrer vos changements, afin de créer l'animation.
Sélectionnez bien votre GameObject et utilisez l'outil scale pour changer la taille du modèle sur des keyframes bien précis de votre animation.
Enfin testez votre animation en appuyant sur le bouton play de la vue Animation.
Si vous êtes content de l'effet vous pouvez passer à la suite. L'animation idle ne fera rien de spécial elle, ce sera juste l'état d'arrivée
Paramétrer l'Animator
Double-cliquez sur l'asset animator pour ouvrir la vue "Animator"
Window => Animation => Animator
Ajoutez vos 2 animations, si elles ne sont pas déjà là, et créez les transitions entre les 2 états. Notez bien que l'état de départ est bien popup, permettant de jouer cet animation dès l'apparition du modèle 3D. De plus les transitions sont juste réglées sur Exit Time.
A ce stade si vous lancez la scène, votre GameObject devrait jouer la bonne animation dès le début.
Ajouter des effets visuels
Afin d'affiner l'effet, il est intéressant d'ajouter un ou plusieurs effets de particules.
Pour cela rien de plus simple. Si vous avez déjà l'effet de particules c'est encore plus simple, sinon il va falloir le créer ou en utiliser un existant.
Pour le jeu vidéo nous avons décidé d'utiliser Magic Arsenal, qui est un asset payant, mais de très bonne qualité.
Mais pourquoi ne pas tout créer, même l'effet de particules ?
En effet c'est tout à fait possible. A ce sujet vous pouvez retrouver sur notre chaîne Youtube, un tutoriel sur les système de particules.
Mais dans le cadre de ce tutoriel nous allons partir du postulat, que vous avez déjà un effet de particules, prêt à l'emploi.
Ainsi le seul travail consiste à donner votre effet de particules à votre GameObject
Comme vous pouvez le voir sur la capture ci-dessus, le GameObject deadTree est constitué du modèle 3d et de 2 effets de particules.
A partir de maintenant votre prefab est terminé. Glissez-déposez le dans la zone Asset pour en faire un asset de type Prefab .
Test et démonstration
Il est temps de tester votre prefab, en créant un script C# qui sera en charge de créer des instances de votre prefab dans la scène.
Créez un nouveau script, nommez le par exemple TestEffect.cs, et donnez le à un GameObject de votre scène.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TestEffect : MonoBehaviour {
[SerializeField] GameObject prefab;
void Update () {
if (Input.GetKeyDown(KeyCode.Space)) {
GameObject arbre = Instantiate(prefab, Vector3.zero, Quaternion.identity);
}
}
}
Le script de test est très simple, car il ne fait que créer des instance du prefab dans la scène.
Dans l'éditeur de Unity donnez le prefab au composant TestEffect sur le slot prefab, prévu à cet effet.
Il ne vous reste plus qu'à lancer la scène et à tester le tout. En appuyant sur la touche espace, vous devriez voir apparaître votre GameObject avec son effet d'animation pop up !
Une démo en vidéo
//video youtube tuto associé (en cours de réalisation)
Nous arrivons au terme de ce tutoriel sur la création d'un effet pop up à l'apparition.
Si vous rencontrez un souci, n'hésitez pas à venir nous ne parler sur le discord de la communauté.