Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Des fusées de feu d’artifice laissant de la fumée derrière elles, aux bulles sortant de la bouche d’un poisson, les particules sont un excellent moyen d’ajouter des effets spéciaux au contenu de Minecraft: Bedrock Edition.
Dans ce tutoriel, vous apprendrez les éléments suivants:
- Comment créer des effets de particules personnalisés dans Minecraft: BedrockEdition.
- Comment créer un effet de particule à utiliser dans votre carte ou votre extension.
Conditions requises
Nous vous recommandons d’effectuer les étapes suivantes avant de commencer ce tutoriel.
Introduction
Cas d’utilisation des particules
Les particules sont un outil puissant pour améliorer l’expérience visuelle d’une carte ou d’une extension. Elles peuvent être utilisées sur les entités pour des effets d’ambiance, par exemple, la fumée d’échappement, pour des attaques comme les sorts et pour d’autres animations. Les particules peuvent également être utilisées pour des effets d’ambiance dans les cartes, comme des feuilles qui tombent. Vous pouvez également utiliser des particules pour placer des graphiques 2D simples dans votre monde. De plus, les particules sont généralement plus performantes que les entités personnalisées car elles sont simulées entièrement côté client.
Attribution de nom et localisation
Bedrock utilise un format JSON personnalisé pour ses effets de particules. Les fichiers sont stockés dans le dossier particles
de votre pack de ressources. Comme pour les modèles et les entités, les particules sont référencées par leur identifiant, vous pouvez donc sauvegarder le fichier dans n’importe quel sous-dossier à l’intérieur du dossier particles
sans avoir à vous soucier de le référencer.
L’identifiant de la particule est spécifié en haut du fichier JSON. Comme pour les entités, il doit être composé d’un espace de noms et d’un nom, par exemple compass:colored_smoke
.
"description": {
"identifier": "compass:colored_smoke",
},
Unités
Toutes les valeurs dans les effets de particules utilisent les mètres (blocs) et les secondes comme unités. La vitesse est indiquée en mètres par seconde (m/s) et l’accélération en m/s par seconde (m/s²). Les rotations utilisent les degrés, à la fois pour les rotations et les fonctions trigonométriques.
Snowstorm
Nous allons utiliser Snowstorm pour créer les effets de particules dans ce guide. Snowstorm peut être utilisé comme une application web ou comme une extension pour VSCode. Il nous permet de prévisualiser l’effet de particule en direct pendant que nous modifions les paramètres. L’application web peut être utile pour les débutants, mais une fois que vous travaillez sur un projet avec de nombreux effets de particules, l’extension VSCode offre un flux de travail plus rapide.
Interface
Quand vous ouvrez Snowstorm, vous voyez une section de prévisualisation 3D, une barre latérale, la barre de menu, et la barre d’expression sous le menu.
La barre latérale est une liste de tous les différents paramètres et réglages qui composent votre particule. La plupart des champs sont compatibles avec Molang. Cela signifie que vous pouvez saisir des nombres statiques, mais si vous voulez avoir plus de contrôle sur la valeur, vous pouvez également utiliser des expressions mathématiques grâce au langage Molang. Passez la souris sur chaque champ pour afficher une description de ce qu’il fait.
Si vous vous retrouvez avec une expression Molang très complexe, vous pouvez également la modifier dans la barre d’expression située juste en dessous du menu.
La barre de menu vous permet d’importer et d’exporter des fichiers dans l’appli web, de charger des exemples ou de consulter des références.
Sous la barre d’expression, vous pouvez voir l’écran de prévisualisation. Vous pouvez naviguer dans l’espace 3D au moyen des boutons gauche et droit de la souris, ainsi que de la molette de la souris, et vous pouvez utiliser les boutons ci-dessous pour démarrer ou mettre en pause l’aperçu. Dans le coin inférieur droit, vous verrez le FPS et le nombre actuel de particules dans la scène.
Importation et exportation
Si vous utilisez l’application web, les fichiers doivent être importés et exportés via le menu Fichier. Vous pouvez également passer sur l’onglet Code dans le coin supérieur droit pour prévisualiser le fichier généré.
Si vous utilisez des textures personnalisées, celles-ci doivent être chargées individuellement dans la section Textures de la barre latérale.
Si vous utilisez l’extension VSCode, créez un nouveau fichier nommé <name>.particle.json
dans le dossier particles. VSCode l’ouvrira automatiquement avec l’éditeur Snowstorm. Vous pouvez également cliquer sur Open Code dans le coin supérieur droit pour prévisualiser le code généré dans un nouvel onglet et vous pouvez même modifier le code ici directement.
Création d’un effet de particule
Dans ce guide, nous allons créer un simple effet de fumée colorée, étape par étape. Tout d’abord, ouvrez Snowstorm et localisez la section Méta dans la barre latérale. Saisissez l’identifiant de l’effet de particule - nous utiliserons compass:colored_smoke.
Émetteur
Maintenant, nous allons modifier l’émetteur. L’émetteur est la pièce maîtresse de l’effet de particule et est responsable du spawning de particules. Tout d’abord, nous devons ouvrir la section Rate et définir combien de particules sont générées. Nous laisserons le paramètre de mode sur Steady, ce qui signifie que l’émetteur générera constamment des particules, et nous définirons la vitesse à 30 et le maximum à 100. Cela signifie que l’émetteur générera 30particules par seconde pendant sa durée de vie, tant qu’il n’existe pas plus de 100 particules de cet émetteur dans le monde.
Ensuite, nous allons définir la durée de vie de l’émetteur. Nous voulons que cet effet de particule ne soit appliqué qu’une seule fois, mais si vous avez besoin d’un émetteur constant, vous pouvez également le définir en boucle. Nous allons également définir le temps actif à 2, ce qui signifie que l’émetteur va générer des particules pendant deux secondes.
Par défaut, les particules seront générées à un seul point au centre de l’émetteur. Ce paramètre étant adapté à notre effet de particules, nous n’avons pas besoin de modifier quoi que ce soit dans la section Shape.
Taille de particule
Nous allons maintenant passer aux paramètres des particules et configurer les paramètres d’apparence. Toutes les particules sont un plan 2D auquel est appliquée une texture. Dans les paramètres de taille, nous pouvons définir la largeur et la hauteur de ce plan, où chaque valeur correspond au rayon. Cela signifie qu’en définissant la taille sur 1 x 1, on obtient une taille de 2 x 2 blocs. Nous utiliserons 0,25 x 0,25 dans cet exemple.
Mouvement et physique des particules
L’étape suivante consiste à définir comment les particules se déplacent. Dans la section Motion, nous laisserons le mode Direction réglé sur Outwards. Pour les émetteurs ponctuels, cela signifie toujours que les particules se répandront de manière égale dans toutes les directions.
Maintenant que la particule a une direction définie, changeons la vitesse. Dans la section Motion, nous allons régler la Speeed sur math.random(2, 4)
. Il s’agit d’une simple expression mathématique qui produira toujours un nombre décimal aléatoire compris entre 2 et 4. La vitesse est calculée une seule fois dès que la particule apparaît, donc maintenant, chacune de nos particules a une vitesse de départ aléatoire.
L’accélération définit les forces qui agissent sur la particule après qu’elle apparaît. Par exemple, pour simuler la gravité sur terre, on définirait la valeur du milieu (axe Y) sur -9.8
. Pour la fumée, nous allons utiliser 0
, 3
, 0
comme accélération afin d’obtenir un mouvement ascendant lent.
Pour l’instant, l’accélération va rendre les particules exponentiellement plus rapides. Pour les faire ralentir après un laps de temps et les garder dans un espace, nous allons ajouter une résistance à l’air. Vous pouvez l’imaginer comme de l’air épais qui ralentira lentement l’accélération quand la particule atteindra sa vitesse terminale. Nous allons régler cela sur 2 pour l’instant.
Pour faire légèrement varier la résistance à l’air, rendons cette valeur aléatoire. L’expression de la résistance à l’air est évaluée une fois par image, donc l’utilisation de la fonction mathématique aléatoire ne fonctionnera pas dans ce cas, car les valeurs aléatoires s’annuleraient avant même de pouvoir le remarquer. À la place, nous allons utiliser une variable intégrée. Chaque particule et chaque émetteur se verra automatiquement attribuer 4 variables aléatoires qui ne changeront pas au cours de sa vie. Les variables contiennent un nombre aléatoire compris entre 0 et 1. Ainsi, pour obtenir une valeur de résistance à l’air aléatoire entre 2 et 3, nous allons définir la valeur sur 2 + variable.particle_random_1
.
Durée de vie des particules
Maintenant, nous voulons définir combien de temps les particules existent dans le monde. Pour obtenir un effet de fondu lent, nous allons à nouveau randomiser ce nombre. Puisque l’âge max. n’est évalué qu’une seule fois lors de la création de la particule, nous pouvons atteindre cet objectif en définissant sa valeur sur math.random(1, 3)
.
Texture
Vous pouvez créer votre propre texture pour la particule et le sauvegarder dans le dossier textures du pack de ressources. Pour des raisons pratiques, nous allons utiliser le sprite de particule par défaut de Minecraft dans cet exemple. Pour référencer cette texture, saisissez textures/particle/particles dans le champ Path de la section Texture. La texture sera chargée automatiquement et s’affichera dans le jeu, même si elle ne se trouve pas dans votre pack de textures actuel puisqu’il s’agira par défaut de la version vanilla de la texture.
La texture de particule que nous allons utiliser est la plus grande particule de fumée. Comme nous voulons animer la texture pour passer progressivement à des tailles de particules de fumée plus petites, réglez UV Mode sur Animated.
L’ensemble de la carte de texture, qui comprend les textures pour toutes les particules, a une résolution de 128 x 128 pixels. La plupart des pièces du sprite ont une dimension de 8 x 8 pixels. Cependant, ces valeurs sont mises à l’échelle par un facteur 2. La taille de la texture sera donc de 16 x 16 pixels, et les autres options seront basées sur cette taille.
Le pixel de départ de la plus grande particule de fumée est de 56 pixels horizontalement, mis à l’échelle par un facteur 2 à 112. Comme les textures sont de 16 par 16 dans ce contexte, diviser 112 par 16 donnera 7, qui est la valeur du champ UV Start. Vous pouvez également compter le nombre de textures qui apparaissent avant la texture avec laquelle vous voulez commencer (il y a 7textures qui apparaissent avant la plus grande particule de fumée). Cependant, le décompte des textures à la main peut être plus difficile s’il y a beaucoup d’espace vide.
Puisque l’animation implique d’aller vers des textures de fumée plus petites, la valeur UV Step sera définie sur -1 par 0. Cela signifie qu’il ira à gauche de 16 pixels horizontalement (en fonction de la taille de la texture) à la texture précédente et ne changera pas verticalement. Nous allons également définir Max Frame sur 7
. L’animation aura huit images puisqu’il y a 8 textures, et la première est comptée comme «frame 0», donc la dernière image est «frame 7».
Dans ce cas, nous voulons répartir uniformément toutes les images sur la durée de vie de la particule. Donc, nous allons laisser le champ FPS vide, laisser Loop non coché, mais cocher Stretch To Lifetime. Maintenant, nous avons une texture animée qui fonctionne.
Couleur
Maintenant, nous voulons appliquer des couleurs aléatoires aux particules. La texture de base est blanche, ce qui constitue un excellent point de départ pour la coloration des particules.
Nous allons utiliser une palette de couleurs différentes, et chaque particule choisira une valeur aléatoire. Tout d’abord, ouvrez la section Color & Light et sélectionnez le mode Gradient. Configurons un bel arc-en-ciel simple ici. Vous pouvez ajouter un point de couleur à l’aide de l’icône +, le déplacer et modifier la couleur de chaque point.
La palette de couleurs par défaut est comprise entre 0 et 1. Cela signifie que nous pouvons maintenant simplement utiliser une autre de nos variables aléatoires intégrées pour choisir une couleur aléatoire. Nous allons entrer variable.particle_random_2
dans le champ Interpolant. Maintenant, chaque particule va apparaître dans une couleur aléatoire du gradient.
Le résultat final devrait ressembler à quelque chose de similaire à ceci dans Snowstorm:
Utilisation de l’effet de particule dans le jeu
Il y a trois façons d’utiliser les effets de particules dans le jeu:
Commandes
C’est la façon la plus simple de tester un effet. Utilisez la commande /particle
pour invoquer un émetteur de particules dans le monde.
Notes
Puisque les effets de particules sont entièrement réalisés côté client et que les commandes sont exécutées côté serveur, le serveur n’est pas conscient des effets de particules. Cela signifie que vous n’obtiendrez pas de message d’erreur si vous essayez de lire un effet de particule qui n’existe pas.
Voici un exemple de commande: les trois tildes à la fin de la commande indiquent la position, dans ce cas la position exacte où la commande a été exécutée, donc la position des pieds du joueur ou le centre du bloc de commande exécutant la commande.
/particle compass:colored_smoke ~ ~ ~
Animations
Les particules peuvent également être lues dans les animations d’entités. Il s’agit d’un processus en deux étapes. Tout d’abord, il faut lier l’effet de particule dans le fichier d’entité du client et lui donner un nom court. Ensuite, vous pouvez utiliser ce nom court dans une animation.
Ajoutez-le à votre fichier d’entité client dans l’objet description:
"particle_effects": {
"smoke": "compass:colored_smoke"
}
Les images clés de l’effet de particule peuvent être ajoutées à une animation dans Blockbench. Cliquez sur le bouton Animate Effects au-dessus de la ligne de temps et ajoutez une image clé au canal Particle. Saisissez maintenant le nom court (tel que défini dans le fichier d’entité client) dans l’entrée Effect du panneau d’images clés.
Vous pouvez également spécifier un localisateur dans le fichier d’entité où l’effet de particule apparaîtra. Vous pouvez également attribuer une variable dans l’entrée Script qui pourra être utilisée ultérieurement à l’intérieur de l’effet de particule.
Exemple:
variable.custom_size = 3.14;
Contrôleurs d’animation
Les effets de particules peuvent également être joués par des contrôleurs d’animation. Pour ce faire, ajoutez d’abord l’effet de particule à votre fichier d’entité client comme expliqué ci-dessus. Ensuite, ajoutez un ou plusieurs effets de particules à un état spécifique de votre contrôleur d’animation, comme le montre cet exemple:
"particle_effects": [
{
"effect": "smoke"
}
]
Quelle est la prochaine étape?
Félicitations, vous êtes arrivé à la fin de cet (p)article! Vous savez comment créer un effet de particule personnalisé, comment configurer l’émetteur, modifier la physique, comment utiliser une texture animée et comment la colorer.
La création d’effets de particules est une question d’essais et d’erreurs, de combinaison de différents paramètres et d’utilisation d’expressions Molang pour alimenter les paramètres. Pour en savoir plus, nous vous encourageons à consulter les exemples de particules et à parcourir la configuration pour apprendre comment différentes valeurs et expressions peuvent être utilisées pour créer des effets. Et surtout, explorez tous les paramètres, amusez-vous et voyez ce que vous pouvez en sortir.