From BlenderWiki

Jump to: navigation, search
Blender3D FreeTip.gif
IMPORTANT! Do not update this page!
We have moved the Blender User Manual to a new location. Please do not update this page, as it will be locked soon.

Traduction effectuée d’après cette révision de la version anglaise.

Image 1 : Le panneau Physics des particules.

Le mouvement des particules peut être contrôlé de plusieurs façons :

  • Avec la “physique” des particules : il existe quatre systèmes différents :
    • None : Cela ne donne aucun mouvement aux particules, elles n’appartiennent à aucun système physique.
    • Newtonian : Mouvements en accord avec les lois de la physique (newtonienne).
    • Keyed : Particules dynamiques ou statiques, où les cibles (animées) sont d’autres systèmes de particule.
    • Boids : Particules avec une “intelligence” artificielle limitée, incluant la “programmation” de leurs comportements et règles, idéal pour des groupes d’oiseaux en vol, des bancs de poissons, ou des simulations proies/prédateurs.
  • Avec l’animation “corps souples” (seulement pour les systèmes de particule Hair).
  • Avec les champs de force et le suivi de courbes.
  • Avec des lattices.

Nous discuterons ici de la physique des particules (!) dans son sens le plus restreint, c-à-d via les réglages du panneau Physics.

“Physics” : “None”

À première vue, un type de physique qui ne fait rien faire aux particules peut sembler un peu étrange, mais il peut être parfois très utile. Aucune physique ne laisse les particules collées toute leur vie à leur émetteur. Les vitesses initiales sont ici utilisées, par exemple, pour donner une vitesse aux particules affectées par un effecteur harmonique avec ce type de physique, quand l’effet de l’effecteur se termine (NdT : phrase originale : “The initial velocities here are for example used to give a velocity to particles that are effected (or affected?) by a harmonic effector with this physics type when the effect of the effector ends”).

De plus, il peut être très pratique d’avoir des particules à disposition (visibles au rendu, y compris dans leurs états “non-nées” et “mortes”) pour créer de la végétation et/ou un écosystème, en utilisant les types de visualisation Object, Group ou Billboard.

“Physics” : “Newtonian”

Il s’agit de la physique “normale” des particules. Elles débutent leur vie avec les vitesses initiales et angulaires spécifiées, et se déplacent suivant les forces en présence. Les réponses à l’environnement et aux forces sont calculées différemment, selon l’intégrateur choisi par l’animateur.

Intégrateurs

Les intégrateurs sont un ensemble de méthodes mathématiques disponibles pour calculer le mouvement des particules. Les conseils suivants devraient vous aider à choisir le bon intégrateur, en fonction du comportement souhaité pour vos particules.

  • Euler : Également connu sous le nom de “Foward Euler” (~“Euler avant”), c’est l’intégrateur le plus simple, très rapide mais avec des résultats moins précis. Si aucune atténuation n’est utilisée, les particules ont de plus en plus d’énergie au fil du temps. Par exemple, des particules rebondissantes rebondiront de plus en plus haut à chaque fois. Cet intégrateur ne devrait pas être confondu avec le “Backward Euler” (~“Euler arrière”, non-implémenté), qui, au contraire, fait décroître les énergies au cours du temps, même sans atténuation. Utilisez-le pour de courtes simulations, ou pour des simulations avec beaucoup d’atténuation, quand des calculs rapides sont plus importants que la précision.
  • Midpoint : “Point moyen”, également connu sous le nom de “Runge-Kutta du second ordre”. Plus lent que l’Euler, mais beaucoup plus stable. Si l’accélération est constante (pas de traînée, par exemple), il conserve l’énergie. Notez que dans l’exemple des particules rebondissantes, elles peuvent de temps en temps rebondir plus haut qu’au départ, mais ce n’est pas habituel. Cet intégrateur est généralement un bon choix dans la plupart des cas.
  • RK4 : Raccourci pour “Runge-Kutta du quatrième ordre”. Similaire à Midpoint, mais plus lent et généralement plus précis. Il conserve l’énergie même si l’accélération n’est pas constante. Seulement nécessaire dans des simulations complexes, quand Midpoint se révèle trop imprécise.


“Initial velocity”

La vitesse initiale des particules peut être définie via différents paramètres, suivant le type de système de particule (voyez le panneau Particle System). Si le système de particule est de type Emitter ou Hair, alors les réglages suivants donnent à chaque particule une vitesse initiale dans la direction de…

  • Object : …le mouvement de l’objet émetteur (c-à-d que l’objet donne à la particule une vitesse initiale).
  • Normal : …les normales de la surface de l’émetteur (c-à-d que la normale de la surface donne à la particule une vitesse initiale).
  • Random : …un vecteur aléatoire (c-à-d qu’on ajoute à la vitesse initiale une variation aléatoire de valeur et de direction. Vous pouvez utiliser une texture pour ne changer que la valeur, voyez « Contrôler l’émission, les interactions et le temps »).
  • Tan & Rot : …un vecteur tangentiel à la surface, de rotation Rot.
    • Tan : La vitesse tangentielle donne à la particule une vitesse initiale.
    • Rot : Fait tourner la tangente à la surface.

