Dans ce neuvième tutoriel de la série consacrée au feu et à la fumée avec le simulateur Fluid de Blender 4.5, nous allons voir comment utiliser les Force Fields, comme Turbulence et Curve Guide, pour influencer le comportement et la trajectoire des éléments dans la simulation.
Ce tutoriel fait partie d’une mini-série de 10 épisodes sur les bases du Feu et de la Fumée dans Blender 4.5. Pour voir la liste complète des épisodes, cliquez ici.
La version vidéo de ce tutoriel n’est pas actuellement disponible dans cette langue, mais elle est disponible en anglais en sélectionnant la langue correspondante en haut de la page.
Transcription de la vidéo
Bonjour à tous. Dans ce neuvième tutoriel de la série consacrée au feu et à la fumée avec le simulateur Fluid de Blender 4.5, nous allons voir comment utiliser les Force Fields, comme Turbulence et Curve Guide, pour influencer le comportement et la trajectoire des éléments dans la simulation.
La scène de départ que j’utilise pour ce tutoriel est très simple. Elle se compose uniquement du Domain et d’une sphère qui émet à la fois du feu et de la fumée en mode Inflow.
En ajoutant un Empty à la scène, nous pouvons lui attribuer un Force Field afin de perturber ou de guider les éléments de la simulation. Les Force Fields se trouvent dans le panneau Physics, tout comme les simulations Fluid pour les objets Mesh. J’ai choisi Arrows comme type d’Empty, car certains Force Fields agissent selon des directions spécifiques, et ce type d’Empty permet de les visualiser immédiatement plus facilement.

J’ajoute ensuite un Force Field, qui est par défaut de type Force. Pour chaque Force Field, une infobulle indique son action et les directions dans lesquelles il agit. Force possède par défaut la forme Point et agit radialement à partir de son centre.
Cependant, en lançant la simulation, aucun effet n’est visible, même si l’objet Inflow semble se trouver dans la zone d’influence du Force Field.
Dans ce cas, une procédure qui semble fonctionner est la suivante : après avoir enregistré le fichier du projet, spécifiez un dossier de cache. Ensuite, passez le mode de Baking du Domain sur All et laissez Blender calculer la simulation pendant au moins quelques images.
Une fois ce processus terminé, appuyez sur Play pour vérifier si la simulation a été correctement calculée. Si c’est le cas, effacez le Domain Cache et remettez le mode de Baking sur Replay.
Ajustez à la fois la durée de l’animation du projet et la plage d’images de la simulation dans le Domain, puis cliquez sur Play dans la Timeline.
Si la simulation fonctionne maintenant correctement, vous pouvez à partir de ce moment tester les différents effets en mode Replay.
Pour contrôler l’intensité des effets, les Force Fields disposent d’un champ Strength, qui s’applique au Force Field sélectionné et peut être animé.
Petite remarque : vous pouvez modifier la valeur d’un champ pour plusieurs objets sélectionnés en même temps en maintenant la touche ALT enfoncée avant de cliquer sur le champ à modifier.

Le champ Strength permet donc d’ajuster, y compris par animation, l’intensité des Force Fields individuels. Mais comme nous l’avons vu dans les tutoriels sur le Domain, il est également possible de contrôler l’influence de tous les Force Fields de la scène, ou de tous les Force Fields d’un certain type. Ces réglages se trouvent dans la section Field Weights du Domain et, comme dans de nombreux cas, ils peuvent également recevoir des keyframes. Cela signifie que l’effet d’un ou de tous les Force Fields peut être animé au fil du temps.
Le champ Strength de Force, comme celui de nombreux autres Force Fields, peut aussi prendre des valeurs négatives. Dans le cas de Force, cela entraîne une attraction du feu vers le Force Field.
À l’écran, je montre un exemple créé en animant le mouvement de l’Empty dans la scène et en attribuant une valeur négative à Force. Comme vous pouvez l’imaginer, c’est une manière intéressante de diriger le feu et la fumée.

Présenter tous les paramètres de chaque Force Field disponible nécessiterait une mini-série à part entière, je ne le ferai donc pas ici. Cependant, il y a une section qui mérite d’être examinée : Falloff, qui permet de définir une plage d’influence pour un Force Field.
Pour l’instant, le Force Field affecte tout l’espace virtuel sans aucune atténuation. Pour vous montrer un exemple plus clair, je remplace Force par Wind en conservant une valeur négative pour Strength. Même si Wind agit uniquement sur l’axe Z et se trouve assez loin de l’objet Inflow, celui-ci est toujours influencé.

Pour limiter la portée d’influence du Force Field, nous pouvons utiliser le champ Max Distance dans la section Falloff. Par défaut, ce paramètre est désactivé. Une fois activé, la portée du Force Field est représentée par un cercle dans le Viewport 3D.
Comme beaucoup d’autres paramètres, Max Distance peut également recevoir des keyframes, ce qui offre un autre moyen de contrôler les effets d’un Force Field dans une animation. Dans ce cas, Wind attire les flammes et la fumée parce que j’ai laissé Strength avec une valeur négative.

