Transcription
1. Introduction au cours sur les géonodes des arbres: Bienvenue dans trois arbres en D
dotés de nœuds géométriques Blender. Dans ce cours, nous explorerons le puissant flux de travail
procédural des nœuds de géométrie
mixte pour créer des arbres
entièrement personnalisables
et réalistes De la création de structures de
tronc organiques à la distribution finale des feuilles, vous apprendrez à créer arbres d'apparence
naturelle avec une flexibilité
procédurale. À la fin de ce cours, vous aurez les
compétences nécessaires pour créer des arbres
allant des chênes centenaires aux bonsaïs délicats, tous contrôlés par des périmètres faciles
à utiliser Si vous souhaitez approfondir
vos compétences en matière de gemenude,
ne manquez pas
nos cours Blender
Geometernode pour débutants, notre générateur de ponts
procéduraux Ils vous aideront à affiner vos
techniques de modélisation procédurale et à créer superbes
environnements libres
remplis de feuillage,
d'architecture, etc. Pour vous aider à donner vie à
vos arbres, ce cours comprend un ensemble de ressources de haute
qualité, comprenant huit matériaux PBR
stylisés conçus spécifiquement pour Vous obtiendrez de l'écorce de cerisier et de chêne, branches de
cerisier
fleuries ou non fleuries,
des feuilles de chêne de saison
pour l'été, l'automne
et le printemps, ainsi que des pétales de cerisier pour un effet de
feuille tombante époustouflant Nous allons commencer par créer un système d'arborescence procédurale
à partir de zéro. Vous allez commencer par le nœud
fractionné de base, un groupe de nœuds personnalisé qui
génère des
structures de branchement en itérant
plusieurs À l'aide de périmètres tels que le
nombre, la longueur et l'angle des branches, nous élaborerons un système de croissance
réaliste qui imite la formation naturelle des
arbres De plus, nous allons implémenter
un déplacement du bruit afin d' introduire un mouvement subtil et réalisme dans la forme générale de l'
arbre. Une fois le tronc et les
branches en place, nous nous
concentrerons sur le placement des feuilles. À l'aide d'attributs personnalisés tels que longueur à partir du début
et la longueur à partir de la fin, nous déterminerons comment
les feuilles sont réparties
le long des branches, garantissant ainsi des modèles de
croissance naturels. Ensuite, nous allons étendre notre système procédural
pour générer des racines. En modifiant le système de branches
pour inverser sa direction, nous créerons une structure racinaire
souterraine qui se connecte
parfaitement au tronc. Enfin, nous explorerons les techniques de cartographie
UV, afin de garantir que les matériaux d'écorce
et de feuillage sont appliqués sans problème. Dans la dernière section,
nous intégrerons un système de particules simple pour
simuler la chute des feuilles. À l'aide de la zone de simulation des mélangeurs, nous allons générer et animer feuilles qui se détachent des
branches au fil du temps Ce cours est conçu dans un souci de
modularité et
d'efficacité En utilisant des groupes de nœuds réutilisables, vous pourrez
ajuster rapidement les périmètres
tels que la hauteur des arbres, densité des
branches, la
couverture foliaire, etc. Que vous ayez besoin d'un arbre
stylisé pour le jeu ou d'une
opération hyperréaliste pour une animation, notre configuration permettra une itération
et une personnalisation rapides À la fin de ce cours, vous disposerez d'un système d'
arborescence entièrement procédural personnalisable, efficace et visuellement époustouflant pour donner vie à votre
vision créative. Inscrivez-vous dès maintenant et commencez à faire pousser vos propres arbres à sucre avec les cannes à omiton
Blenders
2. Aperçu du générateur d'arbre: Bonjour, et bienvenue dans l'introduction
aux arbres en D gratuits avec des nœuds de géométrie
Blender. Dans ce cours, vous allez
apprendre à créer
un arbre entièrement procédural à l'aide des nœuds de géométrie des
mélangeurs Vous construirez un système de tronc et de
ramification
réaliste ,
contrôlerez le placement des feuilles et ajouterez un système de
particules simple pour les feuilles
qui tombent afin de donner un mouvement
naturel à votre arbre Pour vous aider tout
au long du processus, vous recevrez également un pack de
matériel gratuit avec textures de chêne et de
sakura de
haute qualité et des matériaux parfaits pour ce
cours et les projets futurs Avant de commencer à construire,
examinons les entrées et les périmètres qui contrôleront forme et la structure de
votre arbre En modifiant ces paramètres, vous pourrez
créer n'importe quoi du petit site osseux
au chêne massif Ce nœud d'indicateur
n'est donc qu'un modificateur. Comme vous pouvez le voir, j'ai ici ce modificateur d'arbre
appliqué à cet objet, et vous pouvez voir qu'ici, nous avons peu de paramètres. L'un d'eux est la graine qui
contrôle la graine de
toutes les valeurs aléatoires et des générateurs
aléatoires. Ensuite, il y a la résolution qui contrôle la résolution des branches. Vous pouvez régler la hauteur du
tronc et le rayon global. Et puis il y a aussi du
matériel pour les racines et les branches, ainsi que
des contrôles pour les UE. Ensuite, dans le panneau des branches, vous pouvez voir que la première
entrée est appelée niveaux, et cela contrôle le
nombre
de niveaux de branches que votre arbre aura. Donc, si nous fixons ce paramètre à deux, par
exemple,
il y a d'abord un tronc, qui est une branche séparée
ou une branche principale. De cette branche, il y a trois autres branches comme celle-ci. Et à partir de ces branches se trouve
le deuxième niveau de branches, donc ça ressemble à ceci. Les deux autres entrées sont le nombre de divisions
minimum et maximum, ce qui signifie que vous pouvez contrôler nombre de branches que chaque extrémité
de la branche doit diviser. Nous en avons donc 3 à 5. Si nous le définissons de 2 à 5, vous pouvez voir que maintenant il se
divise en deux branches Et si nous jouons avec les semences, nous devrions obtenir des résultats
différents. Maintenant, vous pouvez voir que nous en avons
quatre et ainsi de suite. Ensuite, vous pouvez également contrôler la
longueur des branches. Vous pouvez contrôler le premier
et le dernier séparément. Donc, si nous définissons les premières branches sur quelque chose de long et
les dernières sur quelque chose de court, vous obtiendrez des résultats différents. Et il existe également un caractère aléatoire de
longueur, qui contrôle le caractère aléatoire des longueurs des branches La prochaine chose est l'angle, qui contrôle l'
angle des branches. Vous pouvez donc voir que si
nous le mettons à zéro, ils pointent tous vers le haut, et au fur et à mesure que nous l'augmentons, l'arbre s'
élargit et les branches
poussent de plus en plus sur le côté. Vous pouvez également contrôler le
caractère aléatoire de cet angle, et la dernière entrée
est le rayon fff, qui contrôle essentiellement l'
épaisseur des branches Maintenant, vous pouvez voir
qu'il est réglé sur deux, et vous pouvez voir que les
branches aux extrémités sont fines. Et si nous le diminuons, vous pouvez voir qu'ils deviennent beaucoup plus épais et vous pouvez contrôler le gradient du rayon allant du tronc aux
extrémités des branches. Le panneau suivant est celui
des racines, et ce panneau contient essentiellement toutes les commandes sous forme de branches, et vous pouvez contrôler les
mêmes paramètres. Je vais donc sauter celui-ci. Le suivant est le
déplacement avec lequel vous contrôlez le déplacement
des branches. Ainsi, vous pouvez
contrôler la ligne droite ou la raideur de votre arbre Les suivants sont des arbres. Ici, nous pouvons contrôler les arbres. Vous pouvez sélectionner une collection
de feuilles. Nous pouvons donc facilement passer de
l'un à l'autre. Nous pouvons également contrôler la densité, et nous pouvons choisir parmi trois options où nous
voulons que les feuilles poussent. Il y a donc trois options. L'un d'eux est celui des branches. Cela signifie que les feuilles sont
partout sur les branches. Le second est de bout en bout, qui
distribue essentiellement les feuilles uniquement aux extrémités
des branches, et nous pouvons également contrôler la longueur des segments sur
lesquels elles sont distribuées. Et la dernière option est la position Z
minimale, qui
distribue essentiellement les feuilles partout où la position
est supérieure à une certaine valeur. Donc, si nous le disons à trois, vous pouvez voir qu'ici
nous avons le niveau trois et que là où la
position est plus grande, les feuilles sont distribuées. deux derniers éléments sont l'
échelle et le caractère aléatoire de l'échelle Vous pouvez
donc également
contrôler la mise à l'échelle des objets
d'origine Et le dernier panneau que nous
avons ici est celui des particules, et vous pouvez le voir ici. Ce sont les petites
feuilles que vous pouvez voir, et vous pouvez contrôler
leur densité, ainsi que la physique, afin que nous puissions contrôler la gravité et le bruit appliqué
à leur mouvement, ainsi que leur durée de vie. Et comme pour les feuilles, nous avons une collection pour les
objets d'entrée et leur échelle. Vous pouvez voir que si nous
jouons à la simulation, vous pouvez voir que les feuilles commencent à tomber des feuilles, ce qui crée un effet
vraiment agréable.
3. Introduction au générateur de branches: Bienvenue dans trois arbres en D
avec des nœuds de géométrie Blender. Dans cette leçon, j'expliquerai les techniques que nous
utiliserons pour générer le système de branches et comment nous
pourrons le contrôler avec
différents périmètres Tout d'abord, je vais simplement régler la
densité des feuilles à zéro afin que nous puissions mieux
voir le système de branches. Et comme vous pouvez le constater, nous pouvons simplifier la
structure en quelques lignes. Ainsi, par exemple, une ligne
principale est le tronc, puis il y a
quatre branches sur lesquelles il se divise, puis il
fait essentiellement la même chose
aux extrémités de ces branches La configuration que nous allons
effectuer comportera donc une
entrée pour la géométrie. Donc, dans ce cas,
lorsque nous aurons un tronc, nous donnerons ce tronc
à ce groupe de nœuds, et nous
lui donnerons également une sélection à partir de laquelle nous voulons que
les branches poussent. Je vais donc sélectionner
avec cette croix. Et ce que fera la configuration, c'
est qu'elle générera simplement des branches comme celle-ci
en fonction des entrées. Nous serons donc en mesure de
contrôler le nombre de branches qu'il divise ainsi que la longueur et l'
angle de ces branches Et la sortie de ce
groupe de nœuds sera constituée de ces branches. Et aussi avec des sélections, qui sélectionneront
ces points de terminaison Ensuite, nous utiliserons une approche
récursive ou quelque chose de très
similaire à la récursivité, et nous utiliserons à nouveau cette configuration après cette
première itération, et cette configuration
créera à nouveau d'autres
branches Et si nous répétons cela, par
exemple, trois
ou quatre fois, nous devrions obtenir un système de branches
agréable, nous utiliserons comme structure de base pour notre modificateur de nœuds de
géométrie Plus loin dans ce cours,
nous aurons également besoin certains attributs pour obtenir des
informations sur les branches. Les deux principaux attributs
dont vous aurez besoin sont la longueur, et la longueur nous
indiquera à quelle distance se
trouve chaque point de la branche par rapport aux racines. Donc, ici en bas, zéro. Ici, dans cette section, il y
en a, par exemple, deux, ici c'est gratuit partout, et ici, à la fin,
cela peut être comme 3.5. Avec cet attribut,
nous pourrons contrôler le rayon des branches et également obtenir de
belles cartes UV pour elles. Et le deuxième périmètre
sera long à partir du bout. Et ce périmètre sera
presque le même que la longueur, mais il ira dans une direction
différente ou dans la direction opposée. Donc, aux extrémités des branches, il y aura des zéros Et puis, au fur et à mesure que nous nous dirigeons vers
les racines, cela augmentera. Donc, 0,5 sera ici, 1,5 ici, 2,5 ici et 3,5 dans les racines. Avec ce second attribut, nous pourrons, par exemple,
distribuer les feuilles à partir des extrémités, distribuer les feuilles à partir des extrémités comme je l'ai montré dans la leçon précédente, et nous séparerons simplement les branches dont la longueur à partir de l'extrémité est
inférieure à une certaine valeur, puis nous pourrons distribuer facilement les feuilles sur ces branches.
4. Extrémités séparées: Bienvenue dans trois arbres en D
avec les nœuds Blender Geometri Dans cette leçon, nous
allons commencer à travailler sur les bases de notre modificateur de nœuds
geometro, et nous travaillerons sur le groupe de nœuds du système de
branches, qui nous aidera à créer
la structure de base des branches Voici donc une
nouvelle scène de mixeur, et je vais commencer par supprimer
tout ce qu'elle contient. Et j'ajouterai, par exemple, un plan simple car nous n'utiliserons pas la géométrie
d'origine, vous pouvez
donc ajouter
ce que vous voulez. Ensuite, je vais passer aux modificateurs
et ajouter un nouveau modificateur, qui seront des nœuds de géométrie Je vais cliquer sur Nouveau et appeler ce nœud de géométrie « configuration », par
exemple, « trois ». Maintenant, nous pouvons commencer à
travailler sur la configuration. Passons donc à l'espace de travail des
nœuds Geomet, et nous pouvons commencer par supprimer l'entrée du groupe car nous n'
aurons pas besoin de cet objet Le plan pour les
branches est que
nous allons d'abord créer une
structure arborescente de base à partir de lignes courbes, pour qu'elle
ressemble à ceci. Ensuite, nous convertirons ces courbes en maillage en
utilisant courbe en nœud de maillage. Ainsi, la ligne de base ou la ligne de courbe de base
sera le tronc. Ajoutons donc une courbe et cette courbe
possède deux entrées. Elle a un début et une fin. Nous pouvons laisser le départ tel quel parce que nous voulons qu'il commence
à 00, et la fin
contrôlera essentiellement la
hauteur du tronc. Donc, si nous
examinons le tronc maintenant, vous pouvez voir que sa
longueur est contrôlée par cette valeur Z
du vecteur final. Nous pouvons donc séparer ces
valeurs en utilisant Combine XYZ, et maintenant nous pouvons contrôler
cette valeur Z individuellement Pour le tranghd, nous pouvons
ajouter une nouvelle entrée de groupe. Appuyons donc sur N pour faire
apparaître le menu de ce site. Et je vais cliquer sur cette
icône plus pour ajouter une nouvelle entrée, que j'appellerai Trangight Nous pouvons définir la valeur par défaut à, par
exemple, trois
et le minimum à zéro Maintenant, pour connecter cela, nous
pouvons afficher l'entrée de groupe, et nous allons relier cette hauteur de
tronc à la valeur Z. Vous pouvez voir que c'est zéro, je vais
donc revenir à la
saisie groupée dans le modificateur, et maintenant vous pouvez voir
que nous pouvons contrôler la hauteur de la
courbe avec cette entrée. Il y a aussi ce
petit avertissement, et c'est parce que la
géométrie d'entrée doit être en haut Je vais
donc simplement la déplacer vers le haut, et maintenant tout devrait bien se passer. Maintenant, nous en avons pratiquement
terminé avec le tronc pour moment et nous pouvons simplement sélectionner
tous ces nœuds, appuyer sur Ctrl J pour
faire apparaître le cadre, et je vais appeler ce
cadre un tronc. Commençons maintenant par
le groupe de nœuds, qui divisera un point
en plusieurs branches. Créons donc un
nouveau groupe de nœuds. Je vais le faire en créant un nouvel
itinéraire vers cette connexion. Je vais
donc maintenir la touche Maj enfoncée, Je vais
donc maintenir la touche Maj enfoncée cliquer avec
le bouton droit de la souris et faire glisser le pointeur
sur cette sélection. D'ailleurs, si vous n'
utilisez pas d'extension node wrangular,
je vous le recommande vivement
car elle accélérera votre flux de travail dans les nœuds de géométrie
et également dans les nœuds d'ombrage Encore une fois, nous pouvons appuyer sur
le bouton droit de la souris et faire glisser le pointeur, et nous pouvons obtenir cette lecture. Maintenant, si
cette redirection est sélectionnée,
vous pouvez appuyer sur Ctrl G
pour créer un groupe de nœuds Maintenant, si nous appuyons sur l'onglet, nous sommes en dehors de
ce groupe de nœuds, et vous pouvez voir qu'il n'a une entrée et une sortie de courbe. Je vais le renommer en pointes fourchues car cela divisera les
extrémités des courbes Et pour revenir à
ce groupe de nœuds, nous pouvons à nouveau appuyer sur l'onglet et
nous sommes dans le groupe de nœuds. Ce groupe de nœuds
aura peu d'entrées. premier d'entre eux est la géométrie, que nous avons déjà ici, mais je vais la renommer en géométrie La seconde
sera la sélection, qui sélectionnera
les points sur lesquels nous voulons que de nouvelles branches poussent. Je vais donc obtenir une nouvelle entrée
et l'appeler sélection. Ce sera du harcèlement. Et le dernier pour le
moment sera le décompte, qui sera le nombre de branches
que vous souhaitez générer. Ajoutons donc une nouvelle entrée, qui sera le nombre, type peut être un entier, et nous pouvons définir la valeur par défaut à, exemple, trois
et le minimum à zéro. Maintenant, si nous sortons de ce groupe de
nœuds en utilisant l'onglet, nous saisirons des
données de base dans ce groupe de nœuds. Nous allons donc d'abord, par
exemple,
créer trois branches. Ajoutons donc le compte à trois. Et pour la sélection,
nous voulons uniquement développer ces branches
à
partir de ce point de terminaison. Ainsi, en général, la courbe
ne comporte que deux points où le début a un indice nul et la
fin un indice un. Nous pouvons donc simplement utiliser la
valeur de l'indice et l'endroit où elle est égale, nous allons
donc ajouter égal à un. Cela ne devrait sélectionner
que ce point de terminaison. Nous pouvons le vérifier avec un visualiseur,
c'est-à-dire en maintenant la touche Ctrl Shift et en cliquant sur le bouton le
plus à gauche Cela attirera le spectateur, et nous pouvons maintenant y intégrer cette valeur d'
intimidation. Et ici, vous pouvez voir
que le bas est noir et le
haut est blanc. La deuxième méthode consiste à le vérifier avec
le texte de l'attribut. Donc, ici en haut, vous
pouvez sélectionner le texte de l'attribut, et vous pouvez voir qu'il y en a un et qu'
il y en a un zéro. Maintenant, la sélection est terminée, et revenons
au groupe de nœuds. Nous allons commencer par générer
une branche de base. Ajoutons donc une courbe
qui créera des branches. Et cette courbe peut, par
exemple, mesurer seulement 1 mètre de long. Nous voulons dupliquer
cette courbe en fonction de cette entrée de comptage, et nous pouvons le faire, par
exemple, en créant des points. Ajoutons donc des points, et nous créerons autant de
points que nous voulons de branches. Je vais donc intégrer ce
décompte à ce décompte. Et maintenant, vous pouvez voir que
nous avons trois points ici. Maintenant, pour remplacer les
points par les courbes, nous pouvons utiliser l'instance sur les points. Et les points d'entrée seront
les points libres dans notre cas, et l'instance par
laquelle nous voulons remplacer les points
est la ligne de courbe. Maintenant, si nous examinons le résultat de cette
instance, vous pouvez voir que nous en
avons trois. Mais ici, dans la fenêtre d'affichage, vous pouvez voir qu'il n'
y a toujours qu'une seule ligne, et c'est parce qu'elles
se chevauchent Donc, pour les
différencier un peu, je vais d'abord les déplacer sur l'axe X afin qu'ils soient légèrement
inclinés Et je vais également
jouer avec cette rotation. Nous allons donc le faire pivoter autour de l'axe
Z en fonction de leur indice. Ils seront donc bien
répartis autour de l'axe Z. Pour ce faire, je vais ajouter
combine XYZ car nous
voulons uniquement contrôler la
valeur Z de cette rotation Je vais connecter ce
vecteur à la rotation. Maintenant, si nous jouons
avec la valeur Z, vous pouvez voir qu'elle
tourne autour de l'axe Z. Nous voulons
une valeur différente pour chaque courbe, et pour
différencier les courbes, nous pouvons utiliser l'entrée d'index. Ajoutons donc un index. Et si nous branchons cet index
directement sur l'axe Z, vous pouvez voir qu'
il fait quelque chose, et c'est parce que
pour la première ligne, l'entrée est zéro,
pour la deuxième ligne, l'entrée, désolé,
l'indice est un, et pour la troisième ligne,
l'indice est deux. Nous voulons répartir
ces lignes uniformément en cercle,
par exemple, comme ceci. Donc, lorsque nous avons trois courbes, nous voulons qu'elles soient comme ça. Donc, entre eux, il y a
un angle de 120 degrés. Et pour calculer cet angle, nous pouvons simplement effectuer
une rotation complète, soit 360, et la diviser par nombre de branches.
Alors faisons-le. Je vais dupliquer cette
entrée de groupe et ajouter un nœud de méthamphétamine. Et comme nous
utilisons des radians ici, nous devrons utiliser deux Pi
au lieu de 360 degrés. Nous allons donc diviser
deux fois Pi, soit 6,28 par le
nombre de branches Et cela nous donnera l'
angle entre chaque branche. Et pour bien les répartir, on peut multiplier l'indice
par cet angle de décalage. Ajoutons donc un multiplicateur et
insérons-le dans la coordonnée Z. Vous pouvez maintenant voir que
les branches pivotent bien le long de l'axe Z et qu'elles sont bien
réparties autour du cercle Si nous sortons de ce
groupe de nœuds et augmentons la réduction, vous pouvez voir que
cela fonctionne bien. Remplaçons l'ancienne approche de rotation par quelque chose
d'un peu meilleur. Je vais donc définir cette
courbe de 0,2 001. Maintenant, ils se chevauchent à nouveau. Mais maintenant, si nous jouons avec la rotation sur l'axe Y, vous pouvez voir qu'elles
tournent bien et nous pouvons contrôler l'angle entre les
branches et l'axe Z. Nous
contrôlons donc essentiellement cet angle
avec cette valeur. Nous voulons contrôler cette
valeur de l'extérieur. Donc, pour ajouter une nouvelle entrée, nous pouvons prendre cette prise vide
et la brancher sur l'axe Y, et je vais ouvrir le
menu du site et le renommer en angle Nous pouvons également définir le
sous-type sur l'angle, sorte que l'unité du
modificateur soit en degrés, et la valeur par défaut
peut être quelque chose comme 0,5 ou quelque chose de proche. Maintenant, si nous revenons
du groupe de nœuds, vous pouvez voir que nous
pouvons contrôler l'angle en degrés ainsi que le nombre. Donc, la prochaine chose
que vous
voudrez probablement contrôler est la longueur
de ces branches. Mais nous le ferons plus tard car nous devrions
maintenant distribuer ces branches sur les
points sources pour voir à quoi cela ressemble
réellement. Utilisons donc cette géométrie
source. Et nous utiliserons
à nouveau ces instances et les installerons
sur les points sélectionnés. Nous pouvons donc dupliquer
cette instance sur des points, et nous voulons uniquement dupliquer cette instance sur la géométrie
source lorsque
la sélection est sélectionnée. Ajoutons-y donc également la
sélection. Et en tant qu'instances, nous voulons utiliser cette structure que nous avons construite à partir
des lignes de courbe. Je vais donc également connecter les
instances à celui-ci. Et maintenant, si je fais un petit
zoom arrière, vous pouvez voir que nous avons
quelques branches ici. Et si je passe au groupe de nœuds de
géométrie principal, vous pouvez voir que nous avons
le tronc et le désolé, ainsi que le premier niveau de branches. Maintenant, nous devons également
afficher les extrémités de
ces branches, car nous voudrons réutiliser les
pointes fourchues comme ceci et simplement réutiliser cette
géométrie comme nouveau point source Donc, pour obtenir la sélection, nous pouvons d'abord prendre en compte
toutes ces instances, puis ce sont
à nouveau les lignes de courbe Nous pouvons
donc simplement prendre
les points où l'indice . Nous pouvons
donc simplement prendre
les points où l'indice
est un et les utiliser
comme sélection. Pour obtenir l'indice de chaque
point à l'intérieur de la courbe, nous allons utiliser
un périmètre de spline, qui
nous donnera un indice dans ces Si nous utilisons le visualiseur, vous pouvez voir que
toutes les extrémités des points en ont un et que les points
sources ont zéro. Si nous utilisions un indice, nous obtiendrions des
valeurs différentes, car cet indice couvre toutes
ces splines ou courbes, et ce n'est pas ce que nous voulons Nous allons donc simplement utiliser cet indice périmétrique du
plin. Pour faire une sélection,
nous pouvons simplement utiliser un égal et
s'il est égal à un, ce sera notre sélection. Nous pouvons connecter ce résultat
à la sortie du groupe et le renommer en sélection
5. Les bases du système de branches: Bonjour, et bienvenue dans Three D trees with
Blender Geometon Maintenant, si nous sortons
de ces pointes fourchues, nous pouvons dupliquer
ce groupe de nœuds et connecter ces
courbes de sortie et cette sélection. Et maintenant, vous pouvez voir que cela a créé un deuxième niveau
de branches. Si nous utilisons la géométrie des
joints et que nous assemblons toutes ces
pièces, vous verrez que nous avons une structure arborescente
très basique, ce qui semble plutôt cool, mais il reste encore
beaucoup de choses à ajouter aux pointes fourchues. Tout d'abord, vous pouvez voir que ces branches doivent être
alignées sur cette courbe, elle doit
donc
ressembler à ceci, et qu'elles ne doivent pas être
droites vers l'axe Z, mais qu'elles doivent être alignées sur
la courbe source. Pour ce faire, nous pouvons
passer aux pointes fourchues, et nous allons contrôler la rotation de ces segments de
courbe Et pour obtenir la bonne rotation, nous voulons essentiellement
les aligner sur la tangente
des courbes sources Si on regarde les
choses de côté. Par exemple, à cette étape, il
s'agit de la courbe source, et sa tangente est un vecteur
pointant dans cette direction Et nous voulons
aligner l'axe Z de ce groupe de courbes
sur cette tangente de courbe, afin que cela ressemble
à ceci Pour cet alignement, nous pouvons
utiliser la rotation d'alignement sur le vecteur, qui fait exactement
ce que j'ai dessiné ici. Et nous voulons aligner l'axe Z, afin qu'il soit sélectionné ici par rapport
à ce vecteur. Ce vecteur sera
la tangente de la courbe, alors faisons apparaître la tangente de
la courbe Et cela devrait
nous donner la bonne rotation. Donc, intégrons cette rotation
à cette rotation. Vous pouvez maintenant voir que
les branches
pivotent correctement le long des tangentes
des courbes sources Maintenant, une fois cela fait, nous pouvons réellement ajouter
une entrée de longueur, qui contrôlera la
longueur de ces branches. Ouvrons donc le
menu du site et ajoutons une nouvelle entrée, que nous appellerons longueur. Et la valeur par défaut peut
être, par exemple, un. premier endroit où vous pouvez contrôler la
longueur des courbes est celui-ci, car ici nous
contrôlons la ligne de courbe de base, et nous pouvons simplement
contrôler la longueur de celles-ci. Le problème avec
celui-ci est que toutes les courbes
auraient la même longueur, et nous voulons avoir des variations et un
caractère aléatoire dans notre arbre, ce qui ne
semble pas vraiment naturel, nous allons
donc éviter celle-ci Le deuxième endroit où nous pouvons contrôler cela est
essentiellement l'échelle. Donc, si je joue
avec ces valeurs, nous pouvons également contrôler la longueur
des courbes ici. Et nous pouvons même saisir différentes valeurs
pour différentes lignes, comme vous pouvez le voir ici, il
s'agit d'une entrée rectangulaire, ce qui signifie qu'il y a des champs, et nous pouvons saisir une
valeur différente pour chacun d'eux. Mais si je suis maintenant à une valeur aléatoire
ici, et quelque chose de 1 à 2. Je ne sais pas si ce
sera vraiment visible, mais si nous réduisons
le nombre à trois. Oui, dans celui-ci,
on le voit bien. Vous pouvez voir que cela
semble presque fonctionner, mais les pièces du deuxième niveau
sont toutes identiques et leur rotation est simplement
différente Nous voulons avoir autant de choses
aléatoires que possible. Donc, pour rendre cela
encore plus aléatoire, nous allons utiliser une approche
différente. Vous pouvez voir que
ces parties
ici, ici et ici
sont les plus courtes, et elles sont toutes identiques. Donc, pour rendre cela
encore plus aléatoire, nous le ferons après avoir
réalisé les instances et nous déplacerons les extrémités
des courbes de manière aléatoire Vous pouvez vous en tenir à
cette solution ici, mais je vais vous montrer une solution
encore meilleure qui nous
donnera plus de hasard. Supprimons donc celui-ci
au point de le réduire à un. Maintenant, nous
allons prendre les extrémités de
ces courbes et les déplacer de manière aléatoire le long de leur tangente Pour ce faire, ajoutons
une note de position définie. Et nous ne déplacerons que les points de terminaison afin de pouvoir
réellement utiliser cette sélection Intégrons-le donc à
la sélection. Et maintenant, si je le déplace, par
exemple, sur Xxs, vous pouvez voir qu'il
déplace toutes les branches, ce qui signifie que nous pouvons contrôler ces points de terminaison séparément La façon dont nous allons le rendre aléatoire
est d' obtenir une tangente de chaque branche,
puis de la randomiser dans une
certaine plage pour la rendre plus agréable Tout d'abord, nous savons maintenant que ces points sont à 1 mètre
de leur source. C'en est donc un parce que ce point
final se trouve sur l'axe Z. Donc, remettons d'abord
ces points à ces points sources,
puis choisissons une valeur aléatoire dans
le sens de la tangente de la courbe pour les déplacer
vers l'
arrière puis choisissons une valeur aléatoire dans le sens de la tangente de la courbe pour les déplacer
vers Ajoutons donc une tangente à la courbe. Et d'abord, nous pouvons
normaliser cela, même si c'est probablement cas, nous allons le normaliser Ensuite, si nous la redimensionnons
et l'intégrons à l'offset, vous verrez que nous pouvons contrôler la
longueur de ces courbes. Si on le met à zéro, ils ont la même longueur qu'avant. Si nous le fixons à moins un, vous pouvez voir qu'ils
s'effondrent tous en un seul point. Maintenant, si nous ajoutons
de la valeur à ce vecteur, nous pouvons en contrôler la longueur
en utilisant la même technique. Dupliquons donc
la valeur de l'échelle et ajoutons-la à cet original. Et nous allons intégrer ce
résultat à l'offset. Maintenant, si nous le mettons à zéro, vous pouvez voir que toutes les
branches ont une longueur nulle. Et au fur et à mesure que je l'augmente, par
exemple, à un, ils retrouvent leur position
initiale, mais maintenant les commandes
prennent tout leur sens. Donc, quand c'est un,
leur longueur est de un, et quand je la mets à deux,
leur longueur est de deux. Ce qui est bien, c'est qu'il existe
un contrôle rectangulaire. Il y a donc des champs et nous pouvons contrôler chaque branche séparément. Donc, si je place maintenant une
valeur aléatoire dans celle-ci comme celle-ci, vous verrez que ces branches ont des valeurs
ou des longueurs différentes. Vous pouvez voir qu'
il y en a un court et que vous ne le trouvez pas dans les différentes parties, vous pouvez
donc voir que
c'est vraiment aléatoire. Maintenant, pour contrôler cette entrée, nous pouvons simplement utiliser l'entrée de
longueur que nous avons créée et la connecter à l'échelle. Par défaut, vous pouvez
voir que c'est zéro, mais nous pouvons maintenant contrôler
ces longueurs. Et à partir de là, nous pouvons
également y
insérer une valeur aléatoire et vous pouvez voir que cela fonctionne
pour toutes les courbes séparément. La dernière chose que
vous souhaiteriez
ajouter à ce groupe de nœuds est de
randomiser un peu cette distribution en cercle,
car dans certains cas, cela ne semble pas très beau Par exemple, s'
il n'y en a que deux, vous pouvez voir que c'est
droit comme
ça, c'est droit, et nous voulons le rendre un peu aléatoire Passons donc à la division
et au groupe de nœuds, et nous contrôlons cette
rotation sur l'axe Z ici, cette combinaison XYZ
dans cette société Z. Pour le rendre un peu aléatoire, nous allons y ajouter une valeur Ajoutons donc un nœud d'ajout, et nous ajouterons
à la valeur d'origine. Maintenant, si je le branche sur l'axe Z, vous pouvez voir que
nous pouvons essentiellement contrôler la rotation ici. Nous voulons que la rotation soit
différente pour chaque courbe. Nous allons donc utiliser une valeur aléatoire. Et si je le branche ici,
nous voulons que ce soit, par
exemple, entre le négatif
un et le positif. Et nous voulons également un
siège différent pour chacun d'entre eux. Donc, en tant que siège, nous
pouvons, par exemple, utiliser un index de ceux-ci,
et maintenant vous pouvez voir qu'ils sont différents. Dans certains cas, il
pourrait arriver que toutes les succursales
soient dans la même position. Supposons donc que nous ayons
trois branches comme celle-ci, et qu'elles puissent pivoter dans
cette direction et dans cette direction. Cela pourrait donc aboutir à
quelque chose comme ça. Donc, le moyen de supprimer
celui-ci est de limiter ce
caractère aléatoire dans certaines parties Donc, en gros, nous allons limiter
cette branche dans cette partie, cette branche dans cette partie, et cette marque est cette troisième partie. Les valeurs que nous voulons
saisir dans la valeur aléatoire
sont donc essentiellement l'
angle de décalage divisé par deux. Cela nous donnera donc cet angle, et nous le multiplierons simplement par un négatif et un positif, et cela nous donnera la plage. Cette division nous
donne donc cet angle entier, et nous allons d'abord le diviser
par deux pour en obtenir la moitié, puis nous pouvons le multiplier
par 0,5 positif et négatif, ce qui devrait nous donner
ces valeurs limites. Maintenant, si nous intégrons
ces valeurs au minimum et au maximum
de ce caractère aléatoire, vous verrez que cela fonctionne bien Et nous pouvons également
augmenter le nombre. Et si nous regardons
du haut, vous pouvez voir qu'ils sont bien aléatoires. Pour le rendre un peu
plus étroit, par exemple, nous pouvons même le diviser par trois
pour obtenir des limites plus étroites, et je pense que je vais le laisser gelé pour qu'ils puissent se
toucher. Bien, la dernière partie est que nous allons ajouter une graine
à ce groupe de nœuds parce que nous voulons pouvoir contrôler un ensemble de toutes
ces valeurs aléatoires. Ajoutons donc une nouvelle entrée
et connectons-la à cet identifiant. Et je vais juste ajouter « read out » ici, et nous renommerons
cet identifiant en seat cachons pas non plus cette valeur Décochez
donc cette valeur de hauteur car elle est utilisée par
défaut pour l'ID Et maintenant, nous pouvons
le contrôler de l'extérieur, vous pouvez
donc voir que nous pouvons
contrôler le caractère aléatoire de la rotation au premier niveau
et également au deuxième niveau Pour tester cela, passons également
au troisième niveau. Encore une fois, j'utiliserai les
courbes et la sélection précédentes, et je vais les intégrer la rotation et nous
pourrons la raccourcir un peu. Vous pouvez voir que nous avons maintenant une structure assez intéressante, qui ressemble un
peu à un arbre. Mais dans les prochaines leçons, nous ajouterons plus de détails, ce qui rendra les
choses encore meilleures.
6. Système de branches avancé: Bienvenue dans les arbres en D gratuits
avec des nœuds de géométrie Blender. Dans cette leçon, nous allons
continuer à travailler sur notre système de branches,
et plus précisément, nous allons créer un nouveau
groupe de nœuds qui combinera ces extrémités et créera
un système de branches complet. Supprimons donc d'abord ces nœuds car nous n'en
aurons plus besoin, et nous créerons
un nouveau groupe de nœuds. Je vais donc simplement connecter cette
courbe à la géométrie de sortie à l' arrière et, avec l'arrière
sélectionné,
j'appuierai sur Control G pour
créer un nouveau groupe de nœuds J'appellerai ce
groupe de nœuds un système de branches. Donc, le fonctionnement de ce groupe de nœuds du
système de branches est qu'il
aura quelques entrées. L'un d'eux sera la sélection, qui sera le point à partir duquel nous voulons faire
pousser les branches. Supposons donc qu'il s'agisse du tronc
et de la sélection, puis nous le
brancherons au système Branch. L'entrée qui sera dans le
système de succursales est le nombre de niveaux. C'est donc le nombre de
niveaux de branches. Ainsi, par exemple,
voici à quoi ressemblent deux niveaux de
branches, et si nous en ajoutons un de plus, cela fait trois niveaux. Nous serons donc en mesure de
contrôler le nombre de niveaux. Et plus tard, nous ajouterons également
une sorte de randomisation. Il y aura donc
la longueur des premières branches
et des dernières branches, et cela intercalera
entre ces valeurs et degré de division des
branches Il y aura donc un nombre minimal
et maximal de branches qui seront générées sur chacune d'elles. Passons
donc au groupe de nœuds du système de
branches
et ajoutons certaines entrées. La première sera la sélection. Je vais donc ajouter une nouvelle
entrée sur le harcèlement et l'appeler sélection. Et le prochain point important
est le nombre de niveaux. Ajoutons donc une nouvelle entrée. Celui-ci sera un entier, et nous pouvons l'appeler niveaux. Je pense que c'est
bon pour le moment et que nous pouvons commencer à travailler
sur la configuration globale. Ajoutons donc notre groupe de nœuds
aux extrémités séparées, qui sera la base
de ce groupe de nœuds. Et en gros, la façon dont
cela fonctionnera est que nous utiliserons une zone de répétition, qui aura des
pointes fourchues à l'intérieur, et la zone de répétition itérera en fonction du nombre de niveaux que nous
saisirons dans
ce groupe de nœuds Et après toutes
ces itérations, il créera un système de branches
final Ajoutons donc une zone de répétition. Et le nombre d'itérations
sera exprimé en niveaux, nous pouvons
donc
connecter les niveaux aux itérations, et la géométrie de sortie
proviendra de la zone de bande afin que nous puissions
l'intégrer La géométrie de départ sera le tronc que nous saisirons
dans ce groupe de nœuds Nous pouvons
donc également intégrer la
géométrie à cette géométrie. Et à chaque itération, nous utiliserons cette géométrie, afin de pouvoir l'
intégrer à des pointes fourchues Nous avons donné une sélection et avons
jointe à la géométrie
précédente. Ajoutons donc la géométrie du menton, et nous l'intégrerons à la géométrie
source, en gros. Et nous devons également
enregistrer la sélection. Branchons donc cette sélection
dans ce socket vide, qui créera un nouveau
socket ici avec sélection, et nous utiliserons celui-ci comme sélection pour la prochaine itération Donc, pour la première itération, il s'agira d'une sélection
à partir d'une entrée de groupe Mais plus tard, dans les prochaines itérations, nous souhaiterons utiliser la sélection à
partir de ces nouvelles branches Nous allons donc le brancher
sur la sortie. Maintenant, si nous sortons de ce groupe de nœuds et
augmentons le nombre de niveaux, vous pouvez voir qu'
il commence à croître. Je vais également jouer
avec le décompte, et vous pouvez voir
que nous pouvons contrôler nombre de niveaux de
branches. Si nous vérifions maintenant le nombre réel de
courbes, vous pouvez voir qu'il
y a 16 splines, mais cela ne correspond pas à
ce que nous voyons, car
si nous comptons cela, nous avons un tronc,
trois branches, et chacune d'elles possède trois branches de
deuxième niveau, ce qui devrait faire
13, mais nous en avons 16 Le problème ici est
que cette sélection ne supprime pas la sélection
précédente. Donc, pour corriger réellement
cette sélection, nous allons créer un nouvel attribut
nommé, qui
nous indiquera les points que nous voulons développer lors de la
prochaine itération. Et pour l'ancienne géométrie, nous la définirons sur les chutes, et pour la nouvelle géométrie, nous la
définirons sur la sélection. Ajoutons donc un attribut
nommé store. Et nous pouvons l'
appeler sélection, le type sera Bolin, et pour toutes
les branches des niveaux précédents, ce sera faux Nous allons donc laisser ça sur Falls. Et si nous le dupliquons et le
branchons sur ces pointes fourchues, nous associerons la sélection
à la valeur. Et maintenant, pour la sélection
lors de la prochaine itération, nous pouvons utiliser cet attribut nommé appelé S et l'
intégrer à la sélection Maintenant, si nous augmentons
les niveaux à deux, vous pouvez constater que nous n'
avons que 13 splines au lieu de 16.
Cela fonctionne donc bien. Nous pouvons maintenant commencer à
travailler sur la connexion ces entrées à partir de
pointes fourchues à cette entrée de groupe. L'entrée suivante des
pointes fourchues est donc le nombre, et nous
voulons en fait rendre
cette entrée aléatoire parce que nous ne
voulons pas qu'elle soit constante, mais nous voulons quelques
variations ici Ainsi, par exemple, le premier niveau serait
divisé en trois branches, puis quatre, puis seulement deux
ou quelque chose comme ça. Pour ce faire, nous allons donc ajouter une valeur aléatoire. Le type de cette valeur aléatoire sera car le nombre
est également un entier, et nous allons insérer ces valeurs minimale et maximale
dans les entrées de groupe Nous pouvons donc utiliser ce circuit
gris vide pour le connecter, et cette valeur de sortie
sera prise en compte Vous pouvez voir que maintenant
cette connexion est rouge, mais nous pouvons résoudre ce problème, nous pouvons ajouter une nouvelle variable
dans cette zone de répétition, qui nous indiquera dans quelle
itération nous serons Et si nous intégrons cette
itération dans ID ou C, cela convergera vers une valeur constante
et non vers une valeur de champ, et cela ne devrait plus
être lu Nous avons donc sélectionné la zone de répétition, appuyé sur N et passé au nœud, et nous allons ajouter une nouvelle entrée, que je vais appeler itération
et définir un entier de type deux Et au début, nous voulons
qu'il soit, par exemple, nul, puis à
chaque itération, nous voulons l'augmenter d'un Ajoutons donc en mathématiques que nous y ajouterons un et que nous le stockerons
pour la prochaine itération. Maintenant, cela va s'incrémenter à
chaque itération. Cela signifie donc qu'il
sera différent pour chaque itération,
et nous pouvons l'utiliser, par exemple, pour l'ID, et maintenant vous pouvez voir que la valeur
n'est plus remplie. Et cela a créé
quelque chose d'étrange, mais c'est parce que le minimum est zéro et le maximum est 100. Si nous changeons cela par
deux contre cinq, vous pouvez voir
que lors de la première itération, cela le divise en cinq branches et seulement 23 lors de la suivante Nous voulons également être en mesure
de contrôler les semences. Connectons donc également la
graine à l'entrée du groupe. Et je vais simplement renommer
ces valeurs Min et Max en Min split count et
Max split count Et déplacez également le set vers le haut de l'entrée du groupe, comme toujours. Maintenant, le nombre de niveaux est aléatoire et la
prochaine entrée est la longueur Plus loin, nous allons également
créer une certaine randomisation, afin de pouvoir dupliquer
cette valeur aléatoire
et la définir comme flottante Et si nous ajoutons maintenant cette
valeur aléatoire à cette longueur, vous verrez que chacune
des branches a une longueur
différente, et c'est exactement ce que nous voulons. Malheureusement, nous pouvons connecter le
siège de l'entrée du groupe à cette graine et laisser l'ID tel quel
car par défaut, il sélectionne l'index, ce qui convient
parfaitement à cette fin. Pour les valeurs min et max, il existe peu d'options
pour contrôler cela. Et une chose que j'aimerais
faire, c'est que cela dépend du niveau actuel d'itération dans lequel nous en sommes Nous pourrons donc
créer, par exemple, des branches
longues au premier niveau puis des branches plus courtes
au dernier niveau. Et nous voudrons également
les rendre un peu aléatoires, nous allons
donc ajouter une
sorte de hasard Ajoutons donc une première entrée, qui sera la longueur de la première
branche, qui définira la longueur des
branches au premier niveau,
et nous pouvons définir la valeur par défaut sur un et le minimum sur zéro. Et je vais le dupliquer
et le renommer selon la longueur de la dernière branche, ce qui contrôlera la longueur des dernières branches ou
essentiellement des branches dernier niveau et la fixera, par
exemple, à 0,5 La dernière entrée pour
les branches
sera le caractère aléatoire de la longueur des branches, alors ajoutons-le également Et nous pouvons laisser ces valeurs
par défaut telles quelles. Maintenant, pour calculer
la longueur de la branche à chaque niveau, nous allons utiliser une
clé cartographique et également cette
valeur I que nous avons utilisée comme
identifiant pour la randomisation Ajoutons donc une clé à carte. Et nous allons remapper
ce I parce qu'il passe
de zéro à un nombre
de niveaux moins un Ou dans ce cas, nous
pouvons en fait l'augmenter jusqu'à la valeur de départ à un, et maintenant cela passera de
un à plusieurs niveaux. Et maintenant, nous pouvons simplement
remapper cette valeur I avec clé à molette de un
à plusieurs niveaux Et la plage à laquelle nous
voulons remapper cela va de la première branche
à la longueur de la dernière branche Cela signifie que
lorsque le I est un, ce qui signifie que nous sommes
au premier niveau, la sortie de cette branche de carte sera la longueur de la première branche. Et si nous sommes au dernier niveau, où se trouve le I, longueur des branches
sera égale à
la longueur de la dernière branche. Nous utiliserons cette valeur
pour la randomisation, et la façon dont nous allons la randomiser est d'ajouter
une valeur aléatoire à
cette longueur de base dans une plage allant du moins au hasard
et du plus au hasard. En gros, si je visualise cela, disons que voici valeur de
cette plage cartographique et que nous la
répartissons aléatoirement dans une plage où
c'est L moins le hasard, et où c'est L plus Donc, si le R est petit, il se situera dans une petite
plage entre le L, et s'il est plus grand, il
aura plus de variations. Cela signifie donc que le minimum
de cette valeur aléatoire
sera le ranch de la carte moins le caractère aléatoire des
embranchements. Soustrayons-le donc
de la carte Ranch. Et le maximum sera une
clé à carte et le caractère aléatoire. Je peux
donc le dupliquer avec Control Shi D et simplement
changer de type pour ajouter Maintenant, si nous
les branchons au minimum et au maximum et que nous sortons à l'extérieur, vous pouvez voir que nous pouvons contrôler les niveaux en
fonction de leur niveau. Et si j'augmente les niveaux, vous verrez que si je
change la longueur de la première branche, cela ne change que
le premier niveau et les autres,
mais le changement le plus important
se situe au premier niveau, et nous pouvons également contrôler la longueur de la dernière branche
ainsi que le caractère aléatoire Bien, maintenant je pense que
le système de succursales est prêt pour la prochaine utilisation. Nous pouvons également jouer
avec les entrées, et vous pouvez voir que
cela génère trois
très belles structures. Et la dernière chose que nous pouvons faire est de connecter
ces entrées à l'entrée du groupe principal
et également créer un panneau qui
contrôlera les branches. Ajoutons donc un nouveau panneau.
Je vais rassembler les branches Maintenant, je vais faire
apparaître une entrée de groupe
et, comme toujours, utiliser ce socket vide pour
créer ces nouvelles entrées. Et parce que si nous
le connectons au socket, il utilisera la
valeur actuelle par défaut. Je vais donc simplement définir de
belles valeurs par défaut ici. Donc quelque chose comme
ça. Et maintenant, je vais créer toutes ces entrées dans l'entrée du groupe en faisant simplement glisser ce
circuit vide dans chacune d'elles. Lorsque toutes les
entrées seront créées, je les déplacerai simplement
dans le panneau de droite, qui est le panneau des branches Et je vais également déplacer les
graines en haut des entrées et
les masquer
sur les sockets avec Control H, par
exemple, maintenant ça a l'
air plutôt beau. Une autre chose que nous pourrions faire est de nettoyer un peu cet
arbre. Je vais donc simplement utiliser une entrée de groupe
différente. Donc ce n'est pas si compliqué que ça. Et reconnectez simplement ces entrées à leurs propres entrées de groupe Maintenant, quand tout sera
terminé, nous pouvons passer à l'étape du modificateur, et vous pouvez jouer avec cette structure arborescente de base
avec toutes ces entrées. Une dernière chose que
j'ai oublié d'ajouter est le
contrôle de l'angle parce que
nous oublions celui-ci. Et sous cet angle,
nous voulons contrôler, en fait, l'étendue du système
global de succursales. Ajoutons donc rapidement nouvelles entrées pour cela. Pour cela, nous allons simplement choisir un angle
de base, puis le caractère aléatoire, et cela fonctionnera de la même
manière que la longueur de la branche, mais avec un seul angle de base Ajoutons donc la première
entrée à l'angle et la seconde au caractère aléatoire de
l'angle Je vais dupliquer cette entrée de groupe, et nous utiliserons la même
technique qu'ici. Je vais donc simplement utiliser
cette valeur aléatoire, utiliser celle-ci, ce sat, et nous allons simplement ajouter et
soustraire le caractère aléatoire valeur
de base comme
celle-ci et l'intégrer à des valeurs
minimales et maximales Cela générera un
angle aléatoire, et nous pourrons le
connecter à l'angle. Vous pouvez voir que
maintenant tout est plat, mais c'est parce que ces
entrées sont mises à zéro, donc je vais juste
l'augmenter légèrement. Et nous pouvons également définir
le sous-type de ces deux angles afin
qu'ils soient exprimés en degrés. La dernière chose
que nous devons faire est de relier cette graine
à notre graine mondiale. Je vais donc simplement connecter les graines de l'entrée du
groupe aux pointes fourchues. Et pour terminer,
nous allons connecter ces deux entrées à l'entrée du groupe
global. Encore une fois,
avec ce gris, nous les stockerons et les déplacerons
dans le panneau des branches
7. Données internes: Bonjour, et bienvenue sur Free D Trees with
Blender Geometon Dans cette leçon,
nous allons implémenter des données
internes que nous
utiliserons pour répartir nos feuilles et également pour déterminer le rayon de chaque
branche pour chaque point J'ai déjà expliqué ces données dans
l'introduction aux succursales, mais je vais les
passer en revue sous peu. Ces deux attributs
seront stockés
pour chaque point, et le premier d'entre eux est la longueur. Au début
de la racine, il est égal à zéro,
puis il augmente
en fonction de la
distance à laquelle puis il augmente nous nous trouvons par rapport à la racine. Ainsi, par exemple, cela peut
ressembler à ceci. Ensuite, nous implémenterons également l'inversion de cette version
ou d'une version opposée, qui sera appelée
longueur depuis la fin. Et celui-ci sera pareil, mais dans la direction opposée. Donc, aux extrémités des
branches, ce sera zéro. Et au fur et à mesure que nous nous
rapprochons
de la racine, la valeur augmentera. La longueur à partir de l'extrémité
sera utilisée pour répartir les feuilles aux extrémités des branches. Ainsi, par exemple, nous pouvons définir la valeur sur
zéro ou 1,5, ce qui peut être quelque part
ici, et les feuilles ne
seront distribuées que
dans ces branches. Et la longueur de base
sera utilisée pour calculer le rayon
du maillage de la branche. Très bien, passons donc aux nœuds de géométrie, et nous les implémenterons à l'
intérieur du système de
branches Passons donc au système de succursales. Et la première que
nous voulons utiliser est la longueur, car celle-ci
sera un peu plus simple. Nous allons donc stocker
ces attributs. Donc, dans le premier cas, nous pouvons réellement stocker une certaine
longueur de base pour le coffre. Je vais donc ajouter l'attribut Sterne. Il sera flottant pour chaque point, donc les valeurs par défaut sont correctes, et le nom sera length. Pour celui-ci, nous
utiliserons un périmètre de spline, qui nous donnera la
longueur de chaque point Et si nous visualisons cela, vous pouvez voir que c'est zéro en bas
et deux en haut. Maintenant, si nous passons au système de succursales, la façon dont cela fonctionnera est que, par
exemple, dans
ce premier niveau, je vais simplement le diminuer. Dans ce premier niveau, ce point
source a une longueur de deux. Pour tous ces points, nous ajouterons une longueur
à cette valeur de base, ce qui
nous donnera, par exemple, si cette courbe a une longueur de un, elle en créera trois
à ce stade. La longueur sera donc
implémentée à
l'intérieur des pointes fourchues, car
nous pouvons le faire ici. Je vais donc passer aux pointes fourchues
et nous les stockerons ici à la fin après avoir déplacé les extrémités
en fonction de la longueur Je vais donc ajouter un attribut
nommé magasin,
définir le nom sur la longueur. Et la longueur sera la longueur actuelle de la courbe plus la longueur
du point source. Nous allons donc ajouter une
valeur à celle-ci, et la valeur que nous
utiliserons est la longueur
du point source. Nous allons donc le capturer avant d'y
instancier la courbe. Ajoutons donc un attribut de capture. Et nous allons
capturer la longueur. Ajoutons donc également un
attribut nommé, la longueur. Nous allons le capturer
ainsi, puis nous allons intégrer cette
valeur à cette addition, ce
qui signifie que, par exemple, si ce point en a deux, cette courbe a une longueur de 0 à 1, ces valeurs s'additionneront, et nous en obtiendrons deux ici en bas et trois
ici en haut Donc, si nous le stockons
dans un attribut nommé, nous pouvons maintenant le visualiser à
la fin de cette zone de répétition Je vais
donc faire apparaître l'attribut
nommé. Et maintenant, vous pouvez voir que ces points ont des valeurs
légèrement différentes. Peut-être que je visualiserai cela à la fin de ce système de succursales
qui sera le meilleur. Et nous pouvons également
augmenter le nombre de niveaux et rendre les
branches plus visibles. Maintenant, si nous visualisons cela, vous pouvez voir que
ce point source a une longueur d'attribut nulle, alors cette valeur
est d'environ trois. Et il y a 3,7, 4,7. Bien, je pense que j'ai fait une petite erreur
dans les pointes fourchues. Ici, en plus,
il doit y avoir ce périmètre de spline
et la longueur de la colonne vertébrale, que j'ai utilisés auparavant, car cette longueur de colonne ne
nous donnera que la longueur de la courbe, mais nous voulons une longueur
sur chaque point Nous devons donc utiliser
ce périmètre de rotation. Et maintenant, si nous visualisons
ces valeurs, avec le plus grand
alors, par exemple, alors je vais passer au plus grand et
désactiver ce texte d'attribut. Vous pouvez voir qu'au fur et à mesure que j'
augmente cette valeur, toutes les branches deviennent noires, et pour rendre cela
encore plus visible, nous pouvons rééchantillonner ces
courbes en un plus grand nombre de points, et maintenant vous verrez
cette jolie bordure entre le noir et le blanc, qui
longe les branches C'est donc pour la longueur. Nous voulons maintenant l'attribut
opposé qui est la longueur à partir de la fin. Celui-ci sera un
peu plus délicat, et c'est parce que
la façon dont nous construisons
le système de succursales
est de commencer par le tronc
puis
de continuer jusqu'au Mais le meilleur scénario
serait de
commencer par le bout,
puis de recommencer, mais ce
sera un peu compliqué. Nous devons donc
trouver un moyen de
calculer la longueur à
partir des extrémités. La façon dont nous allons calculer
cela est que pour le tronc, nous allons stocker la longueur
dans le sens opposé, donc la longueur du bout. Donc, en haut, ce sera
zéro, et en bas, deux parce que
celui-ci sera la fin. Et ici, en bas,
la longueur à partir de l'extrémité est de deux. Ensuite, à chaque itération, nous allons prendre la longueur
de la branche suivante Supposons donc que celui-ci en soit un et ajoutons-le à
tous ces points. Donc celui-ci sera zéro
plus un et deux plus un. Et pour cette courbe, nous allons à nouveau stocker la
longueur inversée à partir de la fin Il y aura donc zéro, et il y en aura un, qui correspond à celui-ci. Maintenant, si nous faisons cela pour
chaque niveau, encore une fois, celui-ci en a un et nous
modifierons à cette longueur tous les
points précédents. Il y en aura donc deux. Celui-ci sera un, et celui-ci est deux plus un plus
un, soit quatre. Et vous pouvez voir qu'
à chaque niveau, cela augmente la
distance par rapport à la fin. Supposons que ce soit 0,5, ce sera zéro, 0,5,
un plus cinq, 2,5 et 4,5 et vous pouvez
voir qu'à la fin, nous devrions avoir cette valeur qui correspond
à la longueur à partir de la fin. Nous allons également implémenter
ce système de succursales internes, mais nous n'allons pas entrer dans les pointes fourchues, mais nous resterons également ici
dans la zone de répétition. Et comme précédemment, nous
allons d'abord commencer par stocker cet attribut
pour le tronc principal. Utilisons donc un autre attribut
nommé, mais nous
l'appellerons length from end. Et celui-ci
sera de longueur inversée. Donc, pour obtenir la longueur inversée, nous pouvons prendre la longueur
totale de cette courbe, puis en soustraire
ce périmètre Passons donc également à la longueur de
la colonne vertébrale, qui
nous donnera la longueur de la courbe. Vous allez soustraire ce périmètre de
longueur, qui va de
zéro à la longueur pour chaque point et commencer par
la longueur à partir de la fin Si nous visualisons cette valeur, vous pouvez voir qu'elle est
nulle en haut et deux en bas. Maintenant, dans le système de succursales, nous allons faire exactement ce que j'ai
expliqué ici. Donc, pour ces nouvelles courbes, nous allons simplement stocker
la longueur inversée Je vais donc encore une fois utiliser cet attribut
surnommé, définir sur la longueur à partir de la fin Le type sera découpé, et nous utiliserons la même
valeur que celle que nous avons utilisée ici Nous allons donc prendre une longueur de spline et soustraire
le périmètre
de la spline comme ceci une longueur de spline et soustraire
le périmètre
de la spline comme ceci. Cela nous donnera
à nouveau le facteur de longueur
inversé, et nous stockerons la
longueur à partir de la fin Et pour tous les
niveaux précédents, c'est-à-dire ce socket, nous ajouterons une longueur maximale de
ces courbes de nu à
leur longueur à partir de l'extrémité. Je vais donc dupliquer celle-ci et nous allons prendre leur longueur
précédente à partir de la fin, que nous allons prendre avec un attribut
nommé et ajouter une longueur de ces
courbes à cette longueur. Le problème ici est que ces nouvelles courbes peuvent
avoir des longueurs différentes, et il n'y a pas vraiment de moyen ramener chaque longueur
aux niveaux précédents. Supposons que nous ayons
le strunk et
qu'il génère deux branches L'un est plus court et
l'autre est plus long. Donc, le niveau précédent contient, disons,
un et zéro,
et nous ne pouvons pas
déterminer la longueur de ce point
parce qu'à partir de ce point, je ne sais pas, disons,
0,2, mais à partir de là,
cela peut être comme un. Nous ne savons donc pas quelle
valeur nous voulons ici. Et à mon avis, la meilleure chose à faire est d'
ajouter ou d'ajouter la
longueur maximale de ces courbes. Donc, comme il s'agit de 0,2
et que celui-ci est un, nous allons utiliser cette courbe qui signifie que ce point
aura une distance de un, et celui-ci aura une distance de un
plus un, soit deux. Donc, pour obtenir cette longueur maximale, nous pouvons simplement prendre cette géométrie et utiliser les statistiques des attributs. Et nous voudrons la
longueur maximale des courbes. Le domaine dans lequel
nous allons sélectionner sera la colonne vertébrale, et l'attribut que
nous voulons utiliser est
cette longueur à partir de la longueur de la colonne vertébrale. Je vais donc le
dupliquer, le brancher dans l'attribut et faire
de la place ici. Et en gros, nous allons simplement prendre ce maximum, l'ajouter
à la longueur précédente de la fin comme ceci et le
stocker dans la longueur par la fin. Donc, pour résumer,
pour les nouvelles courbes, nous allons stocker le facteur de longueur
inversé, et pour les anciennes courbes, nous allons simplement ajouter
une longueur maximale de ces nouvelles courbes à leur longueur
précédente depuis la fin Maintenant, si nous visualisons cela ici, je vais à nouveau utiliser la longueur d'
attribut nommée à partir de la fin. C'est ici. Et nous pouvons à nouveau utiliser le plus grand, car
cela nous permet de bien visualiser cela. Et au fur et à mesure que j'augmente cette
valeur, vous pouvez voir que cette valeur va bien des extrémités des
branches à la racine. Vous pouvez voir que si c'est zéro, elles sont
toutes blanches,
et quand je l'augmente, les extrémités sont noires et elles se dirigent vers la racine.
8. Les racines: Bienvenue dans Free D trees
with Blender Geometry Rods. Dans cette leçon, nous allons continuer à travailler sur notre arborescence. Plus précisément, nous
travaillerons sur les racines. Si vous essayez de dessiner
des racines sur notre arbre, quelque chose comme ça, remarquez que cette forme ici est très similaire
à celle d'ici. Et c'est exactement ce que nous
allons utiliser, car nous allons réutiliser groupe de nœuds de
notre système de branches pour créer les racines
avec la même technique. Passons donc aux nœuds Geometri, et ici nous pouvons voir
que dans cette partie, nous créons
notre système de branches, et nous ajouterons la même
chose, mais pour les racines Pour cela, nous pouvons dupliquer ce groupe de nœuds du système de branches. Et si nous
examinons notre tronc, nous utiliserons également
celui-ci, mais nous ne voulons pas faire pousser des
branches par le haut
mais par le bas. Nous allons donc associer notre géométrie
à la géométrie ici. Et si nous produisons maintenant ce système de branches,
nous pouvons tout voir. Mais si nous mettons notre sélection
originale ici, nous avons un
arbre très basique, comme avant. La première chose à
corriger est que nous voulons les branches poussent
par le bas. Donc, au lieu d'un point
avec un indice un, qui se trouve ici, nous voulons les faire
croître à partir d'un point
avec un indice de zéro. Nous pouvons donc dupliquer
cet équivalent avec Control h D et simplement
changer un à zéro. Et si ce chiffre est égal à zéro, cela créera les branches. Maintenant, vous pouvez voir que cela
crée les branches, mais il y a un problème car elles poussent dans
le mauvais sens. Nous voulons qu'ils grandissent
dans cette direction plutôt que dans cette direction. Pour résoudre
ce problème, le
moyen le plus simple est de prendre la courbe du
tronc et de l'inverser, ce qui inversera le
sens de cette courbe. Ajoutons donc une courbe inversée
et branchons-y notre coffre. Et si nous associons maintenant cette
courbe à la géométrie et cette sélection à la
sélection du système de branches, vous pouvez voir que
le système de branches a créé exactement ce que
nous recherchions, les branches
qui poussent à partir du bas de notre tronc. Maintenant, ce que nous pouvons
faire, c'est combiner les courbes générées
avec les courbes de branches. Je vais donc simplement assembler ces
géométries. Vous pouvez d'abord simplement ajouter une géométrie de joint et les
connecter séparément et les
connecter manuellement ou
vous pouvez maintenir la touche Ctrl le bouton droit de la souris et faire glisser le pointeur sur
ces deux nœuds comme ceci, pour générer
la géométrie du joint et joindre ces deux
branches ensemble. Maintenant, si nous publions ceci, vous pouvez voir que nous avons
une belle structure arborescente. Le seul problème que
nous avons maintenant dans la configuration est que ce système de branches
contient la courbe du tronc, et
que le système racine contient
également cette courbe du tronc. Cela signifie donc que
dans cette section, deux courbes
identiques se chevauchent Nous ne voulons pas
quelque chose comme ça, nous devons
donc nous débarrasser
de l'un de ces troncs. Pour nous débarrasser de l'un
de ces troncs, nous pouvons, par exemple, stocker l'attribut avant tous ces groupes
de nœuds pour le tronc, puis vérifier où cet attribut est attribué et nous supprimerons cette géométrie Ainsi, par exemple, ici, nous allons ajouter une route arrière, et nous allons ajouter un attribut
nommé magasin. Par exemple, nous pouvons ajouter un Bolin, nous pouvons l'appeler, par exemple, trunk et le définir sur true Cela signifie que cet
attribut
de tronc
est désormais attribué à la courbe du tronc. Et dans le
système de branches, nous ajouterons également
cet attribut, mais nous le définirons sur falls. Passons donc au système de succursales. Et ici, lorsque nous associerons nos nouvelles branches à
l'ensemble de la configuration, nous ajouterons un attribut
nommé magasin, et nous stockerons à nouveau le
tronc, mais en le réglant sur falls. Maintenant, si nous sortons de ce système de branches et que nous vérifions
le tronc d'attributs nommé, vous pouvez voir que
cette courbe est vraie, mais que ces courbes sont toutes fausses. Nous pouvons donc nous en servir. Par exemple, je vais supprimer
ce tronc des racines, mais vous pouvez également le supprimer
des branches, mais uniquement de l'une d'entre elles. Ajoutons donc une géométrie de suppression, et lorsque le tronc est vrai,
vous voulez le supprimer. Je vais donc l'utiliser comme ça. Maintenant, si nous voyons cela, vous pouvez voir que les racines
ne contiennent pas le tronc, mais que ce sont les branches qui le contiennent. Ensemble, cela
nous donnera l'arbre entier
sans aucun chevauchement C'est vrai. Maintenant, notre
système de courbes a également des racines, et nous voulons
pouvoir contrôler tous
ces paramètres, que nous pouvons contrôler
pour les branches. Nous voulons également les contrôler
pour les racines. Pour cela, nous allons ajouter
un tas d'entrées de groupe, et nous les ajouterons
avec ce sockit vide Donc pour le siège, on peut utiliser celui qui existe déjà. Alors branchons-le sur le siège. Mais cela se traduira par le fait que ces deux groupes de nœuds
utiliseront le même SAD, et nous pourrions obtenir les mêmes
résultats sur eux. Alors faisons en sorte que ce soit un
peu différent. Pour cela, nous pouvons
par exemple utiliser un nœud MF. J'aime multiplier à, et nous allons multiplier
cette graine par, par exemple, 15 et par un nombre
aléatoire, disons 42. Et maintenant, cela nous donnera
probablement toujours une valeur triste
différente de la valeur initiale. Maintenant, nous avons le siège, et
maintenant nous allons simplement connecter toutes ces entrées ou
prises de groupe à l'entrée du groupe. Nous allons donc utiliser cette prise
vide et je vais les
brancher comme ça. Et maintenant, lorsque toutes ces
prises sont connectées, nous pouvons cliquer pour
afficher le menu du site, et j'ajouterai un nouveau panneau
que j'appellerai root. Pour terminer, je vais déplacer tous
ces attributs ou entrées
vers ce panneau root. Bien, maintenant que tous les
sockets sont connectés, nous pouvons masquer un nouveau socket avec
Control H et nettoyer légèrement
cet arbre de notes Je vais simplement regrouper ces nœuds
avec Control J et l'appeler supprimer
le tronc dupliqué Et nous pouvons également renommer
toute cette configuration en système de branche. Nous pouvons maintenant aller dans Modifier et
jouer avec nos racines. Je vais donc régler les niveaux sur quelque chose de
plus petit, les
allonger un peu et aussi
jouer avec les angles. Nous pouvons également vérifier si
nos deux attributs, à savoir la longueur et la longueur à partir de la fin, fonctionnent correctement. Je vais donc simplement ajouter un
attribut nommé et une longueur, et nous vérifierons où il est supérieur à une valeur
seuil, et je masquerai les textes de ces
attributs. Donc, au fur et à mesure que je l'augmente, vous pouvez voir qu'à partir de ce point
, tout va
bien pour les branches, ainsi que pour les racines. Et pour vérifier l'
autre paramètre, qui est la longueur
depuis la fin, vous pouvez voir qu'il
fonctionne également très bien.
9. Déplacement: Bienvenue dans trois arbres en D
avec des nœuds de géométrie Blender. Dans cette leçon, nous allons travailler sur le déplacement
de notre configuration de courbe, et nous allons donner à cet arbre un aspect un peu plus naturel. Donc, la façon dont cela fonctionnera
est la suivante : en gros, nous allons simplement prendre ces courbes et les déplacer
avec des textures de bruit Mais avant cela, nous
devons être en mesure de contrôler la géométrie réelle de
cet arbre. Nous allons le contrôler
avec cette courbe de rééchantillonnage, mais nous donnerons à l'utilisateur la possibilité de contrôler la résolution dont
nous disposons réellement Pour ce faire, il est préférable
de
passer ce type à la
longueur, car cela
signifie qu' il échantillonnera ces courbes pour obtenir des points uniformément
répartis, et cela ne dépend pas de
la longueur de la courbe. Et nous pouvons ajouter un périmètre
à ce groupe de nœuds, qui sera la résolution. Ajoutons donc une nouvelle entrée
entière, qui s'appellera résolution. Et nous pouvons définir la valeur
par défaut sur, par
exemple, dix
et la valeur minimale sur un. Si nous faisons apparaître l'entrée du groupe, nous ne pouvons pas vraiment intégrer
cette résolution directement dans cette courbe de rééchantillonnage car ces
valeurs entières sont très élevées, et vous pouvez voir que cela
ne fonctionne pas vraiment Nous voulons ici des
valeurs plus faibles. Mais pour l'utilisateur, il est préférable de travailler avec ces valeurs entières. Donc, pour calculer cette longueur, nous pouvons utiliser le nœud MF et nous pouvons simplement diviser une
constante par cette résolution, qui signifie que si nous
augmentons cette résolution, cette division sera plus petite ou le résultat
sera plus petit, et la géométrie
aura plus de points. Donc, si nous utilisons 0,5, par exemple, vous pouvez voir que maintenant, lorsque la
résolution est définie sur un, le pas entre
les points est de 0,5. Mais si nous le fixons, par
exemple, à dix, le pas entre les
points sera de 0,05 Donc pour le moment, je vais
laisser les choses comme ça, et nous pouvons travailler sur le
déplacement avec des textures de bruit. Pour ce faire, nous utiliserons un simple
nœud de position définie. Ajoutons donc cela. Et nous utiliserons cette entrée de
décalage avec laquelle vous pourrez décaler l'arbre
dans toutes les directions. Si nous ajoutons maintenant
une texture de bruit, par exemple, cette couleur produit vecteur
tridimensionnel avec des valeurs de 0 à 1 Si nous le branchons directement
dans le offset, vous pouvez déjà voir qu'il effectue une sorte de déplacement. Et si on joue
avec la balance, on peut voir que l'
arbre est bien plus beau maintenant Le problème est que la racine
de l'arbre n'est pas à 000, donc c'est le premier problème, et l'arbre entier est en quelque sorte
déplacé dans cette direction. Tout cela est dû
à cette couleur, qui ne nous donne que des vecteurs
positifs, et nous voulons également des vecteurs
négatifs. Pour changer cela, nous pouvons
utiliser une plage cartographique et nous pouvons remapper ce vecteur
car la couleur est un vecteur allant de 000111 à un
négatif. résultera
que ce vecteur nous
donnera également
des valeurs négatives. Et si nous l'associons à Offset, vous pouvez
maintenant voir que l'
arbre est presque centré, et cela se corrige un peu. Mais le centre n'est toujours pas
exactement à zéro, zéro, zéro. Pour changer cela,
nous pouvons utiliser l'un des attributs que nous
stockons , à savoir la longueur. Si nous examinons la longueur, vous pouvez voir qu'
elle est nulle ici au centre
ou à la racine, et qu'elle augmente
vers les branches. Nous pouvons utiliser cette valeur pour
multiplier ce vecteur, qui fera en sorte que ce point restera
à zéro, zéro, car si nous multiplions le vecteur ici par
zéro, il sera nul. Et au fur et à mesure que nous nous dirigerons vers
les branches, il sera multiplié par un. Donc, si nous prenons cette longueur et que nous
multiplions ce vecteur par elle, nous pouvons utiliser une échelle pour cela. Cela se traduira par
quelque chose comme ça. Vous pouvez voir que les branches aux extrémités sont vraiment déformées,
mais
le point de départ de ce vecteur ou de cette
rose est
toujours à zéro, zéro, zéro. Les branches
sont ici très déplacées
car leur longueur
est beaucoup plus élevée. Et nous voulons que ce multiplicateur
soit un au maximum. Pour cela, nous pouvons utiliser une pince qui fixera
la valeur dans une certaine plage. Donc, s'il est
supérieur au maximum, il reviendra au maximum. Donc, si nous fixons ce 0-1, vous pouvez voir que maintenant
cela semble beaucoup mieux Nous pouvons également le visualiser, et vous pouvez voir que
cette valeur de serrage multiplie ces
vecteurs par zéro Mais quand c'est quelque part ici, ils sont déjà les originaux et ils sont
multipliés par un. Maintenant, cela semble
relativement intéressant, et nous voulons être
en mesure de contrôler le
degré de distorsion de ces points. Pour ce faire, nous pouvons multiplier cette valeur bloquée
par une constante Passons donc à la multiplication. Et connectez-le à la balance. Maintenant, si je joue
avec cette valeur, vous pouvez voir que je
peux modifier l' impact
du bruit sur le
déplacement des points. Le deuxième périmètre,
que nous pouvons également contrôler, est très important,
c'est l'échelle du bruit. Donc, si vous jouez avec le
bruit et que vous le réduisez, vous pouvez constater que la distorsion de l'arbre est
beaucoup plus douce. Et si nous le fixons à
quelque chose de plus élevé, vous pouvez voir que c'est très
dur et très détaillé. Pour obtenir les meilleurs résultats, il est très utile de combiner quelques-unes de ces
textures de bruit. Nous allons donc combiner deux d'entre elles, et nous voudrons
les utiliser de manière à ce que la première
ait une échelle très faible, et cela créera un tel
déplacement, sorte que les branches
seront très lisses, puis nous appliquerons une autre texture de
bruit qui aura échelle
beaucoup plus élevée et
ajouterons ces détails difficiles. Nous pouvons donc réutiliser la
configuration une fois de plus, et nous allons simplement additionner
ces valeurs. Les valeurs que nous
voulons contrôler sont cette
valeur de multiplication et cette échelle. Ajoutons donc quelques entrées de groupe. Je vais appuyer sur N, et j'ajouterai un nouveau panneau que j'
appellerai déplacement. Et je vais ajouter des entrées pour
cette première texture de bruit. La première entrée sera donc l' échelle de
bruit 1 et la puissance
du bruit 1. Et je vais régler la valeur par défaut
sur quelque chose comme 0,25 et la puissance également sur 0,25, nous pouvons l'essayer ici à quoi cela
ressemble. C'est peut-être trop petit. Je vais régler le pouvoir sur un. Et maintenant, pour la deuxième texture
que vous allez utiliser, nous pouvons simplement les dupliquer
et je les renomme en deux Pour celui-ci, j'utiliserai une
échelle de un, et la puissance de bruit de deux
aura une valeur par défaut. Mais 0,25, par exemple. Passons maintenant au
modificateur et
réinitialisons-les à leurs valeurs
par défaut. Et nous pouvons connecter ces
entrées à cette première installation. Je vais donc passer à l'entrée de groupe
et connecter cette échelle de bruit à
l'échelle et la puissance
du bruit à cette multiplication. Je veux dupliquer la configuration, donc je vais simplement sélectionner ces
nœuds et appuyer sur Control G, et je vais simplement renommer
ces entrées Cette échelle est excellente, et la
seconde sera Power. Et nous pouvons appeler ce
groupe de nœuds un déplacement de branche. Et comme nous voulons ajouter
un autre déplacement, je vais le dupliquer et utiliser une échelle
et une puissance différentes. Pour les combiner, nous pouvons simplement ajouter ces vecteurs. Ajoutons donc une addition et intégrons le
vecteur obtenu à l'offset. Maintenant, si je passe à Modifier, vous pouvez voir que nous pouvons contrôler les impacts de ces
deux textures, et nous pouvons obtenir des résultats très
intéressants. Pour nous assurer que ces
textures de bruit ne sont pas identiques, nous pouvons changer ce type de texture de bruit
en quatre D et utiliser ce périmètre W, qui ressemble à CT. Je vais donc brancher ce W sur l'entrée du groupe et
le déplacer vers le haut. Et maintenant, en dehors de ces
groupes de nœuds, je vais utiliser l'ensemble. Et encore une fois, nous obtiendrons
des valeurs différentes à partir de ce siège avec un nœud multiplicateur Ed. Ajoutons donc multipliez les annonces. Donc, tout d'abord, encore une fois, nous pouvons simplement utiliser
des valeurs aléatoires. Et je vais appliquer le
premier à ce W et le second, vous
pouvez simplement utiliser des valeurs aléatoires et elles auront probablement des
valeurs différentes pour chaque siège. Ils le connecteront au
second W. Nous pouvons
les masquer et également masquer un nouveau
circuit avec Control H. Maintenant, lorsque nous changeons de siège, les sièges des textures sonores
changeront également. Pour terminer, nous pouvons sélectionner toutes ces notes
et appeler cela un déplacement. Cette partie précédente peut
également être appelée résolution.
10. Génération de maillage: Bienvenue dans trois arbres en D
avec des nœuds géométriques en forme de mixeur. Dans cette leçon, nous
allons commencer à générer le maillage réel de notre arbre et à ajouter quelques cartes UV de base. Passons donc aux nœuds Geometri. Et la première chose est que pour générer un maillage à partir de courbes, nous allons utiliser une courbe pour mailler un nœud, afin de pouvoir l'ajouter. Et pour le profil, nous allons utiliser un cercle incurvé pour le moment car
nous voulons qu'il soit circulaire. Maintenant, si nous branchons cette courbe dans courbe de
profil et que nous
diminuons le rayon, vous pouvez voir que nous n'
avons pas très beau, mais que nous avons un maillage
vraiment basique autour de notre structure de courbe. Pour l'instant, nous pouvons également vérifier ces bouchons de remplissage afin que
les extrémités soient remplies. Et la première chose
que nous allons faire est jouer avec
le rayon de la courbe. Si nous ajoutons un rayon de courbe défini, vous pouvez voir qu'avec cette note, nous pouvons contrôler le
rayon de chaque point, et nous pouvons
les contrôler séparément, ce qui est très puissant. Donc, pour notre arbre, nous voulons que le rayon ici au début soit quelque part autour de
un, par exemple, et ici à la fin, il soit
autour de zéro, donc il diminuera au fur et à mesure qu'il ou qu'il s'approche
des extrémités des branches. Pour obtenir cette valeur, nous pouvons utiliser notre attribut de longueur
que nous capturons. Donc, si nous visualisons notre longueur, vous pouvez voir qu'elle est nulle ici et qu'elle augmente
vers les extrémités des branches. Le problème, c'est que
les valeurs sont très élevées. À la fin, il y a
quelque chose comme 6,9, mais la valeur idéale
serait juste un, puis nous pouvons simplement
inverser cet attribut Donc, pour remapper cette longueur de zéro à 6,9
ou quelle est la valeur Nous pouvons simplement prendre la longueur
maximale de ces branches et diviser
la longueur par celle-ci. Ainsi, par exemple, si
la longueur
maximale ces branches est de
sept, ici, à ce
stade, elle sera environ 0,95 ou
quelque chose comme ça, et c'est ce que nous
recherchons Ainsi, pour obtenir la
longueur maximale de ces branches, nous pouvons utiliser les statistiques d'attributs. Ajoutons donc une note sur les
statistiques des attributs. Et nous voulons
des statistiques de cette longueur. Branchons donc cet
attribut de longueur à l'attribut, et nous voulons
prendre ce maximum. Maintenant, pour convertir cette longueur
en une plage de zéro à un, nous pouvons simplement la
diviser par ce maximum. Et si nous visualisons maintenant cela, vous verrez qu'ici, à la
fin, il y a quelque chose comme 0,99, et qu'ici au début, c'est quelque part autour de zéro C'est donc exactement ce que
nous recherchons. Le seul problème maintenant, c'est que si vous
regardez les racines,
les valeurs aux extrémités
ne sont pas vraiment une, mais elles sont de 0,27 et ainsi de suite Et c'est parce que
les branches situées
au sommet sont beaucoup
plus longues que les racines. Mais les racines utilisent également
la longueur maximale des branches. Nous devons donc séparer ces deux parties et calculer
ce facteur séparément. Pour cela, nous allons transférer ce calcul dans
le système de branches, ce
qui séparera ces deux parties. Je vais donc simplement supprimer
ces nœuds ici, et je vais passer au système de branches, et nous pourrons calculer ce facteur à la fin
de la zone de répétition. Ici, dans la zone de répétition, à la fin de la zone de répétition, nous ajouterons un nœud de
statistiques d'attributs et nous prendrons un attribut de longueur Et divisez-le simplement
par le maximum. Donc, c'est la même chose
que nous avons fait avant. Et ici, nous pouvons simplement stocker cette valeur dans un autre attribut. Je vais donc ajouter un attribut
nommé magasin, que je vais appeler, par exemple, facteur de
longueur, et intégrer ce
résultat à cet attribut. Maintenant, si nous revenons à la fin de notre configuration et que nous visualisons
ce facteur de longueur, vous pouvez voir que les
branches ont toujours 0,99, mais que les racines ont également
quelque chose d'environ 0,807, et elles sont très proches Donc c'est sympa. Et par
exemple, maintenant, si nous branchons cet attribut
sur les radios, vous verrez que les
branches sont fines ici
au début et plus épaisses vers
les extrémités des branches. Nous voulons inverser cette tendance et nous voulons une épaisseur maximale
au début et
une épaisseur minimale aux extrémités. Donc, pour inverser cette tendance,
nous pouvons simplement prendre le nœud mathématique et soustraire
cette valeur de un Donc quelque chose comme ça.
Vous pouvez maintenant voir que les branches ou la racine
sont la partie la plus épaisse ici Et au fur et à mesure que nous arrivons à la fin, ils sont de plus en plus fins. Ensuite, vous pouvez également contrôler le rayon global avec le
rayon du cercle incurvé, et c'est plutôt joli. Actuellement, la
baisse est linéaire. Donc, si nous dessinons un graphique ici, sur l'axe y
se trouvera le rayon, et sur l'axe X, le facteur de longueur. Je vais juste le marquer comme ici. Actuellement, lorsque le facteur de
longueur est nul, le rayon est un, et lorsque le facteur de longueur est
un, le rayon est nul. Cela ressemble donc à ceci. Dans certains cas, nous
souhaiterons peut-être que les branches
soient plus fines plus tôt dans l'arbre. Nous voulons donc que la courbe
ressemble à ceci. Ou d'un autre côté,
nous voulons qu'ils soient plus
épais plus longtemps au fur et à mesure que nous arrivons au bout. Nous voulons donc que
cela ressemble à ceci. Pour contrôler cela, nous
pouvons utiliser, par exemple, courbe
flottante où nous pouvons faire
exactement quelque chose comme ça. Donc, si nous ajoutons une
courbe flottante après celle-ci, nous pouvons simplement jouer
avec cette valeur. Maintenant, vous pouvez voir que si je
le place sous la fonction linéaire, vous pouvez voir que les
branches sont plus fines, et si je le mets ici,
elles sont plus épaisses. Le problème ici est que nous ne
pouvons pas réellement contrôler
cette courbe flottante dehors de ce groupe de nœuds
ou en dehors de ce modificateur. Nous devons donc trouver une
autre façon de procéder. La façon dont nous allons
procéder est donc utiliser la fonction X à A
où le X est le facteur
ou notre facteur de longueur
et le A est une variable
d'entrée qui
peut être contrôlée par l'utilisateur. Ici
, c'est visualisé. Ainsi, lorsque le A ou l'
exposant est défini sur un, la fonction est linéaire Mais si je le mets à
une valeur inférieure à un, vous pouvez voir que la fonction
fonctionne plutôt comme ça, ce qui signifie que les branches
seront plus épaisses. Et s'il est supérieur à un,
vous pouvez voir qu'il
passe sous la fonction linéaire, ce qui signifie qu'
ils seront plus fins. Donc, pour implémenter
cela dans Blender, nous pouvons simplement prendre
cette valeur et utiliser un Bower et l'exposant
sera une valeur Donc, si nous le fixons à un, vous pouvez voir que nous obtenons
les mêmes résultats qu'avec la fonction linéaire. Si je le règle sur une valeur
inférieure à un, ils sont plus épais, et s'ils sont supérieurs à un, vous pouvez voir qu'
ils sont plus fins.
11. Cartographie UV et raffinement: Bonjour, et bienvenue dans Three D trees with
blender geometry rods. Vous pouvez en choisir encore plus de deux, et vous obtiendrez un dégradé encore plus beau. Mais cela dépend, je
vais probablement fixer valeur
maximale à quelque chose comme trois et la laisser comme ça. Donc, pour ajouter quelques contrôles, je vais ouvrir le menu du site, et la première chose que je vais
ajouter est le rayon global. Qui contrôlera le
rayon de ce cercle de courbe. Je vais définir la valeur par défaut à 0,15, et la seconde
sera la chute du rayon, qui sera cet exposant Je vais donc ajouter une nouvelle entrée et
l'appeler radius fall off. Le sous-type, je vais le définir
sur acteur car il sera à petite échelle,
donc vous pouvez l'utiliser Réglez la valeur par défaut sur un
et définissez-la sur 0-3. Pour utiliser ces entrées de groupe, je vais simplement les connecter
à partir de l'entrée de groupe. Également le rayon
du cercle incurvé. Maintenant, si je passe au modificateur, vous pouvez voir que je peux
maintenant contrôler le rayon de ces courbes
et leur chute. Nous pourrions également définir ces valeurs séparément
pour les branches et les racines. Le meilleur moyen
serait alors de placer également
ces contrôles dans le système de
succursales, mais je vais m'en tenir
à cette version. Donc, pour
nettoyer un peu les choses, je vais simplement déplacer ce rayon
ici et maintenant nous pouvons appeler ce groupe de nœuds radius parce que nous
contrôlons le rayon ici. Maintenant, la prochaine chose
que nous ne
contrôlons pas encore est
cette résolution. Une solution serait de simplement
modifier l'entrée du groupe, mais nous pouvons le faire un
peu plus intelligemment. Nous pouvons simplement utiliser cette entrée de
résolution, que nous avons déjà, et simplement calculer le nombre de points que le cercle de
courbe devrait avoir. Donc, pour la résolution, nous calculons ici. Et avec cette division, nous sommes décalés
entre deux points. Je vais donc simplement le dupliquer avec Shift D et le parent avec TP, afin qu'il ne soit pas dans le cadre et déplacer ici vers l'avant. Et en gros, le
cercle incurvé ressemble à ceci, et nous savons quel est son rayon. Nous connaissons donc cette valeur R et nous devons calculer le
nombre de points qu'elle aura. L'information que nous connaissons également est l'espacement entre les
points de cette division Nous savons donc que je vais juste dessiner un tas de points
ici, quelque chose comme ça. Et nous savons combien de temps
cet écart devrait durer. Appelons-le G as gap. Et pour calculer le nombre
de points qui entrent ici, nous pouvons simplement utiliser le
fait que la longueur
du cercle est deux
fois le rayon. Cela nous donnera toute
la longueur. Et si nous le divisons par cet écart, nous devrions obtenir le nombre de points que nous devons créer. Calculons donc cela. Je vais simplement multiplier ce rayon par deux Pi comme ceci ,
puis le diviser par
cette valeur d'écart, qui est ici. Et si vous le connectez à la résolution, vous verrez que la
valeur que nous obtenons est 17,6, elle est arrondie automatiquement, nous n'avons
donc pas besoin d'
arrondir cette valeur Et maintenant, si nous examinons la géométrie et que, par exemple, nous
diminuons la résolution, vous pouvez également constater qu'elle diminue automatiquement le nombre de
points, et nous n'avons pas
à nous en soucier. Très bien, la dernière partie
sera donc de générer les UV. Pour générer la carte UV, nous avons besoin de deux variables. L'un d'eux
augmentera vers
les extrémités des branches, et le second
devra
contourner les branches, ce qui générera
nos coordonnées de texture. Donc, d'abord, pour celui-ci, nous pouvons simplement utiliser notre attribut de
longueur car nous l'avons
déjà calculé, et il doit être
correctement calculé. Nous pouvons donc simplement utiliser celui-ci. Et pour le deuxième axe, nous pouvons utiliser un facteur de cette courbe que vous
utilisez pour le profil. Donc, si vous regardez ce cercle
et que vous utilisez un périmètre simple, qui inclut le facteur, vous pouvez voir que ce facteur
va de 0 à 1 autour du cercle, et nous pouvons utiliser cette
valeur pour l'UV Nous devons donc capturer
cet attribut avant
de
générer le maillage. Ajoutons donc un attribut de capture, et nous voudrons capturer
ce facteur pour chaque point. Et maintenant, après le maillage, nous devons créer les UV Ajoutons donc un attribut
nommé au magasin. Les UV sont un type de
vecteur et ils sont stockés pour chaque angle de phase. Nous allons
donc les définir comme suit Le nom sera UV map. Et la valeur sera un vecteur. Combinons donc XYZ. Et pour la valeur X, nous
pouvons utiliser ce facteur, et pour la valeur Y,
nous utiliserons cette longueur. Si nous visualisons maintenant
cela, vous pouvez voir que nous avons de beaux
UV pour l'arbre Et le seul problème, c'est que si
vous regardez cette partie, vous pouvez voir qu'il y en a zéro il
y en a un et que
tout tourne autour de vous. Mais ensuite, il y a un
retour rapide à zéro. Pour éviter cela, nous devons faire les
choses un peu différemment. Le problème auquel nous
sommes confrontés est que si nous visualisons le
facteur du cercle, nous pouvons simplement utiliser ceci
et je vais l'effacer. Vous pouvez voir que la valeur
est zéro au point de départ. Et pour ce qui est du dernier point, c'est
quelque chose comme 0,9 gratuit, puis on
se rapproche rapidement du zéro. Ce dont nous aurions besoin, c'est d'en avoir un ici également dans cette direction et zéro ici dans
cette direction. Pour obtenir cela, au lieu
d'un cercle incurvé, nous pouvons utiliser une spirale, qui n'est pas une courbe fermée, mais elle a deux points
dans cette position. Ajoutons donc une spirale incurvée. Utilisons nos valeurs calculées. Donc, pour la résolution, nous
utiliserons la même valeur. Rotations, nous ne voulons qu'
une seule rotation, alors
fixons-la à une Les rayons de début et de fin
seront les mêmes. Branchons donc le rayon
dans les deux comme
ceci et nous ne voulons pas que
je me contente de visualiser cela. Nous ne voulons pas que la
courbe ait une hauteur, alors fixons la hauteur à zéro. Vous pouvez maintenant voir que cette courbe a
en fait un et
zéro à cet endroit. Il y a en fait deux points
qui se chevauchent. Et si nous utilisons cette spirale
au lieu d'un cercle incurvé, nous devrions obtenir de bien
meilleurs résultats. Maintenant, vous pouvez constater qu'
ici, à ce niveau, il y a une transition difficile, ce qui signifie que les cartes
UV sont correctes Je vais donc simplement supprimer
ce cercle incurvé. Mais maintenant, nous avons
un autre problème : ici, à cette position, il y a des points qui se chevauchent Nous pouvons vérifier que si
nous survolons cette sortie, il y a 35 000 sommets Et si nous utilisons la méthode de fusion par distance, il
n'y a plus que 32 000 sommets Il y a donc de nombreux
sommets qui se chevauchent et que nous devons fusionner Si nous regardons maintenant la carte UV
avec le visualiseur, celle-ci, vous pouvez constater une fois de plus que nous
avons cette transition brutale que nous ne voulons pas ici ou
cette transition rapide 1-0. Et pour y remédier, nous allons remplacer cet attribut surnommé par une
simple capture de ce vecteur Je vais donc le supprimer et
ajouter un attribut de capture. Nous voulons capturer ce vecteur
qui stocke notre carte UV, et l'important
est d'utiliser un coin de face. Maintenant, si nous visualisons cette carte UV après la
fusion par distance, vous pouvez voir qu'
elle fonctionne correctement,
et comme c'est après
la fusion par distance, les points qui se chevauchent ont disparu Pour terminer, stockons
cet attribut pour le
coin de la face et appelons-le carte UV, et nous allons simplement y connecter cet attribut
capturé. Maintenant que nos cartes UV sont
terminées, nous pouvons sélectionner toutes ces notes et simplement les appeler mesh plus
UVs, par exemple Maintenant, pour vérifier si cela fonctionne
avec certains matériaux, nous pouvons utiliser nos documents
, que vous pourrez obtenir
gratuitement. Donc, pour ajouter ces matériaux
au fichier de mélange, nous pouvons ajouter,
trouver le fichier contenant les matériaux, et il devrait y avoir
du matériel, et il devrait y avoir
du matériel, y a deux
matériaux pour Il y a de l'écorce de chêne
et de l'écorce de secura, nous pouvons
donc les ajouter toutes les deux Et maintenant, lorsque nous
ajoutons du matériel fixe, et si nous utilisons l'un
de ces matériaux, vous pouvez voir que nous avons de
beaux matériaux sur notre arbre. Pour terminer, nous ajouterons entrée
matérielle à
notre entrée de groupe. Faisons donc apparaître le menu du site, et j'ajouterai une nouvelle entrée, appellerai matériel
et que je saisirai deux documents. Et nous utiliserons simplement
ce matériel pour la saisie de
groupe pour nos succursales. Une autre chose que
vous voudrez peut-être
contrôler est l'échelle
de ces cartes UV. Et nous pouvons simplement le faire
en redimensionnant ce vecteur
ici avant de le stocker. Donc, si nous ajoutons une échelle et que nous jouons avec elle, vous pouvez voir que
si je
l'augmente, les textures ont une meilleure
résolution ou sont plus petites, et vous pouvez également contrôler
cela. Je vais donc simplement ajouter une autre entrée, qui sera l'échelle UV, définir la valeur par défaut sur un
et le minimum sur zéro, et je vais simplement connecter cette échelle
UV à la balance. Maintenant, si nous le réglons sur un, vous pouvez voir que nous
pouvons facilement contrôler l'échelle de notre matériau et
le modifier très facilement.
12. Les bases de la distribution des feuilles: Bienvenue dans trois arbres en D
avec des nœuds de géométrie Blender. Dans cette leçon, nous allons
commencer à ajouter des feuilles à notre arbre et ajouter trois options différentes
pour les distribuer. Les trois types
de distribution
des sauts que nous allons
mettre en œuvre ont donc des sauts que nous allons déjà été expliqués dans l'une des premières leçons, mais je vais
les passer en revue rapidement. La première consiste donc à
distribuer des feuilles
partout dans nos branches, sorte qu'elles seront partout
ici sur les branches. Le second type
sera celui de l'extrémité, ce qui signifie que
nous allons simplement prendre ces branches et utiliser
une valeur de seuil pour contrôler à quelle distance les feuilles se
trouveront encore des extrémités. Cette option donne, à mon
avis, les meilleurs résultats, et la dernière option
sera contrôlée par l'axe Z minimum
ou la position Z. Nous allons donc fixer une valeur seuil et distribuer les feuilles uniquement sur les branches ou sur
les points supérieurs à
cette valeur seuil. commencer, nous aurons
besoin de quelques feuilles sur lesquelles vous
testerez notre installation, et vous
les trouverez dans le fichier que vous obtiendrez
gratuitement avec Discours. Je vais archiver, ajouter,
dans le fichier contenant les objets, nous allons passer à la collection, et il y a peu de collections, et je vais toutes les inclure sauf cette collection.
Nous n'avons pas besoin de celui-ci. Et si nous cliquons sur Ajouter vous pouvez voir que cela ajoute un tas d'objets à notre scène, et qu'ils sont bien organisés
dans ces collections Il existe deux collections principales pour le chêne et le sacara Pour chacune d'elles, il
existe des feuilles différentes. Donc, pour le chêne, il
existe trois types de feuilles ainsi que le matériau que nous avons appliqué dans la leçon
précédente. Et pour le sacara, il
existe deux types de feuilles. Il y en a un fleuri
et il n'y en a pas un fleuri. Et le dernier, il
y a les pétales de fleurs que nous pourrons utiliser plus tard, par exemple
pour le système de
particules. Donc pour l'instant, je vais
simplement masquer
ces deux collections et commencer à distribuer quelques feuilles. Passons aux nœuds de géométrie. Et la façon dont nous choisirons entre ces trois types
expliqués se fera par le biais du menu. Ouvrons donc un panneau de site, et d'abord, j'ajouterai un nouveau panneau, que j'appellerai feuilles. Et pour choisir entre ces
trois types différents, je vais entrer, qui
aura un type de menu. Je l'appellerai où
parce qu'il
contrôlera l'endroit où les
feuilles se reproduisent. Et si nous allons maintenant dans Modifier, vous pouvez voir que cette liste déroulante
ne contient aucune option Pour ajouter des options, nous
devons connecter cette entrée de groupe à
une sorte de nœud de menu. Pour ce faire, nous pouvons
ajouter un commutateur de menu, qui est essentiellement
un nœud où vous pouvez ajouter un tas d' options, puis le contrôler
à l'aide de ce menu. Je vais donc simplement connecter cette entrée ware à
ce commutateur de menu. Et pour modifier ces options, nous allons cliquer sur ce
commutateur de menu et passer à Node tap. Et ici, nous pouvons modifier
toutes les options. La première option
sera donc les branches. Le second partira de la fin, et le troisième sera Min Z pour la position Z
minimale. Ce commutateur de menu peut désormais basculer entre ces trois entrées de
géométrie. Et pour chaque type, nous allons créer des courbes sur lesquelles nous voulons
répartir les feuilles,
puis nous allons simplement
utiliser cette sortie, qui sera sélectionnée avec ce logiciel, et nous distribuerons les feuilles sur
cette courbe. Nous pouvons également vérifier
cela dans le modificateur, nous avons
maintenant ces trois options. Nous pouvons choisir n'importe laquelle d'entre elles, et ce devrait être
l'une de ces entrées. Donc, pour créer les courbes de base, nous utiliserons les
courbes de notre arbre, et je les utiliserai
après le rayon, car
nous aurons besoin de ces informations sur le
rayon plus tard lors de
la distribution des feuilles. Prenons donc ces courbes, et la première option que nous
avons ici sont les branches. Cela signifie que nous ne voulons que
des courbes qui sont des branches et que nous devons supprimer
toutes les autres. Ajoutons donc la géométrie
de suppression. Et maintenant, pour
déterminer quelles courbes sont des branches et lesquelles ne le sont pas, nous pouvons, par exemple, utiliser l'attribut
length,
que nous avons ici, et lorsque la longueur est
supérieure à
la longueur du tronc parce que la longueur du tronc se trouve
uniquement sur le tronc, puis les longueurs sont plus élevées. Ainsi, lorsque la longueur est
supérieure à la longueur du tronc, nous ne devrions obtenir que les
branches. J'ai besoin du contraire. Donc, si nous supprimons tous les
points où la longueur est inférieure à la hauteur du tronc,
nous devrions obtenir les branches. Voyons donc la longueur de
l'attribut nommée. Et si elle est
inférieure à la hauteur du tronc, nous pouvons également le visualiser, et vous pouvez voir que toutes
les branches situées sous
le tronc sont blanches. Mais le problème, c'est que certaines racines ne sont pas cueillies
ici. C'est parce que leur longueur est supérieure à la hauteur du tronc et que nous ne voulons pas de
feuilles sur les racines. Donc, pour résoudre ce problème, nous pouvons également
ici, sur la tige de cette branche, stocker des informations si ces courbes
sont des racines ou non. Donc, pour cela, je vais ajouter un ensemble d'attributs
nommé magasin de type 2 Bolin et l'appeler root. Et pour les meilleurs, ce
sont mes succursales. Je vais donc le régler sur Falls. Et pour ceux du bas
qui sont en fait des racines, je vais le définir sur true. Maintenant, si nous allons dans ce sens, nous choisirons essentiellement les endroits où
la longueur est inférieure hauteur
du tronc ou
s'il s'agit de racines. Nous allons donc utiliser des racines
d'attributs nommées. Et si cela est vrai, nous voulons
également les supprimer, ce qui devrait
nous donner une meilleure sélection. Maintenant, vous pouvez voir que
toutes ces racines, y compris le tronc, sont blanches, ce qui signifie que toutes ces parties seront
supprimées. Donc, si nous visualisons cela maintenant, vous pouvez voir que nous n'
avons que ces branches. Cela signifie que nous avons
sélectionné la première option et que nous pouvons la connecter
aux branches. Et maintenant, si nous le produisons, nous avons
maintenant des branches sélectionnées,
donc nous avons des branches. Mais si nous sélectionnons
autre chose, ils sont vides. Alors faisons-les également. Pour l'option from end, nous utiliserons à nouveau la géométrie DD. Et nous voulons supprimer
tous les points
où la longueur depuis la fin est
supérieure à un certain seuil. Pour cela, nous devons donc
ajouter cette entrée de seuil. Je vais donc ajouter une nouvelle entrée
à ce groupe et l'
appeler length from end. Et je vais définir
la valeur par défaut sur, par exemple, un, et la réinitialiser ici. Et maintenant, si nous prenons la longueur de
l'attribut nommé à partir de la fin, nous voudrons supprimer tous les points où
la
longueur à partir de la fin est supérieure à cette longueur
à partir de la fin de l'entrée du groupe, ou s'il y a des racines. Encore une fois, nous allons ajouter ceci ou
valeur ou cela avec des racines. Et maintenant, si nous voyons cela, vous pouvez voir que nous n'
avons que les extrémités des branches, et que nous pouvons le contrôler avec
ce périmètre d'entrée de groupe. Cette partie est donc également terminée. Et maintenant, la dernière partie
est l'axe Z minimum. Donc, pour celui-ci, nous aurons
également besoin d'un périmètre. Ajoutons donc une nouvelle entrée
et appelons-la Min Z. Et encore une fois, nous
utiliserons la géométrie de suppression et nous supprimerons tous les points dont
la position sur axe
Z est inférieure à ce seuil Nous allons donc prendre position. Nous n'obtiendrons que la
position Z en séparant XYZ, et si celles-ci sont inférieures l'entrée Z principale, nous les
supprimerons Cela ressemblera donc à ceci. Et nous pouvons connecter cette troisième
option à ce commutateur de menu. Maintenant, si nous jouons
avec ces options, nous devrions obtenir ces
trois types de courbes sur lesquelles nous allons
répartir les feuilles. De plus, un petit conseil si vous avez itinéraires arrière les
uns en dessous des autres comme celui-ci et que
vous souhaitez les aligner, vous pouvez simplement les sélectionner et
appuyer sur X sur l'axe X, zéro, et cela
les alignera sur l'axe X sur une ligne. Nous pouvons également regrouper ces
nœuds avec Control J, et je l'appellerai courbes foliaires.
13. Placement avancé des feuilles: Bonjour, et bienvenue dans Free D trees with
Blender Geometry nodes. Et maintenant, commençons à générer des feuilles sur ces courbes. Donc, pour créer les feuilles, nous allons utiliser l'
instance sur les points. Mais nous devons d'abord
répartir les points
le long de ces courbes. La meilleure façon de répartir points de manière aléatoire
sur les courbes est simplement créer un groupe
de points, puis échantillonner la courbe
avec un facteur aléatoire, ce qui permettra de bien les
répartir. Alors d'abord, ajoutons quelques points. J'en ajouterai, par exemple, 200 pour le moment. Et comme dépôt, nous
utiliserons un échantillon de courbe. Nous allons donc échantillonner
ces courbes. Nous voulons toutes les échantillonner
afin de vérifier toutes les courbes, et maintenant nous pouvons simplement
contrôler ce facteur. Pour chaque point, nous voulons que ce
facteur soit randomisé. Ajoutons donc une valeur aléatoire
0-1, connectez-la au facteur. Et maintenant, si vous insérez cette
position dans ces points, vous verrez que
les points ne doivent être répartis que
sur les branches. Vous pouvez voir qu'elles
sont modifiées en
fonction de la façon dont nous définissons ces courbes. Mais le problème maintenant, c'est
que nous ne
savons pas vraiment combien de points
nous voulons
, car parfois les pièces sont très petites et nous ne voulons pas avoir
beaucoup de feuilles au même endroit. Et parfois, il y a
de longues courbes, et nous ne voulons pas de grands
écarts entre elles, mais nous voulons
un bon nombre de points ici. Pour calculer un grand
nombre de points, nous pouvons simplement prendre la longueur totale de toutes ces courbes avec la longueur de la courbe. Ce nœud nous donne donc la longueur totale de
toutes ces courbes. Et maintenant, si nous ajoutons une nouvelle entrée que nous
pouvons appeler, par exemple, densité, nous pouvons simplement prendre cette longueur et la
multiplier par la densité. résultera que,
quelle que soit la longueur des courbes, Il en résultera que,
quelle que soit la longueur des courbes, la
densité des feuilles sera toujours similaire. Donc, si la longueur est
plus petite, il n'y aura que quelques points, et quand c'est quelque chose de haut, la longueur, il y
aura beaucoup de points. Si nous ajoutons ce
multiplicateur pour compter maintenant et fixons la densité à dix, vous pouvez voir qu'il
y a beaucoup de points. Mais si nous diminuons ou si je le
mets à partir de la fin,
vous verrez que les points sont toujours relativement
bien répartis. C'est bon. Maintenant, nos points
sont bien répartis. Nous pouvons également regrouper cela et l'appeler distribuer des feuilles de feuilles,
désolé, des points de feuilles. Et maintenant, nous pouvons enfin citer quelques feuilles sur ces points. Ainsi, nous
ajouterons une instance sur les points. Pour les points, nous utiliserons les points que
nous avons distribués. Et pour les instances, nous voudrons utiliser certaines des collections que
nous avons ajoutées au fichier Pour cela, nous
ajouterons une nouvelle entrée où nous ajouterons
la collection. Ajoutons donc une collection et
définissons la collection Type 2. Je vais également le déplacer vers le
haut du panneau. Et définissez quelques valeurs ici. Je vais donc, par exemple, cueillir les feuilles de sakura Et maintenant, pour distribuer ces
feuilles issues de la collecte, nous pouvons simplement extraire les informations de
collecte. Pour la saisie, nous utiliserons la
collecte de nos entrées de groupe. Nous voulons séparer les enfants
et les remettre à zéro. Et nous pouvons connecter ces
instances aux points. Vous pouvez voir que maintenant toutes
les feuilles sont orientées dans
la même direction et que toutes les
feuilles sont sur chaque point. Nous ne voulons donc en choisir qu'un. Ainsi, nous pouvons
vérifier cette instance pi. Et nous voulons également faire légèrement pivoter
ces feuilles. moyen le plus simple
serait donc de simplement créer une valeur
aléatoire ou un vecteur
aléatoire 0-2 Pi Et si on le met en rotation, on obtient des feuilles relativement
belles. Si nous combinons maintenant cela
avec la géométrie de nos branches, vous pouvez voir qu'il
peut y avoir plusieurs problèmes. Je vais régler les densités
sur quelque chose de plus petit, qu'elles soient un peu
plus visibles, et aussi définir un rayon complet pour un rayon inférieur à un Ce n'est probablement pas l'arbre
que vous souhaitez créer, mais je voudrais
vous montrer un petit problème que nous avons, non ? Ainsi, par exemple, dans cette
courbe, il y a une courbe, et nous instancions les points directement
sur ces courbes Le problème est que le maillage ne
se trouve pas sur ces courbes, mais autour de celui-ci,
car nous utilisons une spirale ou une courbe pour créer
un profil autour de celui-ci, et nous voulons que les feuilles poussent sur ce maillage et
non sur les courbes. Donc, pour résoudre ce problème, nous
devons le décaler, décaler ce point par le
rayon de cette courbe. Ainsi, les feuilles poussent réellement à la surface et non à
l'intérieur du maillage. Pour ce faire,
avant les points, nous instancions des
feuilles sur les points, nous allons également définir
la position de ces points, et nous devons prendre rayon de cette courbe dans
le point distribué Ce sera donc la valeur
que nous allons également échantillonner. Je vais donc ajouter du rayon. Et maintenant, cette valeur est le
rayon en un point donné. Et si nous
regardons ce dessin, chaque courbe possède des vecteurs. L'une d'elles est la tangente de courbe, qui est dans la
direction de la courbe, et la seconde
est la courbe normale, est-à-dire la direction perpendiculaire
à la tangente de la courbe Donc, si nous prenons cette courbe normale et
que nous la redimensionnons par le rayon, nous devrions obtenir un
décalage correct pour les points. Donc, si vous
insérez ce point dans le décalage, l'important
est également multiplié par le rayon global
de la branche. Nous allons donc le multiplier par le
rayon à partir de l'entrée du groupe. Et maintenant que la feuille est là, vous pouvez voir qu'elle se trouve à
la surface du maillage. Cela ne pointe pas
dans la bonne direction. Ça devrait être
quelque chose comme ça. Nous y sommes presque. Pour
rendre cela encore plus aléatoire, nous allons prendre le vecteur normal
et le faire pivoter par une valeur aléatoire Donc, si nous visualisons cela, nous avons la branche, et elle a une courbe tangente
et aussi une courbe normale Dans cette direction, nous
décalons les feuilles, mais maintenant cela signifierait
que tous les points
seraient décalés dans le même sens, mais nous voulons répartir cela de manière aléatoire, afin que certains d'entre eux soient dans ceci, d'
autres dans cette direction
et dans cette Donc, pour le rendre aléatoire, nous pouvons prendre ce
vecteur normal que nous avons redimensionné par le rayon et utiliser une rotation vectorielle ou une
rotation vectorielle Le centre sera 00, zéro, et l'axe sera la tangente car c'est l'axe
autour duquel nous tournons Et pour l'angle, nous pouvons
simplement choisir une valeur aléatoire. Je vais donc ajouter une valeur aléatoire
et la mettre à 022 Pi. Et si vous insérez le vecteur
obtenu dans Offset, les points devraient être
distribués de manière encore plus aléatoire. Maintenant, je vais juste clarifier un peu
ce calcul. Donc quelque chose comme ça. Et nous devons également toujours relier la graine à
nos valeurs aléatoires. Je vais donc connecter la graine
de l'entrée du groupe à cette valeur aléatoire et également la
graine à cette valeur aléatoire. Maintenant, si nous
ramenons le rayon du flux à quelque chose de plus raisonnable et que nous fixons la densité
à environ dix, vous pouvez constater que nous avons une très belle répartition des feuilles. Nous pouvons également passer feuille à l'
autre très facilement grâce à cette collection, et tout fonctionne bien. Une dernière option ou un dernier
périmètre que nous voulons ajouter est de pouvoir contrôler l'échelle
de ces feuilles. Ajoutons donc deux entrées supplémentaires. L'un d'eux sera l'échelle, par défaut un, et le second
sera l'échelle aléatoire. L'échelle sera
contrôlée simplement ici où nous instancions des
feuilles sur les points Et la façon dont nous allons
générer cela est créer simplement une valeur aléatoire, et nous allons prendre une entrée de groupe, et le minimum de
cette valeur aléatoire
sera l'échelle moins le caractère aléatoire, et le maximum sera l'
échelle plus le caractère aléatoire Vous pouvez donc simplement associer
ces deux valeurs à la
valeur aléatoire et à la graine. Et maintenant, si vous insérez
cette valeur aléatoire dans l'échelle et que
vous la définissez sur les valeurs par défaut, vous pouvez voir que nous avons également quelques
variantes ici. Si nous vérifions également les trois
types de feuilles, donc les branches, les feuilles
sont partout sur les branches. À partir de la fin, nous pouvons contrôler la distance entre les feuilles et les
extrémités des branches et
nous pouvons également
contrôler le minimum de X, ce qui peut être pratique
pour certains types d'arbres. Tout est procédural,
nous pouvons donc jouer
avec les graines, et nous obtenons toujours un arbre
très différent.
14. Système de particules de base: Bienvenue dans les arbres en D gratuits
avec les nœuds de géométrie Blender. Nous ajouterons un
détail supplémentaire à notre arbre, et ce sera un système de
particules très simple qui simulera la chute des
feuilles de nos branches. Dans ce cas, nous
utiliserons à nouveau des objets issus de la ressource gratuite
que vous
obtiendrez gratuitement dans le cadre de ce cours, et dans ce cas, j'utiliserai
ces petites feuilles de secura, qui seront parfaites
pour cet usage Donc, pour savoir comment cela fonctionnera
réellement,
nous utiliserons d'abord des zones de simulation
à l'intérieur des nœuds de géométrie, ce qui nous permettra de simuler
ces feuilles qui tombent et de simuler une sorte de physique Donc, la première chose que nous
devons faire est d' ajouter des points
à notre géométrie. Nous utiliserons donc technique
similaire à celle que nous avons utilisée
pour distribuer les feuilles. Nous utiliserons les mêmes courbes, mais nous allons simplement citer quelques points
simples comme ceci. Ensuite, dans la
zone de simulation de chaque image, nous les
déplacerons légèrement vers le bas, impression
qu'elles tombent et pour ajouter du bruit.
Ainsi, il ne s'agira pas simplement de feuilles tombantes
droites, mais elles bougeront
ou quelque chose comme ça. Passons donc aux nœuds de géométrie, et je vais ajouter les points ici
sous la structure des feuilles. L'important est que petites particules tombent des feuilles pour lesquelles nous avons déjà les courbes sur
lesquelles elles sont générées. Nous allons donc réutiliser ces courbes et y répartir quelques
points. Nous utiliserons donc
la sortie de ce commutateur de menu, qui est sélectionné par
cet attribut are, et nous utiliserons techniques
similaires à
celles utilisées pour les feuilles. Nous allons donc ajouter une courbe simple
et nous allons échantillonner courbes
aléatoires à partir de celles-ci et simplement attribuer ces
positions à de nouveaux points Pour l'instant, je vais ajouter un nœud de points, et disons que nous voulons
ajouter quatre points par image Je vais
donc fixer le nombre à quatre. Maintenant, nous devons vérifier toutes les courbes parce que nous
voulons toutes les échantillonner, et le facteur
sera une valeur aléatoire. Ajoutons donc une valeur aléatoire de
0 à 1 et ajoutons-la au facteur. Maintenant, si nous insérons la position dans le nœud de points
et que nous la visualisons, vous verrez que nous
avons quelques points ici, et nous pouvons changer le siège
avec l'attribut seat. Pour simuler la chute, nous aurons besoin de la zone
de simulation. Ajoutons donc une zone de simulation. Et c'est très
similaire à la zone de répétition. Il a donc une entrée de géométrie. Ensuite, il fait certaines choses
entre ces deux nœuds. Dans ce cas, cela est
fait pour chaque image, puis il y a cette géométrie
de sortie. Sur chaque image,
nous voulons donc ajouter quatre nouvelles
feuilles à nos points de chute, et nous allons le faire en joignant ces quatre points à
cette géométrie existante. Ajoutons donc une géométrie de jointure, et nous joindrons
ces quatre points. Maintenant, si nous produisons cette zone de
simulation, jouons l'animation,
vous pouvez voir que nous n'avons toujours que
ces quatre points. En effet, sur chaque image, ces quatre mêmes
points sont ajoutés et
se chevauchent Si j'exagère cette sortie, nous devrions voir que nous avons maintenant 404 points parce que
nous sommes sur l'image 101. Pour les rendre
variables, nous devons
contrôler le siège et le rendre
différent pour chaque cadre. Ainsi, nous pouvons utiliser le temps de scène, qui nous donne l'image
actuelle. Et si nous branchons cette image sur le siège et que nous réinitialisons
l'animation, nous devrions voir apparaître de nouveaux points
à chaque image. Ils créent progressivement
la forme de courbes originales. À présent, vous souhaiterez peut-être ajouter un nombre de
points différent pour chaque cadre. Pour cela, nous pouvons utiliser une valeur aléatoire et simplement
l'intégrer au décompte. Mais vous pouvez voir que ce
n'est pas possible car la sortie de cette valeur
aléatoire est un champ, mais ces points ont besoin
d'une valeur constante. Pour contourner ce problème, nous devons trouver
le moyen de
distribuer ou de créer des
points aléatoires sur chaque image. La façon dont nous pouvons le faire est au lieu de ces nœuds de
points qui créent
simplement des points sur position
donnée, nous
pouvons, par exemple, utiliser des points de distribution sur faces auxquels nous leur donnons
une sorte de maillage, et cela générera des points en fonction de la densité et du siège. Et cela se traduira par un nombre de
points
différent pour chaque siège. Nous avons donc également besoin d'un maillage d'entrée. Pour cela, nous pouvons utiliser le
maillage de votre choix. Je vais juste utiliser une grille. Et
maintenant, si nous visualisons cela, vous pouvez voir
que c'est la grille, et qu'il y a des points
générés, et pour chaque siège, cela génère un
nombre de points différent. S'il s'agit de la densité
à un, par exemple, vous pouvez voir qu'
il y a parfois deux points, parfois un seul et
parfois zéro point. Donc c'est plutôt bien. Un autre problème auquel
nous pourrions être confrontés est que cela ne
dépend pas de la longueur de
ces courbes sources, ce qui signifie que
quelle que soit la longueur de ces courbes,
nous générerons toujours le
même nombre de points. Nous pouvons résoudre ce problème en contrôlant la taille de cette grille
par la longueur de la courbe, qui signifie que si nous
avons des courbes plus longues, cela générera une grille plus grande et distribuera plus de points car
il y aura plus d'espace. Ainsi, nous pouvons simplement utiliser une longueur de courbe et la connecter
à l'axe X ou Y. Vous pouvez maintenant voir qu'
il génère des points sur cette grande grille. Et nous pouvons également contrôler
la densité avec la deuxième taille sur l'axe Y. Mais je vais m'en tenir à une seule,
et nous contrôlerons la densité avec cette valeur de densité. Maintenant, lorsque nous avons généré
un nombre approprié de points, il suffit de
les répartir sur les courbes. Nous allons donc simplement utiliser la position définie. Et comme position, nous utiliserons cette position aléatoire
à partir des courbes sources Maintenant, vous pouvez voir que si
je joue l'animation, elle distribue des points aléatoires
sur toutes les courbes. Hein ? Maintenant, si je
passe en revue l'animation, vous pouvez voir qu'il
y a toujours quatre points, et c'est parce que le siège des points de distribution
est toujours le même. Je vais donc également
brancher le cadre au siège. Et maintenant, nous devrions obtenir un nombre de points
différent. Je vais peut-être réduire
la densité à 2,02, et vous pouvez voir qu'il
y a trois points, un, un, trois, zéro, deux, donc c'est
bien aléatoire. C'est vrai. Maintenant, remettons
ces points dans cette zone de simulation
et produisons celle-ci. Et vous pouvez voir
que nous gagnons de
plus en plus de points au fur et à mesure que
nous jouons à l'animation. Donnons-lui donc un
peu de mouvement. Pour le mouvement,
nous pouvons simplement utiliser une position définie et le
décaler sur ZxS à quelque chose
comme moins 0,1 Maintenant, si vous jouez à l'animation, vous verrez que les
points tombent. C'est parce qu'il
crée toujours ces nouveaux points et qu'ils sont tous déplacés sur
l'axe Z de moins 0,1. Une chose que nous devrions corriger est que si nous
jouons maintenant l'animation, vous pouvez voir à quelle vitesse
ils tombent. Mais si je change
la fréquence d'images de ce projet à 60, par
exemple, vous verrez qu'elles
diminuent beaucoup plus rapidement. C'est parce que ce décalage est effectué
24 fois par seconde sur 24 images par seconde. Mais si nous fixons le nombre d'images
par seconde à 60, cela se fait 60 fois par seconde,
et c'est beaucoup plus rapide. Pour contrôler cela, nous pouvons
utiliser ce temps Delta, qui nous donne le temps
entre deux images. Et si on redimensionne un vecteur en fonction cette valeur, alors
quelque chose comme ça. Et je vais le dire
à moins un sur Z X parce que ce
temps Delta est un très petit nombre. Maintenant, si vous jouez l'animation, vous pouvez voir qu'
elle est assez lente. Mais si nous changeons la fréquence d'images, la vitesse ne devrait pas changer et elle devrait rester
la même. Bien, nous pouvons donc appeler
cela, par exemple, une gravité et nous devons être
en mesure de contrôler cette gravité Nous voudrons
donc contrôler
cette valeur sur l'axe Z. Grâce à cela, je vais
simplement ajouter la combinaison XYZ, et j'ajouterai une nouvelle entrée de groupe, qui contrôlera cette valeur Z. Pour les points, j'
ajouterai un nouveau panneau, que j'appellerai particules, et j'ajouterai une nouvelle entrée, appellerai gravité
et que je mettrai par défaut sur un. Comme nous voulons
saisir une gravité positive, mais que cette valeur doit
être négative, nous allons d'abord multiplier
cette entrée de gravité par moins un, puis
l'intégrer à la coordonnée Z. Maintenant, si je passe au modificateur et que je
réinitialise la gravité à un, désolé, je dois régler
cela pour multiplier. Et maintenant, nous devrions
avoir des feuilles ou des particules qui tombent. Je peux aussi l'augmenter et
vous verrez que les points chutent plus ou moins vite. C'est bon. Alors maintenant, donnons-lui un
peu de hasard. Nous
allons donc
ajouter une valeur aléatoire
à ce décalage. Et cette
valeur aléatoire proviendra de la texture du bruit, car
la texture du bruit nous
donne un beau bruit doux, et nous pouvons l'utiliser pour
déplacer ces points Ajoutons donc de la texture sonore. Nous avons déjà utilisé des textures de
bruit pour déplacer notre arbre, et nous avons fait une chose remapper
cette couleur parce
qu'il s' agit d'un vecteur et que nous
voulions utiliser ce vecteur, et nous étions en train de le
remapper de zéro, zéro, zéro, un, un à un
négatif à un. Nous obtenons donc un vecteur, qui peut également être positif et négatif
et pas seulement positif. Cela nous donne donc un vecteur aléatoire. Et maintenant, si nous redimensionnons simplement
ce vecteur par une constante et que nous l'ajoutons
à cette gravité, vous verrez que nous avons
ici des points complètement fous. Je vais le multiplier
par 0,1, par exemple Maintenant que vous pouvez voir que les
points sont plus instables, certains d'entre eux
restent également en place Une chose que
nous pourrions corriger dans ce ranch cartographique est que nous ne voulons pas contrôler ces
points sur l'axe Z, mais uniquement
contrôler le mouvement
sur les plans X et Y. Je vais donc simplement mettre ces codins
Z à zéro, et maintenant ce
ranch cartographique ne
nous donnera que des vecteurs aléatoires
sur le plan XY
15. Simulations avancées de particules: Bonjour, et bienvenue sur le site gratuit de D Trees with Blender EmetinRDS Vous pouvez voir que les points
tombent à la même vitesse et qu'ils sont ondulés. Si nous définissons l'échelle sur
quelque chose de
global, vous verrez peut-être que certains points se
regroupent, car
si les deux points sont proches ou dans
la même position, le même bruit leur est
appliqué et ils suivent alors le même chemin ou le même chemin. Donc, pour créer une texture de
bruit différente pour chaque point, nous pouvons passer à quatre D, et ce W ressemble à un CD. Ainsi, par exemple, nous pouvons simplement
utiliser l'indice de chaque point. Cet indice n'est pas
vraiment le meilleur choix car il peut changer
au cours de la simulation. Pour résoudre ce problème, nous allons donc
stocker certains attributs avant le début de la simulation
pour chaque point
, puis les utiliser pour les
différencier. Je vais donc ajouter un attribut
nommé magasin ici après la position définie où nous
distribuons les points. Et la première chose
que nous allons stocker sera quelque chose comme index, donc je vais l'appeler et
ce sera un entier. Et j'utiliserai une combinaison du cadre et de l'index pour créer un numéro unique
pour chaque point. Pour cela, nous
pouvons, par exemple, simplement utiliser multiplier et ajouter. Je vais multiplier le cadre
par une constante, disons 21, et y ajouter
l'index. Cela devrait nous donner un
nombre différent pour chaque point, et nous pouvons commencer par
cet attribut I. Et plus tard, nous pourrons réutiliser cet attribut nommé
comme source de ce bruit. Vous pouvez maintenant constater que le
bruit est beaucoup plus doux, et nous voulons pouvoir
contrôler dans quelle cette texture de bruit affecte nos points ainsi que l'
échelle de cette texture de bruit. Ajoutons donc deux nouvelles entrées. Le premier d'entre eux
sera l'échelle de bruit, que je définirai par défaut à
un et le minimum à zéro, et le second sera la puissance du bruit, que je définirai par défaut à un. Si vous regardez la configuration, ce qui est étrange, c'est que la gravité est échelonnée
par le temps Delta, mais pas la texture du bruit, et cela devrait être
corrigé Additionnons donc d'abord
ces deux vecteurs comme ceci,
puis
nous allons redimensionner l'ensemble de ce
vecteur en fonction du temps Delta. Maintenant, cela devrait être vraiment
indépendant de la fréquence d'images, et branchons les
entrées de l'entrée de groupe Je vais
donc ouvrir l'entrée de groupe
et connecter l'échelle de bruit à ce bruit et la puissance du bruit à ce nœud mathématique vectoriel d'échelle. Je vais également raisonner sur ces valeurs. Et vous pouvez voir que nous avons de
belles particules qui tombent. Le problème que vous pourriez
rencontrer est que les points sont générés en permanence, mais qu'ils ne sont jamais supprimés, ce qui peut entraîner des
problèmes de fréquence d'images car il y a
peut-être trop de feuilles et cela deviendrait très lent. Donc, pour y remédier, nous avons besoin
d'une fonction qui supprimerait les points après un certain temps de leur durée de vie. Supposons donc que nous définissions une
durée de vie de 0,2 seconde. Ainsi, si le point est ancien ou se trouve dans la scène depuis
plus de 2 secondes,
il sera supprimé. Pour cela, nous allons stocker certains attributs avant
la simulation. L'un d'eux sera start, qui nous donnera l'heure à
laquelle ce point a été créé. Le type sera flottant.
Et pour stocker cette valeur, nous utiliserons simplement les secondes, qui nous donneront les secondes
actuelles, et nous la stockerons dans
l'attribut start. Le deuxième attribut que nous
utiliserons sera la durée de vie, qui enregistrera la durée de vie de
ce point. Et maintenant je vais juste
le régler pendant 2 secondes. Plus tard, nous pouvons le rendre aléatoire
, par exemple. Ainsi, après le déplacement
des points, nous vérifierons si chaque point doit
toujours être dans la simulation, et sinon, nous le supprimerons. Ajoutons donc une géométrie de suppression, et maintenant nous devons choisir les
points que nous voulons supprimer. Vous allez prendre l'attribut
nommé start. Et pour déterminer sa
durée de vie, nous allons simplement utiliser l'heure actuelle et soustraire ce
début de cette heure Cette soustraction nous
indiquera donc
depuis combien de temps ce point existait Supposons, par exemple, que
le
temps de départ soit de 2 secondes alors qu'il est actuellement de 6 secondes. Cela signifie que le
point est vivant pendant 4 secondes. Et quand c'est
supérieur à la durée de vie, je vais le dupliquer
et le régler sur Lifetime. Nous voulons supprimer ce point. Nous allons donc intégrer ce résultat
dans la géométrie de suppression. Et maintenant, si nous jouons
l'animation, vous verrez que
les points situés en bas sont supprimés. En effet, leur
durée de vie est
supérieure à leur durée de vie limite
et ils sont supprimés. Nous pouvons également randomiser
cette durée de vie. Pour cela, je vais ajouter
deux entrées de groupe. L'un d'eux sera la durée de vie, je mettrai la valeur par défaut à deux
et le minimum à zéro, et le second sera le caractère aléatoire à
vie Que je mettrai par défaut à zéro. Et maintenant, juste la
randomisation classique. Nous ajouterons une entrée de groupe, et le minimum de
la valeur aléatoire sera la durée de vie
moins le caractère aléatoire, et le maximum sera la durée de
vie plus le caractère aléatoire Cela nous donnera donc la plage
dans laquelle nous voulons que la
durée de vie soit générée. Et nous allons
intégrer
ces deux valeurs à une valeur aléatoire comme celle-ci, et nous pouvons également définir la
graine à partir de l'entrée du groupe. Et l'identifiant pour le rendre
différent pour chaque point, nous pouvons réutiliser cette valeur I que
nous stockons ici dans I, et je vais juste l'
utiliser ici comme ça Et cela devrait nous donner une valeur
différente pour chaque point. Et si nous le
stockons maintenant à vie, oui, il y a des problèmes parce
que notre
durée de vie n'est pas vraiment définie. Je vais donc régler la durée de vie à deux
et le caractère aléatoire à zéro. Maintenant, chaque point
devrait vivre 2 secondes. Mais si je mets le caractère aléatoire à un, le point peut durer de 1
à 3 secondes. Hein ? Je pense donc que notre simulation de
particules de base est terminée, et maintenant, dernière
étape pour créer de vraies feuilles, nous devons utiliser ces points et y répartir
des objets. Donc, pour cela, je vais utiliser l'
instance sur les points. Et comme exemples, nous utiliserons quelques feuilles. Ils seront donc en collection. Et nous devons d'abord créer
une entrée de groupe pour cela. Je vais donc ajouter une nouvelle
entrée et une nouvelle collection de groupe, définir le type également sur collection
et le déplacer ici. Et maintenant, je vais simplement connecter cette collection de l'
entrée de groupe aux informations de collection. Je veux séparer et
rechercher les enfants, connecter ces instances
à l'entrée d'instance, et nous voulons que chaque instance
soit aléatoire Je vais
donc vérifier cette grande instance Maintenant, nous pouvons tout voir car nous n'avons pas choisi la collection. Et la collection que je vais
utiliser sera constituée de ces pétales de fleurs. Je peux donc le cacher à nouveau, et je vais cueillir des pétales de
fleurs ici. Et maintenant, vous pouvez voir que nous avons des feuilles
très basiques comme celle-ci. Il y a quelques problèmes.
Ils sont tous orientés vers le haut. Nous aimerions donc, par
exemple, randomiser
ces feuilles Et deuxièmement,
ils ont tous la même échelle, nous voulons
donc la rendre un peu aléatoire Fixons d'abord la rotation. Et la première chose que
nous pourrions faire est simplement brancher une rotation
aléatoire sur cette douille de rotation. Mais pour
améliorer un peu le rendu, par exemple,
nous pouvons les faire pivoter
pour qu'elles soient toujours
orientées vers la caméra, et vous pouvez toujours
voir les feuilles entières, ce qui peut être très pratique
si elles sont très petites, elles peuvent ne pas être
visibles tout le temps. Cela pourrait donc résoudre ce problème et
pour déterminer la rotation, façon dont il fera face à
la caméra,
nous devons d'abord photographier
l'objet afin obtenir un objet caméra actif, ce qui nous donnera la caméra active
actuelle. Pour obtenir l'emplacement, nous utiliserons informations sur
l'objet et
utiliserons cet emplacement. Et vous pouvez voir que ces feuilles
sont toujours orientées vers l'axe Z. Nous allons donc aligner l'axe Z sur la
direction de la caméra. Pour obtenir la direction de la caméra, il suffit de prendre notre
position et de la soustraire de l'emplacement de la caméra Avec des mathématiques vectorielles. Cela
nous donne donc ce vecteur directeur. Maintenant, nous pouvons simplement utiliser
aligner la rotation sur le vecteur parce que nous voulons aligner
notre axe Z sur ce vecteur Je vais
donc le connecter au
vecteur et à la rotation. Et maintenant, ça a l'air
un peu bizarre. C'est probablement parce que je n'
ai pas de caméra dans cette scène, donc je vais en ajouter une nouvelle. Et vous pouvez voir
que lorsque je déplace l'appareil photo, les feuilles sont tournées vers
elle et je peux le vérifier avec celui-ci. Vous pouvez voir que si je regarde
sous n'importe quel angle, je peux toujours voir les feuilles. Enfin, nous
pouvons également
les faire pivoter de manière aléatoire autour de l'axe Z. Ainsi, nous pouvons simplement ajouter une
valeur aléatoire
à cette rotation, et j'utiliserai simplement la valeur
aléatoire 0-2 Pi Et maintenant, ils devraient également
avoir une rotation aléatoire. D'accord, donc ça a l'
air plutôt bien. Et maintenant, pour ce qui est de l'échelle, nous allons utiliser une approche classique. Nous allons simplement ajouter des entrées pour l'échelle et le caractère aléatoire et le calculer en
fonction de ces entrées La première entrée sera donc l'échelle, valeur par défaut, du minimum à zéro, et la seconde
sera l'échelle aléatoire, qui aura par défaut la valeur
zéro et le minimum égal à zéro Pour une valeur comprise dans cette plage, je vais soustraire le caractère aléatoire de
l'échelle, et pour le maximum, j'ajouterai ces deux
valeurs et je les
insérerai simplement dans le
minimum et le maximum
de valeurs aléatoires Et cela devrait
nous donner la bonne échelle. Nous pouvons également utiliser la graine issue de l'entrée du
groupe pour la graine, et pour l'ID, nous pouvons utiliser
l'attribut I named. Je vais donc ajouter un attribut nommé et le connecter à l'ID. Donc, quelque chose comme
ça devrait fonctionner. Maintenant, nous pouvons intégrer
cette valeur à l'échelle, et vous pouvez voir que les
feuilles sont aléatoires. Je vais régler l'échelle sur oh, oui, l'échelle est sur un. Je vais régler l'échelle sur quelque chose comme 0,2 et le hasard sur 0,1. Et maintenant, nous avons ces
jolies petites feuilles. Je vais diminuer la gravité, donc c'est un peu plus lent. Et la dernière entrée que nous
oublions d'ajouter est la densité. Alors réglons également ce problème. Les points sont répartis ici dans cette
distribution sur les faces, et nous voulons
pouvoir contrôler cette densité. Je vais donc ajouter une nouvelle
entrée, appelée densité. envoyé du dévouement à
quelque chose comme 0,5, et je vais le brancher sur
cette entrée de densité Si nous réinitialisons maintenant cela, nous avons de nombreux points ici, et je pourrais augmenter légèrement l'échelle
du bruit. Et si je ne veux que quelques feuilles, je le mettrai à 0,05,
mais il me reste encore beaucoup de feuilles Je vais le réduire encore plus
et augmenter la durée de vie. Maintenant, vous pouvez voir que nous avons de très
belles feuilles. Et pour combiner cela
avec l'arbre d'origine, je vais simplement ajouter la géométrie du joint et assembler ces
deux éléments. Et maintenant, nous avons
ce bel arbre
aux feuilles qui tombent.