Si le système de particule est de type Reactor, les paramètres suivants donnent à chaque particule une vitesse initiale dans la direction de…

  • Particle : …la vitesse des particules cibles (c-à-d que la particule cible donne à la particule une vitesse initiale).
  • Reactor : …un vecteur s’éloignant de la position des particules cibles au moment de la réaction (c-à-d que le vecteur s’éloignant de la position de la particule cible donne à la particule une vitesse initiale).


“Rotation”

Ces paramètres spécifient comment les particules individuelles sont tournées durant leur voyage. Pour visualiser la rotation d’une particule, vous devriez choisir le type de visualisation Axis, dans le panneau Visualization, et augmenter Draw Size.

  • Dynamic : Si activé, se contente d’initialiser aux valeurs souhaitées les rotation et vitesse angulaire des particules, et laisse la physique se charger du reste. Les particules changent alors de vitesse angulaire si elles entrent en collision avec d’autres objets (comme dans le monde réel, à cause du frottement entre les surfaces entrant en collision). Sinon, la vitesse angulaire est prédéterminée pour toujours (c-à-d rend la rotation dynamique/constante).
  • Rotation : Règle l’orientation initiale de la particule en alignant son axe X avec…
    • None : …l’axe X global.
    • Normal : …la normale de la surface de l’émetteur.
    • Velocity : …la vélocité initiale de la particule.
    • Global X/Global Y/Global Z : …l’un des axes globaux.
    • Object X/Object Y/Object Z : …l’un des axes de l’objet émetteur.
  • Random : Ajoute une composante aléatoire à la rotation initiale.
  • Phase/Rand : Phase initiale de la rotation, Rand vous permet d’y ajouter une variation aléatoire.
  • Angular v : la valeur de la vitesse angulaire, la liste déroulante définit l’axe de vitesse angulaire comme étant…
    • None : …un vecteur nul (pas de rotation).
    • Spin : …le vecteur vitesse de la particule.
    • Random : …un vecteur aléatoire.

Si vous utilisez une courbe guide et souhaitez que les particules suivent la courbe, vous devez régler Agular velocity sur Spin, et laisser la rotation en mode constant (c-à-d désactiver Dynamic). De plus, Curve Follow (?) ne fonctionne pas avec les particules.

“Global effects”

Ces paramètres spécifient des facteurs physiques globaux qui accélèrent ou décélèrent les particules. Utiles quand vous simuler divers phénomènes comme la gravité, la traînée aérienne, le frottement et consort. D’autres forces, plus complexes ou localisées, peuvent être créées avec des champs de force.

  • AccX, AccY et AccZ : Une accélération dans la direction des axes globaux. Utilisez-les pour implémenter la gravité, en réglant AccZ à une valeur négative, par exemple.
  • Drag : Une force simulant la traînée, qui réduit la vitesse d’une particule en fonction de ses vitesse et taille (utile pour simuler la traînée due à l’air ou à l’eau).
  • Brown : Une force aléatoire qui change d’image en image. Elle simule le “mouvement Brownien”, observé sur de (très) petites particules, quand les forces entre molécules sont en déséquilibre constant. C’est parfait pour simuler une petite brise irrégulière.
  • Damp : Réduit la vitesse de la particule (décélération, frottement, atténuation/amortissement).


“Physics”: “Keyed”

Image 2 : Le premier d’une chaîne de systèmes de particule.

Les chemins de particules “keyed” (~“à clés”) sont déterminés depuis l’émetteur vers les particules d’un autre système de particule. Cela permet la création de chaînes de systèmes avec la physique Keyed, pour créer de longues “mèches”, ou de formidables mouvements de particules. À la base, les particules n’ont pas de dynamique, mais sont interpolées entre un système et le suivant, au moment de l’affichage.


Image 3 : Les particules Keyed permettent un très bon contrôle et des animations complexes.

Puisque vous avez un tel contrôle sur ce type de systèmes, vous pouvez l’utiliser par exemple pour des machines manipulant des fibres (animation d’un métier à tisser, …). Dans (Image 3), les “mèches” partent du système inférieur (First Keyed) vers le second système Keyed du milieu, jusqu’au système supérieur, qui a une physique None. Puisque vous pouvez animer chaque objet émetteur comme vous voulez, vous pouvez réaliser des animations arbitrairement complexes.