Je désactive maintenant Max Distance, je rétablis l’orientation d’origine du Force Field et j’attribue une valeur positive à Strength afin d’examiner rapidement quelques autres Force Fields.
Un Force Field très utile pour ajouter du mouvement aux flammes est évidemment Turbulence. La perturbation qu’il introduit est si forte que la fumée rend les flammes moins visibles, je la réduis donc en utilisant l’option Dissolve dans le Domain.
Turbulence peut être rendu encore plus aléatoire en augmentant le paramètre Noise. Ce bruit est en réalité pseudo-aléatoire, car il suit certains motifs, et vous pouvez choisir le motif à l’aide du paramètre Noise Seed.
Si vos flammes paraissent trop uniformes, même après avoir ajusté Vorticity ou ajouté des Textures, un petit Force Field Turbulence peut être exactement ce dont vous avez besoin.
Pour terminer, examinons le Force Field Curve Guide, qui permet de faire suivre un chemin aux éléments de la simulation.
Pour cet exemple, j’ai recréé la scène initiale à partir de zéro, en enregistrant le nouveau projet dans un nouveau fichier et en définissant un nouveau dossier de cache pour le Domain. Ainsi, les paramètres initiaux du Domain et des objets Inflow placés dans la scène correspondent à ceux par défaut lors de leur création.
Cependant, j’active Dissolve, avec un nombre d’images plus élevé que la valeur par défaut, afin d’éviter que la fumée ne masque trop la vue.
Je déplace également l’objet Inflow sur le côté pour laisser de la place à la courbe du chemin.

Après avoir ajouté une courbe Bezier et l’avoir positionnée afin de lui attribuer un Force Field Curve Guide, les résultats sont assez décevants.
Si vous connaissez les courbes et le modificateur Curve Guide, vous savez qu’il est recommandé de définir l’Origin de la courbe au début du chemin et, surtout, de vérifier que la courbe possède la bonne orientation. Cela peut être contrôlé en Edit Mode avec les Curve Overlays, et une orientation incorrecte peut être corrigée avec Switch Direction.
En relançant la simulation, les choses s’améliorent légèrement, mais ce n’est toujours pas satisfaisant.
J’ai essayé différents réglages, comme désactiver la gravité dans le Domain et augmenter la valeur Curve Guide dans les Field Weights. Bien sûr, j’ai également tenté de réduire Vorticity et Reaction Speed, d’augmenter la résolution, et bien plus encore. Quelque chose change, mais pas suffisamment. Je vais donc vous montrer la méthode que j’utilise habituellement pour obtenir le résultat souhaité.
J’ajoute un Particle System de type Emitter à l’objet avec Inflow et je configure les paramètres de base afin que les particules soient correctement émises. Notez que les particules suivent immédiatement la courbe, car l’émetteur se trouve dans la zone d’influence du Force Field.

La portée du Force Field peut être définie dans son panneau à l’aide du paramètre Minimum Distance. Dans cette section, nous pouvons également régler Clumping sur 1 afin que toutes les particules convergent vers l’extrémité de la courbe.
À ce stade, je règle le Render du système de particules de l’émetteur sur None, car ces particules ne doivent pas être rendues, puis je retourne dans le panneau Inflow.
Dans ce panneau, je change Flow Source de Mesh à Particle System, en indiquant le système de particules que je viens de créer. De cette façon, le feu et la fumée seront émis à partir des particules qui suivent le chemin.
À partir de là, vous pouvez ajuster des paramètres tels que Fuel, Vorticity et d’autres afin de donner aux flammes l’apparence souhaitée.

Avant de terminer le tutoriel, je vais également vous montrer comment relier un point de contrôle d’une courbe à un objet externe à l’aide d’une technique appelée Hooking, ce qui permet d’animer facilement la forme de la courbe.
Je sélectionne d’abord la courbe, je passe en Edit Mode et je sélectionne le dernier point de contrôle. J’utilise ensuite l’opérateur Hook en choisissant l’option Hook To New Object, ce qui crée un Empty à cet effet.

En Object Mode, vous pouvez déplacer cet Empty et animer ses mouvements, ce qui déforme la courbe et les flammes en conséquence. Bien entendu, vous pouvez utiliser la même technique pour ajouter d’autres Empties à d’autres points de contrôle de la courbe et créer des animations plus complexes.

Comme vous l’avez peut-être remarqué, à un certain moment l’émission de particules s’arrête. Ce paramètre s’appelle Frame End et se trouve dans le panneau Particle System. Dans le même panneau, le paramètre Lifetime contrôle la vitesse à laquelle les particules parcourent la courbe.

Avant de conclure, voici encore quelques considérations.
La taille de l’objet Emitter détermine la taille de la surface d’émission. Ainsi, si vous souhaitez que les particules soient concentrées le long d’une courbe plus étroite, ajustez la taille de cet objet.
Le nombre de particules influe également sur l’aspect plus ou moins segmenté de la courbe de feu, il peut donc être nécessaire de l’augmenter pour donner aux flammes un rendu plus fluide et continu.
À ce sujet, l’utilisation du Motion Blur, que nous aborderons dans le prochain tutoriel, peut également être utile.