Pour utiliser des particules Keyed, vous avez besoin d’au moins deux systèmes de particule.

  • Le premier système a une physique keyed, et il doit avoir l’option First activée. Ce sera le système visible.
  • Le second système peut être un autre système keyed, mais sans l’option First, ou un système de particule normale. Ce second système est le système cible du système keyed.
  • Keyed Target : Vous devez y entrer le nom de l’objet qui porte le système cible et, s’il a plusieurs systèmes, le numéro du système souhaité.

Si vous n’utilisez qu’un seul système keyed, les particules voyageront sur toute leur durée de vie depuis l’émetteur jusqu’à la cible. Une vie plus courte signifie donc un déplacement plus rapide. Si vous avez plus d’un système keyed dans une chaîne, la durée de vie sera “partagée” à parts égales. Cela peut mener à des vitesses de particule variables entre les cibles.

  • Timed : Cette option n’est disponible que pour le premier système keyed. Il travaille avec le curseur Time des autre systèmes keyed d’une chaîne.
  • Le curseur Time vous permet de définir quelle fraction de la durée de vie de la particule utiliser pour le déplacement courant.

Un exemple : assumons que vous avez deux systèmes keyed formant une chaîne, et un troisième système comme cible. La durée de vie des particules du premier système devrait être de 50 frames. Les particules voyageront donc en 25 images du premier système keyed au second, et encore en 25 images du second système à la cible. Si vous utilisez (activez) le bouton Timed du premier système, le curseur Time apparaît dans le second système. Sa valeur par défaut est à 0.5, donc le temps est toujours également réparti entre les systèmes. Si vous réglez Time à 1.0, le déplacement entre le premier système et le second prendra toute la durée de vie (les particules “mourront” à l’arrivée au second système).

Si vous réglez Time à 0.0, les particules débuteront leur voyage directement au second système, jusqu’à la cible.

“Physics”: “Boids”

Image 4 : Panneau Physics pour les particules Boids.

Les systèmes de particule Boids (NdT : “boïdes”, intraduisible…) peuvent être réglés pour obéir à des règles et comportements basiques. Ils sont utiles pour simuler des bandes d’oiseaux, des essaims d’insectes, des troupeaux d’animaux ou des bancs de poissons. Ils peuvent réagir à la présence d’autres objets, et avec les membres de leur propre système. Boids ne peut gérer qu’une certaine quantité d’information, donc l’ordre des réglages de Behaviour (comportement) est très important. Dans certaines situations, seuls les trois premiers paramètres sont évalués.

Les Boids essayent d’éviter les objets ayant la Deflection activée. Ils essayent d’atteindre les objets avec un champ Spherical positif, et de fuir les objets avec un champ Spherical négatif. Ces objets doivent partager un calque commun pour que cela prenne effet. Il n’est pas nécessaire d’activer au rendu ce calque, vous pouvez donc avoir des influences “invisibles”.

“Behaviour”

  • Seule une certaine quantité d’information peut être évaluée. Si la capacité mémoire est dépassée, les règles restantes sont ignorées.
  • Les règles sont interprétées du haut de la liste vers le bas (ce qui leur donne une priorité explicite), et cet ordre peut être modifié via les petites flèches devant chaque ligne. Voici la liste des règles disponibles :
    • Collision : Éviter les objets ayant la Deflection activée.
    • Avoid : Éviter les “prédateurs” (objets avec un champ Spherical de force Strength négative).
    • Crowd : Éviter les autres boids.
    • Center : Atteindre le centre du groupe.
    • AvVel : Maintenir une vitesse moyenne (Average Velocity).
    • Velocity : Aligner sa vitesse sur celle des boids voisins.
    • Goal : Essayer d’atteindre les “buts” (“goals”, objets avec un champ Spherical de force Strength positive).
    • Level : Conserver le niveau Z. Les boids essayent alors de respecter leur “altitude de croisière”. Ce réglage est désactivé pour les boids 2D.

Chaque règle peut être pondérée individuellement ; ce poids correspond à l’empressement que mettra le boid à respecter une règle donnée (une valeur de 1.0 signifie que le boid la respectera toujours, une valeur de 0.0 signifie qu’il n’en tiendra jamais compte). Si le boid est confronté à plusieurs règles contradictoires, il essayera de les respecter au mieux en fonction de leurs poids respectifs. N’importe quelle règle peut être pondérée dans l’intervalle -1.0 – +2.0, suivant l’importance que vous souhaitez lui donner.

  • Un comportement normal peut être attendu pour des poids compris entre 0.0 et 1.0.
  • De 1.0 à 2.0, les boids sur-réagissent dans le sens de ces règles.
  • De -1.0 à 0.0, les boids réagissent à l’opposé de ces règles.

Notez qu’un boid donné essayera autant que possible de respecter chacune des règles qui lui sont imposées, mais il est plus que probable qu’une règle prendra le pas sur les autres dans certains cas. Par exemple, afin d’éviter un prédateur, un boid pourra probablement “oublier” les règles Collision, Crowd et Center, ce qui signifie que, dans la “panique”, il peut très bien foncer dans des obstacles, par exemple, même si cela lui a été interdit en temps normal.

Pour finir, notez que l’algorithme de Collision n’est pas encore parfait et est toujours en développement, vous pouvez donc vous attendre à des comportements erronés de temps en temps. On y travaille.

“Physics”

Image 5 : Les particules boids sont capables de suivre une surface courbe.
  • MaxVelocity : Vitesse maximale.
  • AvVelocity : La vitesse usuelle, en proportion de la vitesse maximale. Si MaxVelocity est réglée à 10.0, et AvVelocity à 0.30, la vitesse moyenne des boids sera de 3.0.
  • LatAcc : L’accélération latérale (rotation), en proportion de la vitesse maximale. Définit la rapidité avec laquelle un boid peut changer de direction.
  • TanAcc : L’accélération tangentielle (vers l’avant), en proportion de la vitesse maximale. Définit l’accélération (ou la décélération) maximale d’un boid lorsqu’il doit obéir à une règle.
  • Banking : Inclinaison des boids quand ils tournent (sur l’axe de roulis, 1.0 = inclinaison naturelle).
  • MaxBank : De combien un boid peut s’incliner en une seule fois (NdT : “How much a boid can bank at a single step”).
  • N : Combien de voisins chaque boid doit prendre en compte.
  • 2D : Contraint les boids sur une surface : soit sur celle d’un objet donné (si spécifié dans le champ OB), soit à une certaine valeur Z (spécifiée par GroundZ). Pratique pour simuler des troupeaux au sol, par exemple. Quand il est activé, la règle Level, ainsi que Banking et MaxBank, sont ignorés.
    • GroundZ : Valeur Z “plancher” par défaut.
    • OB : L’objet à la surface duquel sont “plaqués” les boids.
    • Si les trajectoires des boids les entraînent hors de la surface de l’objet, la valeur de GroundZ est alors utilisée comme “plancher”. Par ex., les boids se répartiront sur la moitié supérieure d’une sphère, puis “goutteront” au sol.


“Boids”, déflecteurs et effecteurs

Comme déjà mentionné, de façon très similaire aux particules Newtonian, les Boids réagiront aux déflecteurs et champs environnants, en fonction des besoin de l’animateur :

  • Deflection : Les boids essayeront d’éviter les objets déflecteurs, en fonction du poids de la règle Collision. Cela marche mieux avec des surfaces convexes (bombées vers “l’extérieur” – il y a encore du travail pour les surfaces concaves).

Pour la physique “boid”, les champs Spherical définissent comment les objets ayant ces champs sont vus par les autres. Donc, un champ Spherical négatif (sur un objet ou un système de particule) sera un “prédateur” pour tous les autres systèmes de particule Boids, et un champ positif, un but pour ces mêmes boids.

Quand vous sélectionnez un objet avec un système de particule déjà présent, vous avez dans le panneau Fields un petit menu indiquant si le champ doit être ajouté à l’objet émetteur ou au système de particule. Vous devez sélectionner le nom/indice du système de particule si vous voulez que les particules “proies” fuient les particules “prédateurs”.

  • Champs Spherical : Ces effecteurs peuvent être des prédateurs (force Strength négative) que les boids essayent d’éviter, ou des cibles (force Strength positive) que les boids essayent d’atteindre, en fonction respectivement des poids des règles Avoid et Goal. La force Spherical est en fait multipliée par le poids de la règle correspondante (par ex., si soit Strength, soit Goal est nul, alors un groupe de boids ne traquera pas le champ Spherical positif correspondant).

Vous pouvez également activer Die on hit (“mourir au contact”, panneau Extras), afin qu’une particule “proie” disparaisse lorsqu’elle est “attaquée” et touchée par une particule “prédateur”. Pour que cela fonctionne, les particules prédateurs doivent avoir un champ sphérique de force négative, il n’est pas suffisant d’avoir juste un Goal positif pour les particules proies (mais vous pouvez régler la force des prédateurs à -0.01) (NdT : Phrase originale : “To make this work, the predator particles have to have a spherical field with negative force, it is not sufficient just to set a positive goal for the prey particles (but you may set the predators force strenght to -0.01)”). Les tailles des proies et prédateurs peuvent être réglées avec le bouton Size du panneau Extras.

Liens