Transcription
1. Présentation générale: Apprenez à faire des scripts Python de qualité de production aujourd'hui obtenir une note d'expert pour moi, pipeline, directeur technique, voir mobile et terminé avec des leçons qui sont affectées techniques
éprouvées de production tout en étant facile à suivre et au point, vont au-delà du simple apprentissage des bases en enseignant des concepts de programmation, workflows
efficaces et l'exécution finale qui vous feront travailler beaucoup plus efficacement. Nous allons commencer par regarder tous les panneaux de codage
et les utilitaires sont les offres de mixeur sont la boîte. Et nous appliquerons directement ces outils et techniques afin de solidifier un compétent ou cool. Nous n'avons pas besoin d'expérience dans la programmation ou le mixeur. Pour suivre, je vous guiderai à travers les bases et nous découvrirons les possibilités ensemble. Notre dossier sera structuré et compréhensible. Et de cette façon, nous pouvons facilement nous pousser plus
loin que nous ne pourrions jamais faire autrement. Comme nous obtenons de plus en plus à l'aise programmation et mixeur, Nous allons toujours nous concentrer sur la direction artistique pour nous
assurer que nos scripts comprennent beaucoup de détails artistiques et de contrôle. L' objectif ici est de créer une base solide. À la fin de ce cours, vous aurez créé cinq scripts à partir de zéro, et vous serez sur le point de devenir un programmeur compétent. Alors rejoignez-moi et améliorez votre ancien travail ou apprenez quelque chose de nouveau aujourd'hui.
2. Aperçu de l'interface : Introduction: Hé les gars, et ça fait partie du cours et nous allons parler de notre environnement de développement, qui est là où nous allons construire nos programmes et nos scripts. Nous allons passer en revue tous les panneaux de décodage que le mélangeur a à offrir et parler leurs cas d'utilisation individuels et de leurs pièges et juste
s'assurer que vous comprenez comment les utiliser parce qu'ils sont vraiment, vraiment puissants. Tous vraiment beaucoup plus que,
que d'écrire quelques lignes de code. Cela va juste vous montrer comment je travaille en tant que développeur interactivement avec ces panneaux, je peux prendre des informations de Brian et l'utiliser dans un autre. Donc ça va être très excitant. Cela va parler de mon flux de travail en général, mais à un niveau élevé, donc c'est très compréhensible pour tout le monde. Et puis pendant que vous progressez dans le cours et que vous allez continuer à référer à travers ces panneaux et vous me verrez les utiliser. Mais pour l'instant je veux juste m'assurer que vous
comprenez leurs usages et que vous sachiez ce qu'ils sont.
3. Aperçu de Interface : Écrire l'écrire :: Parlons de notre environnement de développement. Je viens de lancer Blender. J' utilise la version 2.81, ou il n'a pas trop d'importance, vous pouvez simplement utiliser n'importe quelle version. Je recommande d'utiliser quoi que ce soit au-dessus de 2.80. Donc il en a besoin, on cherche un peu la même chose. Mais une fois que vous avez mis un mélangeur, vous devriez voir quelque chose comme ça, ce qui est très bien. Mais pas pour les scripts. Donc, pour les scripts ou la programmation, vous allez devoir écrire une sorte de texte ou exécuter des commandes
que nous ne pouvons pas faire en ce moment. Nous allons donc devoir déplacer des espaces de travail ou tout simplement des panneaux incapables. Mais cela est fait par défaut si vous déplacez des espaces de travail. C' est donc plus facile si nous allions simplement à l'espace de travail de script, que vous pouvez trouver ici le milieu supérieur. Donc tu peux juste cliquer sur ce gars. Et vous verrez cette mise en page intimidante ou juste des panneaux de texte et des choses que vous n'avez peut-être pas vu auparavant. Mais n'ayez pas peur que ça revienne sur ces choses juste en vous assurant que vous savez quoi, tout est. Très bien, tout. Alors nous allons nous concentrer et faisons juste ça.
4. Aperçu de l'interface :: Le premier panel dont je vais parler est le petit gars en bas. Vous pouvez voir mon curseur. Je, il cache son nom en ce moment, mais c'est la bataille d'info ici vous, donc sous scripting, ce sont les trois panneaux dont nous allons parler. Le premier sera un script plutôt que le panneau complet, désolé. Donc, à partir de maintenant, il semble un peu vide. J' ai vu ça dans la bière. Mais ce que fait cette bataille, elle ne fait que suivre votre histoire. Mais en or. Donc c'est un peu un concept abstrait ou peut-être tout ce qu'il était traité. Donc, vous pouvez simplement faire n'importe quelle opération ou commande ou quoi que ce soit dans votre fenêtre ou simplement en cliquant sur des choses comme vous le faites normalement en scriptant. Et il va s'inscrire ici. Donc, c'est la commande Python réelle est exécutée afin d'obtenir exactement le même résultat. Donc si on analyse ça, laissez-moi peut-être que je peux zoomer ici, donc je vais juste le coller ici. C' est ce qu'on va faire à côté. N' aie pas peur. Peut-être juste rendre ça un peu plus grand. Je peux cliquer ici, ici je peux contrôler. Laisse-moi voir. Ok, donc je vais zoomer va être un peu plus rapide. Donc si vous voyez que le commandant vient d'être exécuté est BP. Pourquoi dot-dot-dot transform.py traduire, traduire, non ? Nous savons ce que cela signifie. Ça bouge quelque chose. J' ai juste appuyé sur G et je l'ai déplacé. Et vous pouvez voir peut-être pourquoi dot-dot-dot transformation pas traduire. Donc, c'est juste déplacer quelque chose dans le code Python. Donc, c'est vraiment précieux. Vous pouvez même, disons que vous pouvez aller en mode édition pour faire face à sélectionner face, phase extrudée. Et toute votre histoire vient d'être enregistrée ici. Donc extruder, raisonnable est juste une simple extrusion dans le code Python. Et en revenant juste en arrière, en traçant les pas en arrière, vous pouvez vraiment facilement automatiser quoi que
ce soit vraiment, C'est généralement mon premier aller si je ne connais pas une certaine commande ou comment je, comment je devrais faire quelque chose en Python. Je le fais juste manuellement. Et puis regardez cette fenêtre et voyez ce que fait le mélangeur. Un moyen d'encodage pour réaliser ce que je viens de faire manuellement.
5. Aperçu de l'interface : Console intégrée: Et le prochain panneau, je vais parler de cela, la console interactive Python, celle sur la gauche ici. Vous pouvez voir la console là-bas. Je vais juste le traîner un peu pour le rendre un peu plus grand pour que vous puissiez vraiment lire ce que je tape. Ce cas ici vous permet essentiellement d'exécuter des commandes comme vous le verriez ici. Alors disons, laisse-moi commencer tout de suite. Mais disons que vous créez un cube. Vous pouvez voir que c'est la commande pour créer un cube où c'est le dernier que nous avons fait. Vous pouvez copier ceci et vous pouvez le placer ici. Et en appuyant sur Entrée, vous venez de créer le cube. Vous pouvez voir, voir je viens de les enlever afin que vous puissiez voir cela avec plus visuellement. Alors disons que vous le faites, boum, cliquez sur vous apparaît. Et c'est juste un moyen de tester vos commandes très rapidement exécuter des lignes simples ou comme un bloc de code interactivement dans votre scène pour vous assurer que cela fonctionne. Disons que je veux essayer de créer une scène ou comme une file d'attente, ce qui est un peu plus grand, taille 20, ok, c'est comme ça que vous faites. Et j'y suis allé, vous avez votre ligne. Vous pouvez simplement le déplacer vers le panneau suivant parlera, qui est l'éditeur de texte réel.
6. Aperçu de l'interface : Éditeur de texte: Donc, vous pouvez voir ici qui prend l'éditeur, désolé, qui est où vous allez changer vos commandes. Donc, c'est essentiellement là que vous allez écrire votre programme ou script à ceci dans votre sortie finale. La principale chose dont vous devez vous souvenir à ce sujet est la sortie comme le fait cet éditeur de texte, qui est où vous me laissez écrire votre script, est que vous toujours,
toujours, devez toujours importer soit PY. Et peut-être pourquoi vous avez remarqué est le préfixe de toutes les commandes que vous voyez. Donc, tout ce que fait le mélangeur est piloté par ce paquet BPI. Et c'est ainsi que nous sommes importants dans notre scénario. Donc c'est quelque chose qui est un Pythonique. Vous incluez simplement une bibliothèque de commandes et de code en entrant pour qu'il soit PY. Et cela vous permet d'accéder à tous ces éléments, toutes ces commandes et à cette fenêtre. Peut-être qu'une chose de plus et nous voulons nous assurer cet éditeur de texte est que vous créez réellement un peu de texte. Donc, quand vous l'ouvrez au début, il ressemblera à ceci et vous ne pouvez pas vraiment taper quoi que ce soit ici, même si je clique, vous ne pouvez pas taper. Je dois en fait créer un nouveau bloc de données, nouveau bloc de données de texte, en
cliquant simplement sur le nouveau, comme l'icône plus, le bouton Nouveau ici. Donc, cela va créer un fichier pour vous. Kinda maladies appelées Texas est uniquement stocké en interne dans un mélangeur. Donc je peux juste écrire Important Big UI ici avec vous. Ne peut jamais oublier, peut sauver cela. Mais ce script est en fait un scénario narratif, un morceau de texte, et nous allons peut-être le faire
un peu, un peu plus avec cela ici aussi. Laisse-moi
te montrer comment je peux construire ça. Donc maintenant je dois féliciter pour avoir créé un cube et ici, donc si je devais exécuter ce script, juste se débarrasser de tout pour que nous puissions vraiment voir ce qui se passe ici. Puis-je exécuter le script en cliquant sur ce bouton ? Sur la droite sont juste en appuyant sur tout p comme vous pouvez le voir, qui est un raccourci. Laisse-moi faire ça. Qui exécutera le script, qui va juste exécuter sa ligne de signal, ce qui sera essentiellement le même que de faire ceci ici. Mais le, le principal avantage de l'utilisation de cette fenêtre ici que nous pouvons effectivement chaîner des commandes. Donc, disons que nous voulons le créer et tout le monde et le déplacer. Nous voulons donc aussi le faire. Tu peux juste coller ça là-dedans. Et maintenant, nous avons deux commandes dans la fenêtre unique, dans un seul fichier texte. Et je veux exécuter ça. Nous allons créer une file d'attente, mais ensuite nous la déplacerons. Donc maintenant, nous pouvons voir qu'il y a un cube. Ils sont à l'école, mais encore une fois, la dette de l'espace. Donc, ceci où vous pouvez simplement continuer à ajouter des commandes, en ajoutant des choses à votre script. Si je devais me débarrasser de ces, exécuté ceci, Je viens de créer un cube, Déplacer,
c' est un moulage et tout à la fois. Mais maintenant, disons que vous voulez essayer de tourner pour voir, ok, donc c'est la commande pour tourner. Maintenant tu sais, tu peux juste le mettre, le remettre ici. Et disons que vous voulez le tester en premier, vous pouvez l'exécuter ici d'abord. Et puis si je fais pivoter le cube actuel sans avoir à passer par tout cela, ces commandes à chaque fois. Donc, je pourrais l'affronter ici, puis l'exécuter et voir si ça marche. Tu le sais bien parce que maintenant je savais que je le ferai. Mais peut-être que tu ne le fais pas. Peut-être que vous avez comme un script entier ou comme tout un tas de choses qui se passent aussi, en plus de créer la file d'attente et de passer à la rotation. Je n'ai pas toujours voulu faire tout le processus ou vous
voulez juste tester quelques commandes et l'isolement. Tu peux juste faire ça. Ici. Vous pouvez même affecter des variables. Vous pouvez stocker vos données, toutes sortes de choses. Vous pouvez simplement tout faire ici une fois que vous savez ce qui fonctionne et le transfère dans le texte réel, dans le script réel. Et puis de cette façon, vous construisez votre, votre script, votre code, votre programme, quoi que vous vouliez l'appeler.
7. Aperçu de l'interface : Console système: Une dernière fenêtre que je veux mentionner est la console système. Donc, nous avons un dépeint une console interactive ici bas. Vous pouvez voir la console Python. Il y a une autre fenêtre qui se cache. Donc il n'y a pas de vrais paquets ou ce n'est pas le cas. Et ici, vous seule console que nous avons ici est une console Python. Si on devait aller à Window. Et puis ici, vous pouvez voir la console double système. Et c'est essentiellement la console ou déterminable dans laquelle ce mélangeur est actuellement en cours d'exécution. Donc, si je devais sortir quelque chose sur la console en
utilisant la fonction d'impression qui est intégrée dans le mélangeur. Donc, je pourrais dire imprimer, bonjour monde, qui est très cliché pression à son mot anglais approprié, mais vous avez probablement vu cela avant afin que vous puissiez imprimer comment le monde, et en cours d'exécution cette année, vous verrez réellement rien ne s'est passé. Je vais le faire à nouveau pour te montrer. Il en va de même pour les descripteurs en cours d'exécution, mais rien ne se passe même si je fais quelque chose. Et si tu devais apprendre ou lire sur le mélangeur, tu verrais que j'ai des vitamines ou tu verrais que c'est en fait sortir des trucs sur la console où tu vois ici dans la console, rien n'est sorti, non ? Et si vous deviez regarder la console système, vous verrez qu'il obtient réellement la sortie ici. Donc D côte à côte pendant une seconde. Disons que je vais juste autre chose. Sinon, ce qui n'a pas vraiment d'importance. Vous pouvez voir que tout est mis ici. Et c'est très important à remarquer car chaque fois que vous mettez quelque chose sur la console, vous allez devoir regarder dans la console système. Donc vous pouvez lancer toute cette offre sur. Je n'ai vraiment pas une chose que tu vas faire, je vais quitter Blender. J' ai créé une nouvelle fenêtre de console. Désolé, c'est sur l'écran pour que je viens de courir mélange là à partir d'ici. Donc maintenant cela fonctionne pour moi parce que j'ai mélangeur dans mes variables d'environnement. Vous pouvez également simplement obtenir votre chemin de fichier blender. Alors je vais vous montrer rapidement comment vous y rendre. Habituellement, il devrait être dans vos fichiers de programme de lecteur C, mais ensuite leur fondation. Et quelle que soit la version que vous avez installée ici, vous auriez mélangeur point EXE. C' est donc le chemin qui y mène. C' est juste éditer ma variable d'environnements, mais vous n'avez pas à traverser tous ces problèmes. Vous pouvez également simplement faire glisser ce fichier de sortie dans votre terminal. Ça ressemblera à ça. Il y a deux guillemets parce que les espaces d'air dans le chemin. Alors assure-toi que tu en as. Et puis juste appuyer sur Entrée lancera réellement blend là aussi. Et de cette façon ou console système est ce gars ici en fait pas lié à,
pour se fondre là du tout. Je veux dire, c'est sa propre console, qui est beaucoup plus facile à manipuler. Alors disons que je veux imprimer à nouveau Hello world. Assurez-vous que la syntaxe est correcte. Exécutez ceci. Et nous verrons dans notre coutume, je veux dire, dans notre propre console, nous avons imprimé avec bonjour monde. Et c'est particulièrement pratique lorsque, disons que le mélangeur se bloque ou quelque chose comme ça. Donc, vous exécutez votre script et au milieu de descript, blender écrase, votre terminal serait fermé aussi parce qu'un terminal est lié à Blender, le terminal fonctionne effectivement à l'intérieur de Blender. Lorsque vous utilisez celui par défaut où vous venez, vous lancez simplement blender. Mais un lorsque vous lancez blender from_id terminal, prêteur s'exécute à l'intérieur de ce terminal et il rend les plantages. Ou si je le ferme, le terminal existe toujours. Donc, c'est vraiment très utile. Dans certains cas, quand blender question, il est parfois passer à travers juste que je l'exécute à travers votre propre terminal de carrière et puis juste pour vous assurer que vous pouvez réellement voir ce que les impressions ou les instructions de débogage sont avant qu'il ne s'écrase.
8. Créer des objets avec Code: Donc la première chose qu'on va faire à nouveau, vient de se débarrasser de ce cube. Je sais que c'est un peu pour que la communauté supprime le cube par défaut. Eh bien, ça va juste l'ajouter à nouveau pour voir ce qu'il faut pour l'ajouter. Il suffit de copier comme on l'a fait avant. Créatif nouveau manuel, script ou autre,
importe VP comme parce que c'est notre étape nécessaire que nous ne pouvons jamais oublier. Et puis la commande r basée va cliquer sur Enregistrer comme vu ici, peu importe. Donc maintenant essentiellement, nous avons déjà écrit le script. Donc, nous avons écrit un nœud de script, je vais créer un cube. Donc, si vous voyez si je l'exécute en appuyant sur tous vos, en gravant les scripts et le droit, de sorte que l'outliner, vous pouvez voir le cube obtient des modifications à chaque fois que j'exécute le script. Donc, tu sais, c'est quelque chose, d'accord. Mais rendons ça un peu plus intéressant. Donc ce qu'on veut faire, c'est qu'on leur fasse lire un, une position aléatoire. Donc on veut juste, je veux dire, il y a plusieurs façons de le faire. Bien sûr, il y a toujours plusieurs façons de faire quoi que ce soit avec le script ou la programmation ou, et le mixeur, même parfois en général. Ce qu'on pourrait faire, c'est créer un cube et ensuite le traduire. Alors bougez-le. C' est une façon de le faire avec une autre. Si vous regardez de près la commande cube add, peut-être l'amener à bit, nous pouvons voir que vous pouvez réellement spécifier la taille et l'emplacement. Lorsque vous créez le cube. C' est la même chose que si pour créer un QC ici, peut réellement affecter, je veux dire, vous pouvez réellement changer ces valeurs ici aussi. Rends-le plus grand. Et vous voyez ici nos mises à jour de commentaires. Donc, si je devais copier cela et le mettre à côté, vous pouvez voir que la taille peut être modifiée en changeant cette valeur. Et notre emplacement peut être changé en changeant ces valeurs. Vous pouvez donc voir ce sont les coordonnées x, y et z. Donc si je devais me débarrasser de tout à nouveau et me débarrasser de ce gars. Alors disons que je le veux, je veux créer un cube. Encore une fois, chaque fois que vous voulez modifier ou faire quoi que ce soit dans cette fenêtre, vous devez vous assurer que votre curseur est là. Donc si je suis mon curseur est là et que je fais du retour arrière, ça ne fera rien. Vendredi, qu'est-ce qu'il y a là ? Je suis expatriés, ils sont égaux. Donc c'est un, quelque chose de quelque tige aussi, vous devez vous habituer à. Donc si je devais exécuter ceci, maintenant, faites-le, vous avez un cube de taille 3.9 à o ici. Mais c'est en fait un normalisé, mais le, en fait, si vous mesurez
cela, cela devrait être 3.92 et l'emplacement est 9.39 sur l'axe des x, que vous pouvez voir et voir ici aussi. Donc, de cette façon, nous pouvons vraiment facilement. Modifiez notre QQ lorsque nous le créons. Donc ce que nous voulons faire est en fait au lieu de verrouiller cet emplacement à une certaine valeur, que ce soit 0 ou neuf ou autre, nous voulons que cela soit randomisé. Donc, afin de randomiser, cela évite la bibliothèque aléatoire. Ceci est un paquet tout comme BPI.com avec Blender, est livré avec Python en général. Et cela nous permet de générer des nombres aléatoires. Alors peut-être que je peux vous montrer en imprimant une fonction uniforme. Si je devais imprimer ça. Je veux dire, exécuter ça ne va pas vous montrer quoi que ce soit. Vous devez en fait ouvrir votre console, qui va probablement vouloir faire comme fenêtre, console système pare-feu. Et la fenêtre de la console devrait apparaître. Faire Starlight à nouveau est parti et puis le ramène. D' accord, donc j'ai juste imprimé un nombre aléatoire entre 01. Si je devais recommencer, je l'imprimerai. Fais-le encore. Donc, vous pouvez voir que c'est juste n'importe quel nombre aléatoire entre 01 pourrait également tester la cellule en l'exécutant dans la console interactive. En fait, c'est probablement une meilleure façon de le faire. faut le réimporter, bien sûr. Encore une fois, ceux-ci, ces deux fenêtres, ils ne sont pas liés les uns aux autres du tout. Ils ne se parlent pas. Toutes les variables que vous avez ici qui disent que je crée une variable, assigne à 250 si je devais imprimer 50, et ici j'imprime VAR, par exemple. Est-ce que cela va dire que le nom VAR n'est pas défini ? Si je devais imprimer la barre ici, il imprimerait 50 parce que dans ce bit, le nez tandis que var est et ici il ne le fait pas. Donc c'est quelque chose à garder à l'esprit. Mais c'est le semé un tas de fois en appuyant sur la flèche vers le haut sur notre, sur nos flèches. Dans la flèche vers le haut, vous pouvez retirer les commandes récentes. Vous pouvez simplement parcourir votre histoire en appuyant sur le haut et le bas. Donc tu peux continuer à exécuter ce type. Vous pouvez voir qu'il retournera toujours une valeur comprise entre 01. Mais si je devais dire 010, cela me donnera une valeur entre 010 est très utile pour moins 1010. Je pense donc que ce point est clair. Donc, nous pouvons utiliser cette valeur aléatoire et dans notre fonction d'ajout de cube. Donc, disons que c'est tant qu'on divise cette ligne par ligne, on ne rencontre pas vraiment ce type non plus. Si vous deviez y aller, nous examinerons les références. Peut-être qu'on va faire ça ensemble. Donc il y avait un énorme Whew, désolé, j'ai dit ça. Un énorme mélangeur. Site Web de l'API Python Donc ce gars ici va probablement vouloir mettre ce gars en signet. Cela contient toutes les informations sur BPI. Donc, si je devais chercher notre fonction ici, pour la copier et la coller ici. Et la recherche. Vous verrez la documentation réelle sur cette fonction. Ainsi, vous pouvez voir tous les paramètres que nous avons vu avant, redimensionner, entrer en mode d'édition, emplacement, Rotation. Aucune de ces choses n'est disponible dans cette fonction. Et puis vous pouvez voir la valeur par défaut. Donc, ces valeurs par défaut triées. Donc si je ne l'étais pas, si je ne voulais pas définir la taille, ça prendra juste deux. Et si je ne voulais pas spécifier, et en mode Edition, il ira à false. Et c'est essentiellement simplement répéter la valeur par défaut pour que je puisse le reprendre. Mais c'est peut-être déjà un peu trop. Alors peut-être que nous allons probablement revenir dans les documentations et comment le lire correctement. Je sais juste que cela existe et
tout ce qui a à voir avec être PY ou tout autre module de mixage qui est répertorié ici. Comme expliqué sur ce site, sur l'API, il n'y a qu'une chose que vous devez remarquer est la version. Vous allez toujours vouloir, vouloir utiliser la dernière version ou encore mieux juste à la version que vous utilisez un mélangeur. J' utilise donc Blender version 2.81, mais j'utilise les docs de l'API de 2.83. Et si quelque chose change entre 2.832.81, je vais en fait avoir à la version plus récente pendant que j'utilise l'ancienne version. Mais les différences entre 2.812.83 ou si petites que cela n'a pas vraiment d'importance. Je veux dire, au moins d'un point de vue de script, mais il est généralement
préférable d'utiliser la dernière version toujours. Donc, à part ça, revenons ici. Donc, si nous devions exécuter ça, ça devrait marcher. Nous sommes juste en train de créer des cubes sur l'emplacement 00 pour la taille 3.92. Donc, si je devais mettre ceci, alors vous pouvez voir comment cela affecte le QC est créé. D' accord ? Mais le fait est que nous ne voulons pas toujours utiliser la taille 00 ou 0. Nous pouvons le verrouiller lorsque vous vous inclinez vers la valeur par défaut. On peut même l'oublier si tu en as l'habitude, mais je le laisse. Mais c'est pourquoi nous voulons, nous voulons être, nous voulons changer cet endroit. Donc, prenons à nouveau notre valeur aléatoire. Appelons donc cette valeur aléatoire et attribuons notre valeur aléatoire à cette variable. Donc, c'est essentiellement comment utiliser des variables qui pourraient être un peu abstraites, concepts
abstraits variables, mais c'est vraiment simple. Il s'agit essentiellement d'assigner une valeur. Cela peut être n'importe quel type à juste une représentation de mots. C' est donc généralement une bonne pratique de lui donner un nom significatif. Donc, c'est essentiellement, Ouais, c'est une valeur aléatoire, vous pourriez dire entre moins 1010 ou quoi que ce soit, mais des valeurs aléatoires plus que suffisant. C' est donc explicatif et c'est une bonne pratique. Alors, utilisons-le. Mettons ceci au lieu de R 0. Donc maintenant, au lieu d'une référence 0 à sont générés aléatoirement nombre. Donc ça. Bit de code qui renvoient une valeur comprise entre 1010 négatif. Donc, disons qu'il retourne 9.93. La valeur aléatoire sera égale à 3,9. Donc, si je devais dire que mon emplacement est égal à 3.93.93.9, ou toute valeur entre dix négatifs. Et puis voyez si je lance ceci, vous verrez, il s'avère que la valeur aléatoire qui a été générée avec cette fonction était négative 3.56. Et puis notre q a été créé à cet endroit. Ou pour le refaire. Et nu sur n valeur sera prise et un nouveau cube sera créé à cet emplacement. On l'a fait comme un tas de fois. On verra recréer ces cubes, mais ils sont tous dans cette ligne droite. Donc, ce n'est pas tout ce que vous voulez écrire. C' est qu'on veut qu'ils soient partout. Big R cubes, juste un tas de cubes à l'intérieur. Mais parce que nous prenons la même valeur aléatoire pour les trois accès, va toujours les créer dans cette ligne tridimensionnelle. Ce qu'on veut faire, c'est créer trois nombres individuels avec trois valeurs aléatoires, un pour x, un pour y, et un pour Zed. Alors faisons ça. Nous pouvons dupliquer n'importe quelle ligne que notre curseur a augmenté en appuyant sur le contrôle D. Donc je l'ai fait deux fois. Et puis je vais renommer la valeur parce que vous ne pouvez en fait jamais avoir de noms de variables en double. Eh bien, en Python, vous pouvez, mais il va juste remplacer le précédent. Donc je vais l'assigner à travers, disons un. Ensuite, il sera écrasé à ce que celui-ci retourne, et puis il sera écrasé à nouveau. Donc, c'est essentiellement toujours le même moment. Je veux dire la même valeur juste pour manger fois. Si je devais appeler cette valeur aléatoire X, Y ou Z. et changer ces gars en conséquence. qui est important parce que la valeur aléatoire à ce stade qui n'existe plus. C' est juste la valeur aléatoire X, Y et Z à la valeur aléatoire va maintenant être créé. Donc ça ne va pas savoir ce que c'est. Donc si je devais diriger ce gars, nous avons un cube à un endroit vraiment aléatoire dans notre dendrite, alors la cellule de grille serait juste spamming. Je serai là pour te montrer un peu plus de cubes. Donc, cette ligne est ce que nous avions avant. Et maintenant, avec nos nombres aléatoires individuels, nous avons en fait un bon résultat. Alors débarrassons-nous de cette odeur vue. Peut-être que vous l'exécutez encore une fois. Donc vous pouvez voir à quoi ça ressemble. Très bien, donc c'est un script cube généré au hasard, mais encore une fois, nous n'avons toujours pas de 100 cubes ou 500 groupes, ce qui est là où le script est si puissant que nous devons toujours appuyer sur cette chose encore et encore et encore. Donc, pour contourner les tags, je vais créer une boucle for. Donc, pour les gens qui sont nouveaux dans la programmation, une boucle for est essentiellement une structure de programmation qui exécutera certaines, comme certaines lignes de code un certain temps. Donc, disons que je crée une boucle for ici pour l'écrire. Alors je vais me boucler. Je veux dire, je vais exécuter ce morceau de code 100 fois. C' est essentiellement le concept d'une boucle for. Donc, quels que soient les bits de code qui sont à l'intérieur de la boucle for seront exécutés x quantité de fois. Donc, disons que la quantité de cubes est égale à 100. Et puis je peux juste échanger ça. Donc, je vais aller plus de 100 fois et je vais juste imprimer i. Je suis fondamentalement cette variable changeante qui représentera l'itération actuelle. Donc, nous allons itérer à un 100 fois, et puis je vais effectivement garder une trace de quelle durée nous sommes actuellement sur. C' est juste à des fins de démonstration. Donc, je vais juste m'assurer que la discorde est ignorée pour l'instant. Et je vais, je suis désolé, je vais faire ça. Je retourne en fait une erreur. Alors regardons ce que ça dit. Ok, je dois mettre le pour i à portée. Je suis désolé. Donc, si je lance ceci, nous verrons que cette variable est i change pour chaque itération. Donc, il commence par être 0, puis il incrémente juste jusqu'à ce qu'il soit 99. Donc, à ce point, nous avons exécuté ce code 100 fois. Donc, si je devais réellement écrire r script cube et entendre, exécuter ceci, nous aurons un 100 cubes juste comme ça hors de la boîte. Donc, si je devais les enlever tous, exécutez-le à nouveau. Un 100 cubes, tous avec des emplacements aléatoires dans cette grille de dix par dix sur les trois x. Donc, en utilisant ceci pour la boucle, vous pouvez créer beaucoup de géométrie à la fois. Donc, tu trouves juste comment le faire une fois. Et maintenant vous êtes juste un wrapper que cette fin est structure de
quatre boucles et tout ce qui sera indenté, reprenez-le. C'est ça, c'est un. Donc un onglet. Tout à ce niveau d'indentation sera exécuté 100 fois ou ce qu'il voulait fois que vous spécifiez ici. Donc, si je voulais grande 50 cubes, supprimez tout. Ou dans ce que nous aurons 50 cubes. Donc vous pouvez voir ici.
9. Nettoyer une scène à l'aide de Code: Une autre chose que je voudrais mentionner est que chaque fois que nous exécutons ce script, que r cube z une pile sur l'autre. Donc, ce que nous devrions faire est juste de sélectionner tout ce qui a été supprimé autour d'elle. Ok, eh bien c'est bon. Créons 50 et ouvrons. Et avec ce script, cela n'a pas d'importance, mais parfois vous ne voulez pas toujours, quand vous êtes comme créer une géométrie procédurale avec script ou grader autre chose. Vous voulez toujours avoir à tout effacer et,
vous savez, c'est un travail fastidieux que vous essayez d'éviter avec les scripts. Donc, il est un peu devenu leur intuitif si vous devez continuellement faire un travail fastidieux. Donc je vais vous montrer rapidement comment ne pas avoir à faire ça. Donc nous permettre, allons vraiment entrer ici et sont console
interactive parce qu'on va tester des trucs, essayer de le découvrir. La première chose que je vais vous montrer, c'est comment saisir tous les objets de votre scène. Donc, il suffit d'aller Man s'appelle BPO I dot-dot objets. Donc, vous pouvez voir qu'il y a actuellement 50 objets dans la scène, mais juste normal parce que j'ai créé 250 cubes et j'ai tout supprimé avant. Disons que je crée un 100. Maintenant, exécutez ça. Appuyez sur la flèche vers le haut, peut exécuter les commandes précédentes dans la console R ou la météo de la console interactive. Et maintenant, nous pouvons voir qu'il y avait un 150 objets, sorte de 50 qui étaient là avant et un 100 supplémentaire parce que j'utilise accordé plus. Mais pour l'essentiel, nous voulons juste avoir une centaine à ce stade. Donc, ce qu'on pourrait faire, c'est faire une liste. Donc maintenant, nous avons une liste de tous ces objets. On peut juste les enlever tous. Et on va le faire avec la boucle for à nouveau. Alors, qu'est-ce qu'on a fait notre boucle pour de cette façon ? Nous pourrions en fait spécifier combien de fois nous voulons faire une boucle. On sait que je suis allé à une centaine et tu sais, chaque fois que tu le fais, tu vis 100 cubes. Mais à ce stade, vous savez, vous ne savez pas combien d'objets nous allons être dans la scène. Tu pourrais dire, eh bien, ouais, je sais encore 100, tu sais, carje sais encore 100, tu sais,
enlever tout, mais si tu veux le mettre à 50, ça ne marchera plus. Ce n'est vraiment pas dynamique ce poids. Donc, fondamentalement, ce que nous voulons faire est que nous voulons itérer sur beaucoup d'objets il y a, mais sans savoir combien d'objets il y a d'abord. Donc, je ne veux pas dire pour moi dans la gamme de 150, parce qu'il n'y aura pas toujours 150 objets. Mais ce que nous pourrions faire est que nous pouvons dire pour l'objet actuel BY points objets de données. Et nous allons juste pour l'instant imprime juste l'objet actuel. Donc, ce que nous faisons ici me fait défiler tout le chemin haut pour l'objet actuel dans les objets points-points APY. Donc, pour chaque objet dans cette collection d'objets ou dans ce encore, et cette collection d'objets. Montre-moi ton principal. Donc comme si j'étais notre variable qui garderait une trace de notre itération actuelle. Cette variable ici donne frappe sur notre article actuel dans cette collection. Donc, c'est fondamentalement un tableau ou une liste pour vous programmeurs là-bas. Et c'est essentiellement tous les éléments de cette liste. Donc, si vous avez une liste d'objets, il
s'agit de l'élément en cours, l'objet en cours sur lequel vous êtes en train d'itérer. Donc, quel que soit l'objet que
c'est, il fait partie de cette collection. Donc en utilisant ceci, vous pouvez voir que j'ai tous ces cubes. Comme si je pouvais attraper tous les cubes. Encore une fois, pour mon objet et cet objet, donc pour chaque objet de la collection d'objets, je veux l'enlever essentiellement, non ? Ils veulent se débarrasser de toutes les théories d'objets. Donc, pour cela, nous pouvons faire PPA dot-dot et objet dot remove. Et puis vous voulez spécifier l'objet qu'il doit être supprimé, qui est l'objet actuel. Et juste comme ça, tout a disparu. Tous les objets de cette scène ont disparu. Maintenant, cela va également supprimer les caméras et les lumières parce qu'ils sont aussi des objets, n'est-ce pas ? Donc si je refaisais ça, la caméra disparaîtra. Donc, vous devez garder cela à l'esprit pour tout enlever. Vous pouvez également lister les maillages, les matériaux, les images, à peu près tout. Donc, si je devais aller aux données de points BPI et puis appuyer sur l'espace de contrôle, ce qui est un truc vraiment cool. Il vous montrera toutes les choses qui se trouvent dans ces données. Ainsi, vous pouvez avoir de la texture, des sons, écrans, des mailles, des matériaux, de la lumière. Donc, vous arrivez à juste si fondamentalement tout ce qui a. Mais nous allons juste faire des objets pour l'instant. Donc, le code que nous avons écrit ici fonctionne réellement. C' est dynamique. Cela fonctionnera pour n'importe quelle quantité d'objets. Donc, nous allons en fait maintenant inclus dans notre script. Alors, comment devrions-nous faire ça ? On peut juste le faire avant. Donc, comme on l'a fait. Et aligné correctement, boom, maintenant il est en place. Donc, chaque script sera exécuté d'une ligne à l'autre, juste la dernière ligne. Donc, en bas un à travers le maïs renoncer logiquement. Il va donc venir ici, regarder tous les objets de la scène, les
supprimer tous, puis en créer 100 nouveaux. Si je devais faire cela, j'aurais un 100 objets est le même que ce serait avant. Si je le fais maintenant, je veux que vous arriviez à un 100 objets différents. Si je regardais ici très vite, juste imprimer tous nos objets, ça verrait que c'est toujours une liste de 100. Et je peux exécuter ce 2020 fois ou cependant plusieurs fois vous serez toujours sous elle. Ou pour changer ça à 50. Maintenant, j'en ai 50 et toutes les centaines seront effacées. Pirates pour 500 à nouveau. Tout d'abord, il supprimera les 50, puis il créera 500 nouveaux. Mais vous n'avez pas besoin de spécifier combien d'objets il y
aura au début parce que vous ne pouvez jamais le savoir. Comme maintenant, je ne remarque pas 500 qui peut être sournois et en créer un. Et je pourrais créer un cercle, nous savons que c'est juste. Mais si je devais l'exécuter à nouveau et c'est mon ami est un peu trop. Et passer aux cercles disparus aussi parce que tout va toujours être parti et remplacé par autour d'elle.
10. Des idées à construire en dessus de ce projet: D' accord, donc nous sommes allés assez loin, sont déjà dans ce premier chapitre du cours. Mais j'aimerais que vous
approfondiez votre compréhension de ce que nous faisons ici, c'est essayer quelque chose vous-même. Donc, il y a généralement une meilleure pratique pour juste, vous savez,
aller, sortir seul et essayer des choses différentes
peut-être pendant que vous créez inspiré du mépris ou vous les avez,
vous savez, juste de l'inspiration pour faire autre chose. Et je voudrais que nous procédions maintenant voir si vous pouvez ajouter à cela. Une chose que je pourrais suggérer est de trouver comment randomiser leur rotation aussi. Donc, comme si maintenant est juste des endroits aléatoires et vous pouvez voir si vous placez notre place, votre appareil photo quelque part ici. Personne n'a l'air intéressant. Mais afin de prendre cela au niveau suivant, vous pouvez peut-être randomisé plus d'étoiles. Donc ça pourrait être une rotation, ça pourrait être une échelle. Ça pourrait même être ouais,
ça pourrait être quelque chose de vraiment juste que je ne vais pas dire trop parce que je ne veux pas limiter ton imagination. Donc juste passer par ce que vous ajouteriez à cela et ensuite l'essayer, chercher des choses sur la documentation. Donc une fois de plus, rapidement branché ce lien à l'IE. Donc mélangeur, API Python intensifié et, et Google. Et tu auras le plus récent. Assurez-vous que vous êtes sur les plus récents est en fait 2.90 maintenant, puisque je pense que depuis il ya quelques jours où le quatrième de Septembre en ce moment. Donc, je ne vais pas faire le changement du cours MIT. Peut-être que je vais, je vais juste regarder dans le journal des modifications et si quelque chose change, je vous tiendrai au courant. Mais pour l'instant, l'API est identique à 0.812.832.9 pour toutes les choses que nous couvrons dans ce cours vont tous fonctionner. Tout va être pareil, alors ne vous inquiétez pas pour ça. Mais oui, ici vous pouvez juste un peu de recherche lui-même peut se rendre compte rapidement, copier ce gars ici, voir ce qu'on peut faire avec ça. Donc c'est moi qui vais juste te montrer comment tu peux prendre ça. Donc on peut voir qu'il y a une taille qui pourrait être randomisée. Donc, c'est juste réglé à deux. Ici, il est aussi réglé à deux. Donc, ce n'est qu'un nombre statique, donc vous pouvez le randomiser de la même façon que nous le faisons ici. Ils peuvent choisir vos limites. Et de cette façon, vous pouvez vraiment ajouter plus de dimensions à cet emplacement, votre rotation ou votre échelle à nouveau, donc cela est réglé sur 0, qui est un peu bizarre car généralement lorsque vous mettez à l'échelle à 0, vous le faites simplement infiniment petit. Vous devez simplement mettre à l'échelle par un pour conserver les mêmes dimensions. C' est juste un multiplicateur. Et donc c'est un peu déroutant. Donc je ne m'inquiéterais pas pour celui-ci si vous voulez randomiser la taille, je le ferais juste par ici. Cela fait, c'est, c'est une mise à l'échelle uniforme. Donc, c'est juste une mise à l'échelle de chaque X est égale. Vous obtenez peut-être quelque chose que vous pourriez faire est de l'échelonner et dire quelque chose et puis de le sceller. Et pourquoi un peu ? Tuons-les, un x, autre chose. Donc vous obtenez vraiment ces formes rectangulaires. Donc je suis, si on utilise le paramètre size, tu auras toujours un cube. Donc c'est quelque chose à garder à l'esprit. Vous pouvez toujours regarder ici et voir ce qu'on a fait. Un peu faire des trucs intéressants et ensuite essayé de le script. Amuse-toi juste un peu et essaye juste des trucs sur toi. C' est vraiment, vraiment va être la différence entre un, vous regardez juste le cours et vous comprenez réellement ce dont nous parlons, en appliquant effectivement ce dont nous parlons. C' est toujours bon d'essayer de créer vos propres trucs. Et si vous le faites, assurez-vous de l'envoyer par courriel ou via mes réseaux sociaux, il y aura une description du cours. Je suis toujours vraiment intéressé de voir comment vous, les gars, euh, ou vous créez un pied avec ce que j'ai essayé d'enseigner, sorte que ce serait vraiment cool de voir comment vous les gars d'avoir votre propre regard sur ce qu'il a créé et comment vous les gars pense qu'il peut être amélioré.
11. Randomization: contrôlée : Introduction: Et pour amener le procéduralisme et la randomisation au niveau supérieur, nous devons réfléchir à quand et où l'utiliser. Parfois, il est généralement préférable de randomiser quelque chose parce qu'en tant qu'humains, nous essayons toujours de trouver des modèles reconnaissables. Et c'est comme ça que nous, les artistes, le fonctionnement de notre cerveau. Nous essayons toujours de reconnaître les modèles. Nous essayons toujours de créer des modèles. Et même lorsque vous essayez de créer un 100, jouant à travers, toujours en se concentrant sur deux ou trois. Mais au fil du temps, vous devenez reconnaissable et c'est devenu répétitif. Et c'est juste des problèmes qu'une machine n'a pas à traiter, qui sont purement mathématiques. Je veux dire, si vous demandez à une machine un numéro entre 01, ça ne pense pas, ça vous donne juste le numéro et ça passe juste. Donc, si vous le demandez 100 fois, vous obtiendrez 100 valeurs aléatoires. Quand vous demandez à un humain, il y aura toujours, il y aura toujours une sorte de modèle à l'intérieur. Et c'est exactement ce que nous devons essayer d'éviter. Et c'est exactement ce que Python et mélangeur, et je veux dire juste procéduralisme et randomisation et généralistes. Tellement bien. Il n'est pas biaisé parce qu'il n'est pas prévisible, qu'il n'est pas reconnaissable. Et quand vous voyez vraiment cette valeur. Et puis vous pouvez vraiment le pousser au niveau supérieur.
12. L'aléatoire contrôlé (Créer une Fence: Donc c'est ce qui va faire et ce chapitre, c'est une clôture complètement randomisée. Vous pouvez voir qu'il y a un décalage dans la rotation, puis la hauteur aussi bien. Donc, cela semble esthétiquement agréable, c'est vraiment facile à faire. Donc oui, c'est ce que nous allons être la largeur. Commençons par un nouveau C peut réellement
acheter complètement aller à script comme nous sommes habitués à maintenant. Allons traîner ça un peu, sauve-le. Faites tous les éléments essentiels avant que nous puissions réellement commencer à créer un script beat
important PAR certains de ces trucs thérapeutiques. Et maintenant, nous sommes prêts. Alors commençons par mettre le moins de choses que nous avons faites dans le chapitre précédent, qui est de nettoyer la scène. Donc si nous ne nous souvenons pas complètement, je vais le répéter. Donc la chose qu'on va faire c'est qu'on va attraper tous les objets de la scène. Donc, pour les objets à être des objets DY dot-dot-dot, puis nous allons le supprimer. Donc, si j'additionne les textes, ça va juste se débarrasser de tout chaque fois qu'il y a beaucoup plus facile pendant que vous travaillez. Je veux dire, je ne dis pas que tu devrais partir. Ou vous publiez réellement ce script ou quand vous commencez à l'utiliser parce que vous êtes juste, peut-être que vous voulez créer une clôture dans la scène qui existe
déjà et que vous voulez juste ne pas vouloir vous débarrasser de tout, n'est-ce pas ? Mais pour l'instant, c'est juste vraiment fastidieux de toujours supprimer ou nous avons créé parce que je veux dire, à partir de la première itération, nous allons créer une file d'attente. Et comme vous allez être ennuyeux de toujours l'enlever. Cela étant dit, commençons par créer notre cube. Donc encore une fois, vous devriez remarquer maintenant déjà cette commande, mais même j'oublie très souvent. Mettons-le à nouveau, en créant un cube de taille deux et l'emplacement 000. Et c'est en fait déplacer ça en un. Il est un peu plus facile de travailler avec, puis entrer en mode Édition comme nous l'avons vu auparavant, il peut être supprimé. Donc, cela fonctionnera toujours. Et maintenant, nous avons juste un cube plus petit. Remarquez comment le grand a disparu, ce qui est génial. C' est juste une petite chose, mais ouais,
ça te garde saine d'esprit en tant que personne. Je pourrais vous en dire autant. D' accord. Mais cela ne ressemble pas beaucoup à blanc, n'est-ce pas. Donc, pour le faire ressembler à un vide, se réfère besoin de le déplacer vers le haut. Bien sûr, je veux dire, à l'échelle. Donc, comme Z, dire dix centimètres, ce qui est un peu beaucoup, mais je veux dire, c'est bon. Il est peut-être à l'échelle vers le bas dans le X. et ce nombre, qui est 0.25. Donc encore une fois, vous allez devoir continuer à utiliser ces, ces, ces panneaux. Mélangez-les ensemble tout le temps. C' est super utile. Donc, si nous prenons un pas en arrière et voyons ce que nous avons fait, alors nous l'avons mis à l'échelle. Et là, nous l'avons réduit de 0,25 et le x. donc c'est comme ça que nous pouvons réellement créer cela. Alors copions ici. Et c'est proportionnel à ce que nous pouvons voir, peut-être qu'ils peuvent noter que le bâton est le PEC. Encore une fois. C' est la même commande que nous exécutons deux fois l'une après l'autre. Et puis une fois que nous exécutons 3D plus risqué que les zéros et ceux plus risqués que le x. donc nous pouvons probablement combiner ces deux. Alors débarrassons-nous de celui-là. Voyons si ça a vraiment fonctionné. Donc maintenant, vous créez juste une file d'attente de taille 1 et ensuite nous la mettons à l'échelle
à placer à moins que peut-être la déplacer de cinq, qui sera la moitié de tout ce que c'est, quel que soit l'élément. Alors c'est ça. Ensuite, nous avons essentiellement créé un blanc. Ça a l'air bien. La balance est complètement fausse. On ne va pas s'inquiéter à ce sujet. Mais juste comme une note d'accompagnement. Mais oui, ok, donc c'est fondamentalement la recette de la façon de créer un blanc. Alors peut-être qu'on devrait regrouper ça en fonction. Je vais passer en revue. C' est assez rapide parce qu'il y a juste un regroupement de code. Pour l'instant. Vous n'avez rien à savoir de plus que le district étant le regroupement de code. Donc, disons Create Blank et est mis tous ces trucs à l'intérieur. Donc si nous le faisons maintenant, en fait, rien ne se passera. Mais si nous appelons notre fonction, alors elle exécutera effectivement ce code. Donc la discorde n'est exécutée que lorsque nous appelons cette fonction, ce qui est génial. Alors passons à la première étape. Ça a déjà l'air bien. Essayons maintenant de garder, disons dix blancs. Encore une fois, comme nous l'avons fait avec les cubes et le premier chapitre, nous allons faire une boucle sur une certaine quantité de valeurs. Donc disons pour moi dans la gamme d'entre eux. Vous voulez créer un vide. Pour l'instant, nous devrions avoir dix liens. Bien sûr, nous ne voulons pas qu'ils soient tous au même endroit, donc nous voulons qu'ils soient compensés. Et pourquoi ce montant ? Bon, donc nous savons que la largeur réelle, voyons si c'est une largeur. Peu importe ce qu'il est sur l'axe des y va être un. Parce que nous avons créé ce cube de taille 1. Et on ne l'a pas réduit. Et y, donc y est toujours comme je viens de mettre à l'échelle par un facteur de un. Donc, c'est essentiellement de multiplier un par un, ce qui est toujours un. Donc, nous savons que c'est un. Donc, si nous créons un vide et puis le déplacons par un, ou disons, identifions réellement un écart. Donc, disons que nous voulons que nous obtenions le 0.1. juste 10% sur l'épaisseur. Donc disons un écart plus. Donc, nous voulons toujours en faire une parce que c'est juste le montant par rapport à la précédente. Et je veux juste ajouter un peu d'espace de 0,1. Donc si nous devions faire ça,
ça n'a pas fonctionné parce que ce n'est pas vraiment le déplacer. Ce n'est pas en fait un delta y, c'est en fait un, un y réel. C'est
donc la nouvelle position y, qui n'est pas ce que nous voulons. On devrait probablement juste utiliser I, non ? Donc on peut faire i fois une. Et je veux juste graduellement à l'écart. On y va. Donc maintenant, nous avons dix blancs comme peut-être le rendre un peu plus grand d'une casquette. Je ne suis pas sûr que ce soit vous travaillez. Je ne pense pas que ce soit comme peut-être pas à travers cet écart et je multiplie cela par i. Alors pourquoi l'itération actuelle ? C' est encore pire, non ? Et c'est moi qui suis la bonne. D' accord, on y va. Maintenant, nous avons nos planches et nous avons un petit écart entre 0.1.2. C' est peut-être un peu trop grand. D' accord, donc ça n'a pas l'air trop minable, non ? Plus agréable à regarder la clôture, mais c'est un peu trop parfait. Et c'est comme ça qu'il est comme un artiste 3D à la vraiment perceptible et c'est comme des décisions parfaites outil pour illustrer tout. Donc c'est là que le hasard vient dans Suez comme un humain à nouveau, il est vraiment difficile de saisir cette phase d'arrêt et puis ce déplacer et prendre un peu
à, pour l'avoir un peu décalé. C' est ce qu'on va essayer d'éviter en ce moment. Alors commençons. Donc ce que nous voulons faire pour chaque blanc, c'est que nous voulons avoir une hauteur d'habitude. Donc l'hydrogène à chaque fois. Donc, dans notre boucle, nous allons déclarer une variable et définir notre hauteur à dix. Donc, pour l'instant, gardons en fait une variable codée en dur ou non. Je veux dire, c'est toujours une variable que c'est, c'est un nombre fixe, donc ça ne va pas changer. Et c'est en fait passer ça. Recrée sont clignotant. Alors je serré, serré. Donc cette hauteur va tenir ici. Nous voulons remplacer notre hauteur initiale. Donc, notre mise à l'échelle de zed, qui était en train de mettre en place la hauteur, puisque nous en utilisons un. Donc, ce sera maintenant toujours le même résultat, mais l'utilisation de cette variable ici nous donnera un peu plus de contrôle, surtout en la passant à travers cette fonction. Donc, si nous devions exécuter exactement la même chose, et maintenant si je veux le changer à 15, cela arrivera ici. Bien sûr, nous l'avons fait monter de cinq, puisque notre hauteur était esthétiquement fixée à dix. Mais maintenant que nous avons changé à 15, ça ne semble plus bien parce que vous utiliseriez en fait 7.5. Si je devais exécuter ça, c'est encore, ça va être aligné. Oui. Mais on n'en a pas toujours envie. Je veux dire, puisque nous voulons changer cela, nous devons aussi changer cela. Donc c'est juste la moitié de la hauteur. Donc, cela fonctionnera peu importe ce que je mets ici, ça, nous allons juste toujours l'aligner au fond. Et c'est vraiment, vraiment important. Presque jamais quand j'utilise ces chiffres magiques. Comme, même ici comme ça,
0,25. Ce n'est pas bon d'avoir ça ici. Nous devrions avoir cela comme une variable d'épaisseur. D' accord, désolé, épaisseur ici. Et bien sûr, nous devons mettre de l'épaisseur ici aussi. Donc c'est un Ils causent 0.25. et essentiellement c'est toujours le même code. Il fait exactement la même chose, mais c'est beaucoup plus lisible. C' est beaucoup plus complet. Si nous le faisons à nouveau et pourtant c'est le même résultat. Mais c'est, c'est beaucoup plus clair et puis juste à l'échelle dans le x, y. et maintenant vous savez que c'est une épaisseur. D' accord, alors mettons-le en place. Donc, la chose est cependant, nous voulons avoir la hauteur variable, cela doit être dynamique, est doit changer pour chaque blanc. Donc, encore une fois, nous allons utiliser nos fonctions aléatoires est bien, nous allons importer aléatoire. Et maintenant, au lieu de l'envoyer à dix, nous le serons, nous allons choisir une valeur comprise entre 910. Disons. Peut-être que le 911, c'est trop. Uniforme à points aléatoires. Bien sûr, c'est le, le nom réel de la fonction. Et vous pouvez voir déjà les blancs sont maintenant la hauteur de transport pourrait être un peu trop. Donc c'est comme un facteur d'un. Donc, la différence entre le min maximum est un. Donc, nous verrons un changement maximum de hauteur. Un. Est-ce que ça pourrait encore être trop. Faisons Component_2 ou quelque chose comme ça. Tu peux jouer avec ces numéros, non ? Ce sont juste l'épaisseur est finie. C' est comme une petite variable. Ok, donc c'est bien. C' est déjà quelque chose qui a déjà l'air beaucoup mieux que, qu'il ne l'était avant. Et encore une fois, vous savez, cela fait de petits pas et nous sommes juste en train de créer maintenant. Donc vous pourriez penser, vous savez, que c'est stupide, je ne pouvais pas faire cette minute. Mais disons que vous voulez avoir 100 planches, comme offensives et ils vont, Hollywood bâton ici. Et cela est particulièrement utile quand vous avez comme une scène qui a un tas de clôtures ou tout simplement ouais, quand cela devient réutilisable, vous verrez beaucoup de valeur. Et même une fois que vous êtes doué en scripting, vous pouvez écrire ça en une minute ou quelque chose comme
ça, va vraiment, très vite. Ce sont les mêmes commandes, non ? Vous pouvez les sortir ici, le Parlement un pour-boucle et BAM, voilà. Donc, cela ne prend pas longtemps, cela prend moins de temps pour écrire des scripts et pour créer des bibliothèques blanches Andra. Donc oui, juste pour donner un peu de perspective. Cool. J'ai donc des planches et je les remets à dix pour me concentrer un peu plus. Et ajoutons une autre dimension du hasard, non ? Donc ils sont tous parfaitement alignés. Celui qui les a mis en bas est maître. Bébé Austerlitz, peut-être un randomiser, il épaissit un peu. Je veux que vous ayez ceci en place avec les variables et vous suivez ceci. Cette structure est vraiment facile à ajouter à cela, n'est-ce pas ? Peut-être rendons ça un peu plus variable. Oui. Vous pouvez simplement prendre tous les aspects et juste le rendre un peu plus unique, un peu plus aléatoire
à, pour ajouter des détails plutôt que juste, je veux dire, le détail est aussi dans le script. Vous n'avez pas seulement la modélisation de
tuiles ou les cours ou tout ce qu'il peut avoir des scripts détaillés. D' accord, donc on a la hauteur, épaisseur, écoute, je vais faire la rotation. Comme nous l'avons vu dans la vidéo précédente dans la documentation, il y a un champ pour la rotation lors de la création d'un cube. Si nous regardons ici, cube, nous avons cette rotation, cette rotation valeurs ici aussi. Ainsi, vous pouvez voir dans notre méthode d'ajout de cube, chaque emplacement, il y a aussi une rotation. Et vous pouvez voir ces valeurs sont assez petites. Donc je suppose que c'est une irradiance plutôt que des degrés. Donc ça pourrait être un, je veux dire, vous devez juste garder cela à l'esprit que ce sont des rayons et pas des degrés. Donc maintenant que nous savons que cela existe, oups, nous allons en fait copier ceci. Donc, c'est ennuyeux. Rotation. Déplaçons ça et nous basons sur la fin. Maintenant encore une fois, notre rotation est fixée dans la pierre, ce qui n'est pas du tout dynamique, mais à des fins de démonstration. Et pendant que vous créez ce programme, c'est tout simplement bien de s'assurer qu'il fonctionne et de voir ce qu'il ressemble à ce n'est pas. Et il a également été beaucoup plus épais car vous êtes en fait en train de redimensionner globalement. Donc 4N type global, c'est peut-être voir si cela fonctionne mieux. Si vous faites local, cela fonctionne. Pourtant, c'est le cas. Alors maintenant, nous tournons un peu. Tous les xs, ce qui est maintenant ce qu'on veut faire, veulent tourner sur Zed, je pense, non ? Oui. Donc, on voudrait vraiment garder ces x et y non-zéro juste tourner et dire, Mettons celui-là. Assurez-vous que ça marche. Donc, vous pouvez voir qu'ils sont tous légèrement inclinés, légèrement inclinés, ils sont tout de même. Ajoutons une variable d'angle ici. Et puis mettons-le à un uniforme aléatoire,
rebaptisons du vin et ce n'est pas si mal. Donc je vais faire 0.1.1, négatif, et positif 0 contre un. Désolé pour ça. Je voulais qu'ils s'aiment. Mais encore l'épaisseur. Oui, on l'a aléatoirement là où je suppose que c'est bien. Donc, si nous regardons ici maintenant, ce n'est pas un bevy lit de lui à travers épais. Boum. On y va. Voyons à quoi ça ressemble quand on en a un peu plus. On y va. Regarde ça. Tu viens de créer une centaine, je veux dire, pour des fédéraux relativement grands. Et juste une seconde. Et c'est très, très dynamique. Je voulais porter un peu plus de hauteur. Vous pouvez simplement taper. Mais ce 3-11. Maintenant, vous avez un peu plus de variation dans les TIC. Et c'est très, très flexible juste à cause de la façon dont nous avons mis en place ça.
13. Créer une onde sine : l'ambre: D' accord, donc nous sommes assez à l'aise avec la randomisation et le procéduralisme. Maintenant, je pense que nous allons passer du hasard au simple calcul général. Maintenant, nous ne allons pas résoudre pour x font et des équations ou quelque chose comme ça. Nous allons juste utiliser la bibliothèque de fonctions mathématiques, comme nous avons utilisé la bibliothèque aléatoire. Donc ça va être plus complexe ou
théorique ou quelque chose comme nous l'avons fait avec le hasard. Cela va juste appliquer la bibliothèque de fonctions mathématiques.
14. Créer une vague sineux: Très bien les gars, préparez-vous pour notre prochain programme. Nous allons donc passer à l'espace de travail de script une fois de plus, débarrasser de tout ce qui est là. Créez un nouveau bloc de données, zoomez un peu de contrôle, faites défiler réel, et compris cela maintenant. Surtout PY et couple de N3 est juste pour nous préparer pour notre script. Pour celui-là, je vais l'avoir un peu différent. Nous ne allons pas seulement commencer avec un cube et ensuite aller de là,
en fait aller à recréer ou mailler à partir de zéro cette fois. Alors allons y entrer. Pour ce faire, nous allons créer notre maillage. D' accord, donc ça pourrait sembler un peu familier quand on a porté tous nos objets. Nous utilisons des objets de point de données de point BPI afin de lister tous les objets, ce qui nous a également permis de les supprimer. Et vous pouvez aussi simplement les créer. En faisant cela, nous travaillons à créer un objet pour être pur et tous les autres objets sur nouveau. Appelez ça la courbe du péché aussi bien peut-être. Et cela va vraiment entrer et les deux bras de liaison à travers notre objet. Donc, une fois que nous avons un maillage et un objet, nous pouvons profondément lien de texte intégral. C' est une bouchée. Obj. Peut-être que nous devrions mieux mailler à ce stade aussi. Si je ne me trompe pas. Laissons ça. Ok, donc maintenant nous pouvons voir que nous avons notre objet qui a un avant. Si je ne voulais pas faire ça,
ça va objecter des choses. Il suffit de créer un maillage. Peut-être carrière. Débarrassez-vous de l'objet. Sélectionné, supprimez-le. Vous pourriez voir que je pourrais courir ça autant de fois qu'une. Il n'y aura jamais d'objet ici et ça va être un tas de mailles ici. Donc, c'est un peu déroutant. Ces choses se cachent en arrière-plan comme ce maillage cube. Nous croyons que c'est il y a longtemps, mais il se cache toujours. Alors passons en fait par notre routine de suppression. Donc, nous avons fait cela quelques fois où les objets, donc je me souviens pour OBJ et BP des objets de données. Les objets de données suppriment le type d'objet actuel. Donc, chaque objet est listé et puis il est supprimé comme si nous pouvons réellement faire la même chose pour un maillage. Donc, pour le maillage dans le point BPI les mailles jaunes, BPI, point point.me Mesh. Donc, cela va réellement se débarrasser de toutes
les missions qui sont actuellement sur la scène. Et puis il en créera un nouveau. Alors voyons si ça marche, d'
accord, on dirait que c'est le cas. Et donc il n'y a qu'un maillage ici, ce n'est toujours pas d'objets. Alors décommentons à nouveau ces gars. Et nous avons tout configuré maintenant. D' accord, cool. Nos mailles encore un peu ennuyeux, non ? Il n'y a pas de données réelles. Donc on peut changer ça en faisant de la purée des points, de la pub, de la pub. Un 100100 sommets à travers le maillage. Je vais également ajouter quelques bords. Donc, nous avons réellement besoin d'un de moins que la quantité de surlevier est parce qu' un bord est toujours une ligne de connexion entre deux sommets. Donc il y aura toujours un Edge de moins et il y avait quatre Dixit. Alors peut-être qu'on devrait mettre ça là-dedans et une variable. Donc disons un 100 échantillons. Donc, je veux avoir un 100 sommets, puis moins un arêtes. Bon, donc maintenant nous aurions dû savoir qu'il y a toujours dans
les mêmes endroits où il n'y a toujours rien à faire. Mais d'abord, allons peut-être un peu plus fondamentalement que la note de clic à sinewave. Créons simplement une ligne plate simple, une courbe plate. Donc nous allons passer sur tous les sommets. Donc pour i dans la gamme d'échantillons, parce que c'est exactement la même quantité de sommets. Donc quantité d'échantillons. Nous allons saisir le sommet courant, qui sera maillé pour chacun de l'index i. Et puis nous dirons le sommet courant C, o, qui est la coordonnée. Nous allons définir cela égal à, disons 0 sur x et y, puis un en z ou quelque chose, donc ce n'est pas plat sur le sol. Une sorte de récompense pour exécuter ça. Regarde la courbe. Ok, ce n'est pas mal. Toujours pas de géométrie réelle. Ainsi, nous pouvons voir les points qui avaient été décalés, mais les bords ne le sont pas. Je veux dire, il y a des bords là-bas, mais ils ne savent pas quoi t'attendre pour les toxicomanes est profond ou ce qu'ils devraient faire. Donc, c'est en fait cela aussi bien. Donc, je ne vais pas vouloir faire est pour chaque bord, pour tous les quatre tiques, je veux le faire pour tous les sommets sauf pour le dernier. Donc, si je suis moins que simple, minus1, je voulais dire, bords de maille. Le courant que j'adopte les sommets est égal au sommet actuel, puis au sommet suivant. Et ce n'est qu'une signature. Donc j'attribue un sommet au sommet est pour chaque mission, chaque bord. Donc, chaque bord est essentiellement plus grand jamais. C' est un sommet, cet astérix ici. Et vous avez un sommet ici. Ce que je veux faire, c'est nous, alors vous les connectez juste quand un bord. Donc c'est le sommet actuel, les sommets I. Donc le sommet actuel comme un index de i. Et puis le sommet suivant de ce gars, qui est la fin de la connexion, est i plus un. La suivante. Ou vous devez vous assurer qu'on ne passe jamais sur les échantillons moins un. Parce que je plus un serait 101 ou 100. Et ce sommet n'existe pas parce qu'il va de 0 à 99. Nous devons donc nous assurer de ne jamais dépasser cette limite. Parce que si on disait que tu oubliais ça, on aurait une erreur. Peut réellement charger la console. Donc, vous pouvez voir que c'est un lecteur hors plage index 99. Donc ça n'existe pas apparemment. Nous devons donc faire pour nous assurer qu'il garde son immobile à portée. Nous pouvons encore nous devons toujours aller dans par rapport à double-tap onglet est sélectionné afin de voir notre courbe. Donc c'est un peu ennuyeux. Ajoutons réellement un modificateur, donc c'est un bon morceau de géométrie. Donc c'est là que nous prenons la peau est finie. Nous pouvons écrire ceci ainsi que le film rapidement faire cela. Donc, nous allons le faire en faisant des modificateurs de fichier OBJ, ce nouveau type est égal à skin, puis nom. Peu importe ce que l'on appelle sa famille était de faire cela, alors nous avons déjà fait, donc après avoir créé les objets, nous créons un modificateur de type skin, ce qui est juste un peu plus facile à voir si vous pointez. D' accord, donc ça a déjà l'air assez cool. Laissez-moi l'appliquer à un C aux vertex parce que cela ne me laisse pas vraiment le voir. D' accord, cool. Donc, ce sont des échantillons humains. Si nous devions mettre comme prendre cet échantillon et que c'est beaucoup plus court, peut-être qu'on ne devrait pas le faire. Pour l'instant, c'est bon. Allons ici, appliquez le modificateur. Je vois, le moi, je vois. Donc ça va toujours être changé par un. Donc, comme on peut lire cela. Et les forêts. Pour l'onde sinusoïdale, nous devrions ajouter quelques variables supplémentaires. Alors ajoutons une fréquence. Je vais juste mettre cela sur 30 longueur parce qu'il devrait être plus variable. Et puis la hauteur 3 peut-être. Et puis nous pourrions faire une étape qui serait la longueur divisée par notre échantillon, qui permettra de tout redresser. C' est un peu plus logique. Vous verrez à quoi ça ressemble dans une seconde. Très bien, donc pour faire le, pour
obtenir l' onde sinusoïdale, nous devons importer des maths, ce qui nous permet d'accéder à un tas de modules plus. Donc, si nous pouvons commencer à être explorés et la console un peu, agrandir. Une chose que vous pourriez faire. Troisièmement, les maths. Ceci, cette fonction est dérivée, la fonction est juste la fonction Python standard. Je vais énumérer toutes les choses que vous pouvez faire avec la méthode ou la classe actuellement sélectionnée. Et ici, de sorte que vous pouvez voir les mathématiques offre des racines carrées sinusoïdales. Peut-être que je peux vous montrer au hasard pour le rendre un peu plus visuellement aussi. Si je devais faire le hasard, vous pourriez voir un uniforme aléatoire. Donc c'est la fonction que nous avons utilisée avant, à droite, à l'uniforme aléatoire. Et là, tu peux aller chercher des trucs. Disons que je voulais faire quelque chose avec le péché, l'irradiance ou avec le pouvoir, je suppose, un peu le chercher. Donc je vois ok, donc ça s'appelle le péché. Et je peux peut-être avoir des métriques dans, et puis il retournera le sinus de x, sinus x retournera un sinus de x. donc si je devais faire sinus 90 est 0.9, c'est correct. Mesuré en radians. Bien sûr, ce n'est pas génial comme votre méthode. Parce que c'est un ici aussi. D' accord, donc MATLAB éclat, ouais, 90. C' est 1,5 sites font. Oui. Donc le sinus de 90 est en fait un qui fonctionne, donc vous avez juste à l'appuyer et en éclat. Mais oui, c'est juste un peu plus sur la façon dont vous pouvez réellement jouer et découvrir ces, ces modules. Si vous venez d'imprimer cela, vous pouvez en quelque sorte passer par ce qu'il offre tous, ce que vous pouvez aussi, bien
sûr, vérifier la documentation. Laisse-moi juste rapidement boîte tout ce qui va dans ici. Donc tu peux aller signer. Peut-être à un support. Oui. Il y a un sinus de x radians. Oui, et x radians, bien sûr, un retour cible est en radians, mais un signe en radians. Ça n'a aucun sens. Je trouve ça d'ailleurs. Maintenant, nous savons comment les maths fonctionnent. Donc nous pouvons vraiment saisir notre, disons que notre valeur est ce que nous voulons faire. Oui, au lieu d'un, écoute cette méthode sine de i t nous obtenons maintenant vous obtenez onde sinusoïdale qui a très, très blocky un très, très long aussi bien parce que nous avons 500 échantillons. Donc ça va être 500 et lien parce que oui,
ça va toujours être un. Donc oui, on ne veut vraiment pas ça. Nous voulons faire une sorte de pas. Je veux dire, toutes les preuves déjà en place. Donc, disons que ma valeur est égale à i fois étape. Et puis je voulais faire, au lieu de cela, je veux faire de la valeur, ce qui le rendra un peu plus contrôlable et un peu plus lisse parce que nous avons ces étapes supplémentaires. Plutôt que cela n'en soit
qu'un, ce sera 30 divisé par 500. Et de cette façon, nous pouvons réellement contrôler la longueur. Si nous mettons cela sur 20, il sera plus petit, mais cela ne changera pas réellement la fréquence que vous masqueriez ou quoi que ce soit. Et il est en fait inclure les TIC. Alors multiplions nos coordonnées xy par la hauteur. Donc, de cette façon, si vous faites 33.55, affectera réellement la hauteur. Mettons ça sur trois. J' aime bien ça. Ok, donc ça a déjà l'air. Peut-être. Je vais vous montrer quels échantillons très rapidement pour avoir moins d'échantillons, vous avez moins de sommets. Donc c'est moins de résolution. 500 et lisse. Ça fonctionne aussi vite que bien.
15. Lire et visualiser des données réelles : Introduction: Je les gars, dans cette partie du cours, je vais parler de lire dans les données réelles d'un fichier CSV et de afficher comme graphique 3D approprié graphique à barres 3D. Nous allons passer étape par étape,
lire les données, les afficher joliment. Et finalement, nous finirons avec un bon graphique à barres 3D, comme vous le voyez ici.
16. Reading les données (.csv ): D' accord, les gars. J'ai effacé tout notre or pour générer ce truc. Donc je vais m'en débarrasser aussi. Celle-là, regardons avant qu'il ne soit parti. Et je commencerai juste un nouveau, important BP comme nous avons l'habitude de le faire. C' est aussi important. Csv, qui est un module standard pour Python et mélangeur. Je viens d'inclure par défaut afin que nous n'ayons pas à faire d'autre installation ou quoi que ce soit. Je laissons juste entrer par défaut. Alors peut-être que nous allons rapidement dans notre console et exécutons cela aussi bien là où il est déjà déjà là. J' ai déjà fait un petit enregistrement que j'ai dû recommencer
afin que nous puissions réellement voir quelle était la sortie ou qui sont qui entrent dans. Donc vous pouvez voir d'autres choses ici pourraient être un peu abstraites. Je ne vais pas aller voir les deux charger la bibliothèque CSV. Nous allons juste l'utiliser pour,
pour importer nos données. Donc, la principale chose dont nous aurons besoin est un chemin de fichier. Ce sera le bain réel sur ce fichier CSV que nous voulons lire. Alors ouvrons ce gars, pas besoin de voir dedans est en fait un aperçu de ce qu'Alcott rentre. Mais comme vous allez dans les graphiques à barres, et ceci est le fichier de données réel. Et nous, relativistes, avons ouvert ça très vite. Pour que vous puissiez jeter un oeil à ce qu'il y a à l'intérieur. Si vous n'êtes pas familier. Fichiers csv, fichier de valeurs séparées par des virgules est fondamentalement juste des valeurs séparées par des virgules. Peut-être que si je devais vous montrer comment ajouter un fichier texte ou comme dans un Bloc-notes. Ça pourrait être un peu plus clair. Encore une fois, ce ne sont que les heures travaillées de Gama et puis vous pouvez juste voir toutes les données ici. Donc essentiellement le vendredi, les sept heures 4z, c'est ce
que disent les données. Donc, comme un bref aperçu de ce que nous allons regarder. Donc, afin d'obtenir le chemin de fichier de ce gars, vous pouvez simplement cliquer ici en haut de l'Explorateur et c culturel, tout cela. Donc, c'est d répertoire, puis le nom du fichier. Nous allons juste faire F2 pour renommer Control a pour sélectionner tout et Control C. Assurez-vous que vous avez l'extension là, aucun. Donc, vous avez réellement le tutoriel point CSV ou quel que soit votre fichier, point csv. Et c'est vraiment important parce que sinon le mélangeur ne sera pas en mesure de le trouver. Donc ça ressemble à un bon bain. Une chose que nous devons faire est de presser comme art I devant elle. C' est parce que nous avons des barres obliques inverses dans notre chaîne. Tout entre les guillemets est appelé une chaîne et une programmation. Et Python est en fait, vous devez dire à Python de ne pas gérer ces barres obliques inverses parce que vous pouvez réellement faire comme une barre oblique inverse n pour une barre oblique inverse r, qui est comme des caractères spéciaux, ne
vont pas entrer dans ceux d'aujourd'hui. Vous avez juste besoin de vous assurer que vous soyez le meilleur art et avant ou d'échapper à chaque barre oblique inverse avec une autre barre oblique inverse. Donc, ces deux chauves-souris sont valides. Si tu faisais les conférences de Beck, ça ne marchera pas et ils seront capables de résoudre son chemin. Alors soyez conscient de cela. Je vais utiliser le premier parce que c'est qui lit le mieux. Donc d'accord, maintenant nous avons notre chemin de fichier déclaré. Nous allons juste avoir à lire
les données CSV réelles qui sont stockées dans ce fichier. Donc, je vais créer une variable dans laquelle je vais stocker toutes les données. Alors peut-être que je vais juste appeler les données, peut-être un peu plus propre. Et ensuite nous ouvrirons notre fichier. Donc, c'est un peu de code Python est, n'
est pas lié à Blender
ceci, c'est juste du code Python général pour ouvrir un fichier. Donc, avec ouvert et un chemin vers le fichier, la revendication et comment la nouvelle ligne est un point qui dit la lecture de la matière comme un fichier CSV. Donc, à l'intérieur de cela, nous serons en mesure d'interagir avec notre fichier en utilisant la variable de fichier CSV qui est la meilleure ici. En utilisant, je veux dire, c'est juste un moyen d'ouvrir un fichier et de le fermer directement si vous êtes familier à la programmation. Si tu ne l'es pas, c'est vraiment, ça n'a pas d'importance. Ce n'est pas un tutoriel sur le fichier IO ou quoi que ce soit, alors prenez juste ma parole dessus. Ensuite, nous allons déclarer notre lecteur CSV et lui donner notre fichier CSV comme un, comme une entrée. qui va en fait, je vais juste montrer ce que cela, ce que cela retourne en exécutant ceci. Et je double notre console parce que l'impression est imprimée sur la console système, comme nous l'avons dit auparavant. Et ce chapitre de cours de Peri, cela renvoie en fait un objet lecteur CSV, qui n'est pas vraiment quelque chose avec lequel nous pouvons travailler, non ? Évidemment va devoir louer sur les résultats de nos lecteurs. Donc, un lecteur est en fait une liste de lignes. Donc, ce que nous pouvons faire est de parcourir toutes nos règles à l'intérieur
du lecteur et de le mettre dans notre dictionnaire, notre dictionnaire de résultats réels. Et encore une fois, tout cela, ce que j'explique maintenant est très Pythonique. De l'or. Ce n'est pas le cas, ça n'a rien à voir avec le mélangeur ou ça n'a rien à voir. Ce n'est tout simplement pas avant qu'ils mélangent les décisions quotidiennes, toutes sortes de choses afin d'extraire des données d'un fichier CSV. Vous pouvez rechercher cela en ligne. Il y a beaucoup de réponses de débordement de pile comme. Je vais vous donner exactement ça. Je vais juste ne pas passer trop de temps là-dessus parce que ce n'est vraiment pas le centre d'intérêt d'aujourd'hui. Mais oui, voyons ce que ça nous donne. En fait. Revenons cela aux données parce que effectivement utilisé les données ici. Imprimons les données et voyons ce que cela nous donne. Nous obtiendrons un dictionnaire. Donc notre premier indice sera le jour et les heures de travail. Donc c'est en fait la première rangée. Donc, c'est peut-être comparé aux entrées à la sortie à ce que nous avons écrit. Donc, tout d'abord, nous obtenons soit une variable qui est de type CSV, et ensuite nous pouvons faire une boucle, sorte que nous pouvons itérer sur toutes les lignes à nos index que nous plaçons. Donc, si nous devions ouvrir à nouveau notre fichier CSV, j'utiliserai Excel cette fois afin que vous puissiez vraiment voir clairement les lignes. Vous pouvez voir par ligne. Alors peut-être que je vais imprimer la longueur de ça. Donc, la longueur du lecteur sera essentiellement la quantité de robes chacun ont mais ne s'attendait pas réellement au travail. Laissez-moi le montrer rapidement. Ouais, il n'a pas ce n'est pas une vraie liste. Pour une raison quelconque, vous pouvez itérer dessus, mais ce n'est pas comme un type de liste. Comme on l'a vu avant. Il s'agit de l'objet lecteur CSV. Donc c'est un peu différent, mais vous pouvez boucler dessus, ce qui est la chose la plus importante. Ainsi, vous pouvez faire défiler toutes les lignes. J' utilise la fonction d'énumération afin pouvoir
également X comme notre index sorta actuellement augmenté Ed suivant. Donc, de cette façon, nous pouvons réellement avoir une clé unique. C' est parce que si je devais utiliser faire pour le lecteur de ligne, et alors je pourrais imprimer ma règle. Faisons ça une seconde. Exécutez ça. Vous pouvez voir ce sont toutes les lignes qui sont à l'intérieur de mon lecteur. Donc vous verrez qu'ils sont réservés lundi, non ? Donc, si nous regardons ici, nous pouvons mettre l'un à côté de l'autre et choisir un quatre quand z3. Donc, ce sont, ce sont les données et dans leurs lignes. Donc pour chaque rangée, j'imprime tout ce qu'il y a à l'intérieur. Mais maintenant, quand j'ai ceci, il n'y a pas de clé unique que j'ai. Parce que le problème avec les dictionnaires est que vous ne pouvez jamais avoir une clé deux fois. Donc, si je devais dire des données, et je pourrais mettre la ligne 0, qui est le premier index avec cette liste, qui sera lundi ou mardi ou mercredi ou autre. Donc si je prenais ce type et que je mettais ça à un, ce qui est les heures travaillées. Donc 84, trois. Ensuite, je n'aurais qu'une entrée pour lundi, une entrée pour mardi et ainsi de suite. Parce qu'il écrasera constamment l'entrée précédente à l'intérieur. C' est juste comme ça que je discute de la façon dont les dictionnaires fonctionnent en Python. Donc c'est quelque chose dont vous devez être conscient. Votre clé devra toujours être unique. Parce que encore une fois, si elle trouve, donc, vous voyez ici lundi huit avec ceci est un mauvais exemple. Mardi en est un, mais en fait,
il y a environ quatre heures ou six heures ou peu importe . Il ne se souvient que de la liste, choisissez un et les lignes. Donc, pour corriger cela, nous devons garder une trace de l'index. Et si vous voulez le faire,
ce n'est pas un tore et une erreur car il n'y a pas assez de valeurs pour mpeg. Ou en fait, il ne le dit pas vraiment spécifiquement. Mais c'est juste quelque chose que je sais. Donc, vous devez faire des énumérations sur cela, désolé, je reçois le contrôle réel dépassé, mais vous obtenez aussi l'index et ils peuvent utiliser notre index a une clé. Ensuite, nous pouvons créer un dictionnaire à l'intérieur de notre dictionnaire qui stockera nos données. Donc, ce serait l'étiquette et ce serait la valeur pour like, comment ai-je appelé ça. C' est très bien. Et puis nous verrons que nous avons une entrée pour chaque jour, chaque lundi, mardi. Ils ne sont pas écrasés. De cette façon, nous pouvons extraire toutes les données. Donc c'est déjà un gros morceau de travail fait. Nous avons nos données soigneusement dans un dictionnaire et elles sont prêtes à être traitées.
17. Reading les données (.txt): Hey les gars, je vais vite tout faire. Nous pouvons également extraire nos données lorsqu'elles proviennent d'un fichier texte. Donc, vous pouvez voir ici est le CSV, qui pourrait être un peu trop compliqué pour ce que nous essayons de réaliser. Maintenant. Essentiellement, les données sont les mêmes, même la façon dont elles sont écrites, c'est la même chose. Je viens de changer l'extension pour lire le point TXT. Donc, si on les plaçait l'un à côté de l'autre, on verrait que c'est essentiellement la même chose. Mais c'est un fichier TXT point qui le rend un peu plus facile à travailler avec et à interagir avec. Alors ouvrons Blender. C' est juste une scène vide. Allons à notre bataille de scripts. Nouveau fichier supérieur. Et puis les importations seraient IBB, tout comme nous sommes habitués. Sauvez la scène, comme ça. D' accord, et nous sommes prêts. Ok, donc la première chose que nous allons devoir faire est localiser ou de classer parce que nous voulons l'importer dans un mélangeur. Tu dois savoir où c'est. Je vais juste vite cliquer ici. C' est la même équité avec le CSV, mais si vous n'avez pas vu cette vidéo, je reviendrai sur ça. Donc, nous allons devoir copier le répertoire. Cliquez donc en haut de l'Explorateur et les gens le voient. Venez ici et mettons en place une variable appelée chemin d'accès au fichier, puis copiez cela. Et si, jusqu'à présent, si bien. Revenons ici, prenez notre nom de fichier réel, assurez-vous que vous avez les extensions ou ce n'est pas TXT. Tu as besoin de tout le tout. On avait tous les textos ici. Et je peux juste ajouter une autre barre oblique inverse. Et basé sur un nom de fichier, une chose de moins que nous devons faire pour en faire un chemin valide en Python est une barre juste avant la chaîne. Il y a quelques conférences OPEX que Python fait par défaut et nous ne voulons pas qu'il le fasse maintenant. Donc, nous pouvons juste lui dire de ne pas en amenant ceux-ci sont en face. Donc, c'est vraiment important. Tu ne peux pas oublier ça. Bon, donc essentiellement ce que nous avons fait maintenant, c'est que nous avons attrapé le fichier AAC, mais nous n'avons toujours rien fait avec. Alors ouvrons ça. Et je ne l'ai même pas fait comme ça. Donc, avec le chemin du fichier ouvert, nous voulons lire le fichier. Alors mettons r ici, qui est le mode d'affichage. Et puis nous dirons comme fichier TXT. Donc, c'était déjà fait, maintenant ouvert notre fichier. Et vous pensez, pourquoi ne pas cela dans cette déclaration, donc à ce niveau d'indentation sera accéder au fichier. Donc, chaque fois que nous sommes à l'intérieur ici sont suivis par ouvert, mais chaque fois que nous sommes de retour ici, le fichier sera proche. Donc c'est vraiment sympa. Ceci est automatiquement fait avec cette syntaxe ouverte de largeur. Le mélangeur offre que Bitcoin offre mieux. D' accord, donc nous sommes dans notre fichier à ce stade parce que mon curseur est une indentation depuis le début ou à partir de cette largeur. Dans le dossier. Et nous allons juste l'imprimer pour l'instant. Donc, nous allons imprimer le point de chemin de fichier, lire les lignes. Laissons juste lire toutes les lignes et juste voir ce que cela nous donne et il suffit de cliquer sur Exécuter. Ça va me donner une erreur. Alors vérifions cela en ouvrant notre console système. C' est ainsi que nous pouvons réellement voir ce qui est écrit pour dire. Donc, il n'a pas de relais d'attribut. Ok, donc c'est parce que chaque fois que nous sommes à l'intérieur de notre fichier texte, nous devons utiliser notre fichier DEX où nous ne pouvons pas utiliser nos lits de fichiers parce que notre sentiment mauvais est juste l'emplacement du fichier, fichier texte. C' est celui-ci que nous avons déclaré ici est en fait le contenu du fichier. Donc, quoi qu'il soit ouvert, vous devez être appelé fichier txt dans cet exemple. Ce n'est pas ce que je voulais faire. Cela exécute cela, qui a fonctionné. Revenons à notre console système parce qu'il est encore l'impression doit également être sortie vers les serveurs de la console système vont devoir regarder ici. Et nous pouvons voir que nous avons maintenant toutes nos lignes ici. Donc, c'est une liste essentiellement. C' est donc une collection de lignes. Readlines fonction retourne comme une collection de lignes. Et nous pouvons le voir ici. Il y a cette barre oblique inverse n, qui est l'un des,
le caractère de la barre oblique inverse dont je parlais ici. La barre oblique inverse n dit essentiellement à votre, votre fichier est une entrée, donc c'est un nouveau caractère de ligne. Et nous ne voulons pas vraiment cela
dans nos données, donc nous pouvons nous en débarrasser. Donc, nous allons en fait créer un dictionnaire comme nous l'avons fait avant. Donc, ce sera, vos données, sera un dictionnaire vide comme ça. C' est ainsi que vous pouvez déclarer un dictionnaire vide. Donc, c'est essentiellement la même chose que de dire ça. Mais j'étais juste en train de taper les travaux pour l'instant. Je suis désolé, mon alarme. D' accord, donc on a un dictionnaire vide. Passons maintenant à la boucle sur toutes nos lignes. Donc, nous avons X quantité de lignes. Nous ne savons jamais combien de lentilles ou avons-nous cette collection de lignes ? Donc, comme nous l'avons fait avec les objets, nous pouvons juste itérer sur chaque ligne que nous pouvons trouver. Donc, quatre lignes de fichier TXT point de lecture des lignes. Donc, ce sera notre collection de lignes sur chaque ligne. Une chose que nous devons faire, alors laissez-moi juste imprimer la ligne. des fins d'illustration. Nous pouvons voir que nous avons ces lignes, toutes ces lignes. Et maintenant, notez que cette barre oblique inverse n n'est plus là. Mais au lieu de cela, nous avons cette entrée. Nous avons cette ligne entre les deux, qui est essentiellement hors est une barre oblique inverse. N caractère est interprété en mélange en Python, qui n'est pas ce que nous voulons, bien sûr. Donc une chose qu'on pourrait faire est d'enregistrer notre dépouille ce personnage. Alors pourquoi le décapage ? Nous pouvons essentiellement dépouiller n'importe quoi de la droite de notre chaîne actuelle. Donc ma ligne serait égale à. A lundi prochain, le destin. Et je suis la barre oblique inverse en disant que notre bande,
nous pouvons réellement commencer par la droite et vous pouvez supprimer cette barre oblique inverse n. Donc tout ce que nous mettons ici va être dépouillé. Donc, nous allons réellement obtenir cela à la place. Donc, si nous devions imprimer ça sur la console, exécutez notre script. Vous pouvez voir maintenant que le pénètre dans notre, notre disparu obtenu. C' est donc essentiellement la ligne que nous voulons stocker dans notre dictionnaire de données. Alors redéfinissons notre ligne. Définissez-le égal à la ligne sans cette entrée à la fin. Et puis nous pouvons réellement l'utiliser dans notre dictionnaire. Il y a encore une chose à faire. Donc, pour voir comme la réutilisation a commencé, chaque colonne était déjà divisée par chaîne, par la, par la fonction. Mais maintenant, nous allons devoir le faire nous-mêmes. Donc, nous pouvons voir cette ligne, par
exemple, dit la virgule cinq dimanche. Mais nous devons en fait diviser tout ça. Donc notre journée est dimanche et nos heures travaillées sont, c'est cinq. Mais à partir de maintenant, ce n'est qu'une entité, c'est une chaîne. On doit donc diviser ça. Donc, afin de diviser la chaîne, nous pouvons utiliser la fonction split. Et ce n'est vraiment pas si dur. C' est une bonne chose à propos de Python. Tout est très lisible et ce n'est pas si abstrait. Pour qu'on puisse dire notre jour. Ce point de ligne est divisé et un est divisé à la virgule. Donc, cela retournera essentiellement une liste de notre, de notre chaîne que nous donnons à une ligne comme une chaîne. On veut diviser ce coma en retard. Donc nous allons prendre tout ce qui est avant la virgule, ce qui est après la virgule. Et ça va être notre liste. Laisse-moi te montrer. Je vais juste imprimer le jour tout de suite. Ce ne sera pas le jour même. Ce sera juste la liste qui a été divisée sur la virgule. Désolé, ce n'est pas encore ma raison, alors lançons ça. Et maintenant, nous allons voir que nous avons notre journée et nos heures travaillées séparément. Donc, c'est maintenant une liste avec 22 éléments et donc un pour chaque colonne. Puisque nos colonnes sont divisées avec cette virgule. Donc notre journée est en fait la première. Donc, nous pouvons dire et suivant est 0 parce que nous devons toujours commencer par l'index 0. Et nos heures travaillées seraient index 1. Donc, ce sera à tout après que le côlon est tout avant. Et c'est tout après. Eh bien, bien sûr, s'il y avait plusieurs virgules, il y aurait plus de deux index dans cette liste parce que c'est ainsi que la propagation fonctionne. Il se divisera avant chaque chroma. Mais comme il n'y en a qu'un, n'
aura que ce qui est avant et ce qui est après. Donc c'est exactement ce que nous voulons. Et si nous pouvions savoir, par exemple, qu'ils imprimeraient les heures travaillées et nous verrons que c'est exactement ce que nous voulons. Donc pour l'instant il y a encore, nous ne voulons toujours pas ça pour chaque ligne ici. C' est juste un en-tête ou un étiquetage ou quoi que vous vouliez l'appeler. Donc une chose que je vais faire, je vais utiliser à nouveau la fonction énumération. Donc, c'est une belle façon d'octets et nous permettant d'obtenir une prise de notre actuel et suivant. Alors, pendant qu'on bouclait sur toutes nos lignes. Et comme nous l'avions avant. Donc pour la ligne dans le fichier, longueur de lecture, lecture seule, prenez notre objet ligné. Trois ne saisissent que l'objet chaîne réel qui est dans la liste que nous ne savons pas quel est l'index actuel ou l'itération actuelle, nous obtenons juste l'objet. Mais en utilisant la fonction énumération, nous saisissons notre index, donc notre itération actuelle et en ligne aussi bien. Donc, c'est en fait beaucoup plus Pythonique que nous pourrions aussi faire pour l'index dans la plage et puis la longueur ou comme la quantité de lignes que nous avons et que nous menons alors
serait le fichier texte est lu lignes dans un. pour l'index dans la plage et puis la longueur ou comme la quantité
de lignes que nous avons et que nous menons alors
seraitle fichier texte est lu lignes dans un.
variable ainsi, un acre juste gravité peut exploiter cela pourrait déjà devenir un peu déroutant. Revenons à cette façon de le lire. Donc maintenant utiliser essentiellement en utilisant cette fonction d'énumération et notre collection, nous avons essentiellement déverrouillé cet index interrogeable dans notre boucle for. Donc, nous pouvons maintenant y accéder aussi. Donc, comme nous l'avons fait avant, nous prendrons notre dictionnaire de données ou clé doit être unique, donc nous allons mettre l'index ici, et ensuite nous allons stocker nos données ici. Donc j'appelle cela étiqueté ceci comme en fait, comme nous l'appelons un jour pour l'instant, mais c'est un peu plus explicite. Et les nôtres travaillés sont des heures travaillées. Et si nous devions imprimer des données ici, nous verrions que nous avons, eh bien, nous avons toujours cette première ligne. Débarrassez-vous de cela maintenant puisque nous utilisons l'index de spin, nous pouvons filtrer. Donc, nous pouvons dire si mon index est supérieur à 0. Donc, pour la première ligne, notre index sera 0 parce que ce sera la première itération et nous commençons toujours à 0. Donc ce sera un coup d'oeil ici. Et 0 sera cette ligne. Donc on ne veut pas l'être, on va juste ignorer cette ligne. Donc, chaque fois que c'est le cas, mon index est supérieur à 0. Donc, chaque fois que nous sommes ici ou ici, ou où que ce soit, nous allons vraiment faire ce que nous voulions. Mais avant ça, il suffit de l'ignorer. Essentiellement. C'est pourquoi nous mettons cette déclaration if, ce filtrage tout le chemin en haut. Parce que tu ne veux même pas te déshabiller. On ne veut même pas s'embêter si c'est la première ligne, suffit d'aller sur ce continuum. Ça n'a pas d'importance. Si vous imprimez ceci sur notre console. On verra que ça commence à un. Et puis nous avons juste tous nos jours et plus d'heures travaillées. D' accord, donc peut-être laissez-moi
vous montrer rapidement à quoi ça ressemblerait si nous n'utilisions pas notre index ici, parce que c'est un piège ou un dictionnaire que vous devez être River. Donc, disons que nous venons de mettre notre journée ici et ensuite nous mettrons cela à égalité cependant toujours que nous avons travaillé. Il semble juste une liste de tableau un peu jolie pourrait juste fonctionner. Alors exécutons ça. Et maintenant, comme vous le voyez, nous n'avons que sept entrées ici. Nous n'avons qu'une entrée par jour. Et c'est parce qu'une clé de dictionnaire ne peut jamais être, peut jamais être dedans deux fois. Il écrasera toujours simplement la clé de dictionnaire précédente. Donc disons que nous avons eu lundi, alors nous avons mis huit. Ok, c'est très bien. Mais alors nous aurons lundi à nouveau et puis il le remplacera par un. Donc, si vous regardez de près, vous verrez que cette ligne est essentiellement une semaine dernière que le pécheur n'entend pas. Du dimanche au samedi 6, donc ça revient en quelque sorte et ça écrase tout ce que nous avons à l'intérieur. Donc ce n'est pas bon. Donc, si vous avez des données qui sont dupliquées ici, je veux dire, si l'étiquette est dupliquée
ou, ou si une colonne est dupliquée, vous ne pouvez pas utiliser cette colonne comme clé ou dictionnaire parce que vous allez perdre des données. Vous serez, vous ne resterez que le dernier, le moins d'entrées. Donc ce n'est pas ce qu'on veut. Donc, nous allons utiliser notre index, qui va être unique parce que c'est juste l'itération actuelle de la ligne. Donc, c'est fondamentalement le numéro de ligne. Donc j'utilise ceci à la place. Et cela va juste créer un dictionnaire à l'intérieur et stocker nos données ici. Donc, en fait, on ne perd rien. Va exécuter ça. Bien que nous ayons toutes nos données proprement et le même format que nous avions lorsque nous avions l'habitude de voir comme bibliothèque V.
18. Créer le graphique en barre: Bon, maintenant que nous avons nos données, permettez-moi de renommer rapidement ça de la même façon que vous les gars au genre d'habitude du côté csv. C' est vraiment l'étiquette et la valeur. Si tu n'as pas regardé la vidéo, je l'ai fait. J' ai fait un peu plus en expliquant comment vous voudriez ouvrir un fichier et et le chemin du fichier et tout fonctionne. Donc, si vous savez que ce n'est pas encore clair pour
vous, vous pouvez peut-être aller regarder cette vidéo aussi. Quelques informations supplémentaires pour l'énumération aussi. Donc ce n'est pas mauvais de vérifier. Mais une fois que vous êtes ici et que vos données sont imprimées, vous êtes en fait prêt à passer à l'étape suivante, qui est en fait la visualisation des données, parce que c'est pourquoi nous sommes là, n'est-ce pas ? Souhaitez-vous créer notre graphique à barres 3D ? Non, c'est un mélangeur. Donc c'est ce qu'on doit faire en ce moment. Peut-être d'abord, nous allons écrire notre petite partie de nettoyage que nous avons fait pour les derniers scripts aussi parce que nous ne voulons pas entrer et supprimer toute la géométrie ou je serai des objets à chaque fois parce que ils doivent créer des cubes et des choses à partir de maintenant à chaque itération, chaque fois que nous exécutons le script et que nous ne voulons pas
toujours aller au point de vue et nous supprimons tout. Tu devrais te rappeler que c'est déjà le cas. Donc, pour chaque objet dans les objets point de données BPI point, donc tous les objets sont une collection d'objets. Et passons en revue tout le monde individuellement. Et puis nous allons chaque objet individuellement. Donc on fait ça, tout est parti. Les mailles sont peut-être encore là. Donc c'est ce que nous avons vu auparavant dans notre cours de signe ou cours de mathématiques. Peut-être que je ne l'écrirai pas ici. Donc, si vous voulez vous en débarrasser,
c' est un bon exercice pour vous les gars essayé de, essayé de se rappeler comment le faire. C' est très similaire à ce que nous avons écrit ici. Gardez à l'esprit que nous ne voulons pas qu'il déplace des objets, mais nous voulons supprimer les maillages. Et ça devrait être un bon indice pour les gars qui veulent essayer ça à la maison. Donc je ne vais pas y aller en ce moment. Donc, en fait, peut-être un peu. Donc, disons que le type de données est ici. Le nettoyage se fait ici. Et maintenant, nous faisons tous et visualisons les données. D' accord, cool. Donc, essentiellement ce que nous voulons faire est pour chaque index, pour chaque ligne, ou chaque bit de données que nous avons, nous voulons créer une barre. Donc, ce que nous allons vouloir faire est de passer en revue toutes nos entrées de données. Nous pourrions faire, c'est que nous le faisons pour la saisie des données et les données. Imprimantons ça. Imprimons la saisie des données. Voyez ce que nous obtenons. Nous obtenons étape par étape. Vous obtenez tous nos index, qui est maintenant essentiellement ce que nous voulons. Mais nous pourrions l'utiliser pour saisir nos données à travers moi sur un HLOOKUP, notre entrée de données actuelle dans notre dictionnaire de données. Donc, si nous faisions ça, nous verrions ce que nous voulons voir. Donc, ce serait nos données. Laissez-moi ouvrir un fichier texte pour que ce soit plus rapide. Donc tu verrais des lignes. Mais puis dans Blender et bison. Donc, jusqu'à présent si bon. Et nous allons commencer, désolé. D' accord, si nous obtenons nos données, nous faisons une boucle sur son histoire ou vérifions chaque entrée de données individuellement. Et essentiellement ce que nous voulons faire maintenant, c'est que nous voulons créer un dollar. Donc, pour ce faire, nous allons simplement créer un cube rapidement pour nous assurer que nous savons comment cela fonctionne à nouveau, parce que nous continuons à oublier. C' est un signal simple. Maintenant, la chose est que je veux redimensionner ceci afin de le faire, pour faire de la hauteur b la valeur actuelle ou le courant, le nombre d'heures que nous avons travaillées. Donc, pour le faire Alex, mais pour la taille jusqu'à un, parce que je vais finir avec le redimensionnement de cela. Et je veux juste le multiplier par un pour que ce soit un peu mieux. Donc, vous ne l'avez pas deux fois plus longtemps qu'il devrait être résolu avant qu'ils puissent se débarrasser de cette entrée en mode Édition. Et l'emplacement va devoir changer aussi. Donc nous ne voulons pas que toutes ces barres se chevauchent les unes les autres. Mettons-les dans la direction y. Donc, il est dit que nous utilisons une taille d'un. Notre largeur ou le cube sera un à tout moment et sont index ou heure. itération sera également incrémentée avec un. Donc, nous allons à nouveau utiliser la fonction énumération, qui est celle que j'utilise tout le temps. Donc, pour répéter une fois de plus, l'énumération. En utilisant les énumérations avant le déverrouillage de notre collection, notre index déverrouille notre itération actuelle. Alors pourquoi nous avons juste, pour la saisie de données ou pour l'élément dans les données, nous ne dépassons ou les éléments que vous pouvez imprimer. Article qui est très bien. Mais il n'y a aucun moyen de garder une trace de ce chemin de fer
d'itération ou du nombre de fois que nous avons déjà exécuté cette boucle. Nous pourrions bien sûr définir une variable i égale 0 et juste I égale,
égale à un à chaque fois dans notre boucle. Mais c'est très non pythonique. Donc Python offre cette fonctionnalité par défaut, en mettant simplement énumérer ici. Donc, déverrouiller notre idx, notre index, et assurez-vous que vous avez cet ordre configuré correctement afin qu'il s'agisse index d'abord, puis de l'élément réel. Donc c'est important à noter. Donc nous avons notre indice maintenant. Donc, vous pourriez aussi bien mettre ça que notre coordonnée y. Donc, à la première itération, notre index sera 0. Donc, notre coordonnée
y index r, y sera un, sera 0. Je suis désolé, laissez-moi vraiment illustrer. Donc, notre coordonnée y jusqu'à v 0. Et notre prochain cube, ou prochaine itération ou IV, x sera un et nos coordonnées y seront un. Et ça continue et encore. Donc, nous avons 2345 et ainsi de suite. Donc, de cette façon, nous pouvons vraiment facilement juste aligner ou cubes. Puisque nous savons que la longueur va toujours être un. Et cela va toujours s'incrémenter avec un. Donc, cela fonctionne bien. Ok, maintenant, ça ressemble déjà à un graphique à barres, mais ce n'est pas vraiment intéressant, c'est tout de même. Donc, nous allons devoir les mettre à l'échelle. Donc, faisons-le manuellement à nouveau pour nous assurer que nous savons comment faire cela. Et j'ai commencé à voler le commandement ici. Donc on peut juste le redimensionner, la valeur, peu importe. Donc ça ne devrait pas être dix, n'est-ce pas ? Cela devrait être notre valeur réelle. C' est absolument l'amour. Ça devrait être deux ou six. Donc, afin d'obtenir cette valeur, nous devrons rechercher notre entrée de données actuelle et notre dictionnaire de données. Et puis on n'aura toujours pas, laisse-moi te montrer ce qu'on a si on fait ça. Maintenant, nous n'avons que les cubes de risque, mais c'est notre valeur. Et nous ne voulons pas que ça soit juste. Nous voulons rechercher notre valeur dans notre saisie de données. Donc nous devons chercher deux fois parce que nous avons un dictionnaire à l'intérieur d'un dictionnaire ici. Donc, on va devoir le chercher à nouveau. Donc, en utilisant ces crochets et ensuite nous voulons taper des valeurs. Et c'est la clé que nous avons utilisée pour stocker nos données, nos heures travaillées. Donc, si nous utilisons cela, nous verrons que notre valeur est en fait notre valeur. Donc maintenant que nous l'avons, nous pouvons le placer au lieu de R, puis il devient dynamique, mais il cesse de fonctionner. Alors vérifions ça. Élément de séquence attendu de type flottant, pas chaîne. Ok, donc on l'imprime. Ça ressemble à des chiffres. Très bien, cela ressemble à mais essentiellement ce que font les fichiers DEX ou CSV est qu'ils ont deviné quelle que soit la valeur qu'il trouve deux chaînes. Donc, au lieu de stocker en avant, il va réellement stocker une représentation de chaîne ou pour la même chose avec n'importe quel autre type de données. Disons que vous avez une liste de chiffres. Donc ça fait 123. Il va en fait simplement envelopper cela entre guillemets et le transformer en une chaîne. Donc tu ne l'auras pas vraiment. Vous ne pourrez pas l'utiliser comme liste. Vous l'auriez deviné à une liste d'abord. Donc c'est quelque chose à garder à l'esprit. Mais nous savons que cela va toujours être un flotteur parce que nous avons un certain contrôle sur nos données. Donc, nous pouvons simplement le lancer explicitement sur un flotteur. Donc, ce sera, au cours de votre numéro dans un flotteur. Maintenant, vous devez être conscient. Donc essentiellement ce que nous avons maintenant, donc la valeur est une chaîne qui est quatre. Donc, si vous deviez imprimer de la valeur ou peut-être juste l'imprimer comme ça, ça ressemblerait. Comme si c'était une valeur pour un flotteur. Mais si nous, disons que nous faisons de la valeur plus trois, cela ne fonctionnerait pas comme vous le voyez, peut alors être concaténé chaîne à chaîne. Donc, notre valeur est une chaîne. Toujours. Nous devions le faire plus explicitement n-type, obtenir le type de notre valeur. Ce serait un flotteur. Donc, pour changer cela,
nous pouvons dire que la valeur est égale représentation flottante de la valeur R. Nous verrions que notre valeur est de type flottant. Et si nous étions maintenant à 3-2, il, cela fonctionnerait. Mais il y a une chose dont vous devez être conscient. Donc, disons que ma valeur est une chaîne, une chaîne réelle. Donc, que ce soit une chaîne de quatre ou une chaîne de tests, c'est la même chose si je devais
taper, pour rechercher le type. Donc, la chaîne B, disons que ma valeur est égale aux bureaux. Cette valeur est, c'est toujours une chaîne, elle ne sait pas
quoi, ce qu' il y a à l'intérieur. Maintenant, nous savons que quatre est un, est un flotteur, donc nous pouvons deviner à un flotteur. Mais disons que notre valeur égale le destin ou essayer de, essayez de deviner cela à un flotteur. Ça ne va pas marcher. Impossible de convertir la chaîne en test flottant car ce n'est pas un, ce n'est pas un nombre, cela ne va pas fonctionner. Donc ce que nous faisons ici, comme nous le devinons à flot, mais disons que notre valeur n'est pas, elle ne peut pas être convertie en flottant. C' est, ça va planter notre programme. Donc c'est quelque chose dont vous devez vous méfier. Maintenant, nous savons que tout va être des chiffres ou tout va bien. Mais gardez ça à l'esprit. Que vous ne devriez pas simplement tout
lancer imprudemment pour flotter parce que cela pourrait ne pas toujours fonctionner. Mais dans notre exemple, cela va toujours marcher. Alors faisons ça et nous voyons que nos barres sont de la bonne taille. Maintenant, une autre chose à noter est que ce genre de
ressemble à une onde sonore ou quelque chose qui n'est pas vraiment ce que nous voulons. Nous voulons qu'ils soient tous à plat sur le sol. Donc, vous allez devoir les déplacer individuellement. Et comme vous pouvez le voir, il l'écaille à partir du centre. Donc, la moitié de la, la
moitié de celui-ci va être inférieur à 0,5 de celui-ci va être au-dessus de 0. Donc, en gros, ce qu'il faut faire, c'est qu'il suffit de le déplacer jusqu'à la moitié de la hauteur. Donc, cette valeur est une hauteur, les changements aux TIC. Donc ce serait la hauteur et alors ce serait la hauteur divisée par deux. Donc, si vous deviez exécuter ça, nous pouvons voir que tout est aligné correctement. Nous n'avons pas comme une requête que vous voulez, laissez-moi peut-être qu'elle dans ce, dans les données, j'ai changé ça à 19. C'est les professeurs en arrière. Donc ça a l'air un peu mieux. Et voilà. Maintenant, j'ai un graphique à barres qu'il y a un graphique à barres 3D réel, pas comme les imposteurs de mots de quelqu'un essayant d'atteindre. Donc, vous pouvez construire en plus de cela, bien sûr, vous pouvez également utiliser cette lecture des données d' un fichier texte et créer un paysage urbain ou quelque chose en arrière-plan pour obtenir, juste obtenir quelques chiffres et ensuite obtenir quelques bâtiments. Mais pour l'instant, ce n'est qu'un graphique à barres. Il ne dit pas grand-chose. Nous pouvons peut-être ajouter un peu d'étiquetage ou d'autres choses que les enfants font de façon à configurer cela dans notre dictionnaire. On sait vraiment ce qu'est notre label, pas vrai ? Donc, nous pourrions aussi bien utiliser ceci, imprimer ceci, ou réellement stocker ceci. Donc, ça marche. Donc on pourrait peut-être l'avoir comme s'allonger sur le sol ici. Alors peut-être essayer ça.
19. Ajouter des étiquettes: Bon, maintenant qu'on a accès à notre étiquette ici, alors peut-être laissez-moi l'imprimer rapidement et m'assurer que c'est exactement ce que nous voulions être. Donc, ce n'est qu'un jour. Mettons cela en fait dans notre 3D aussi. Donc on ne veut pas juste avoir à regarder dans notre console, non ? Alors c'est ce que c'est. N'importe quelle 3D. Peut-être qu'on devrait créer du texte pour ça. Je pense que c'est la meilleure façon de le représenter. Donc ne me fait pas faire cela manuellement d'abord pour m'assurer comment cela fonctionnerait. D' accord ? Alors qu'est-ce qu'on a fait ? Nous l'ajoutons. Nous avons supprimé, puis nous sommes retournés. D' accord, donc ça veut dire utiliser des données. En fait, je vais juste mettre ça ici aussi. Donc, c'est pour le bar. Et puis on étiquettera la barre ici. Comme notre label est ceci. Vous voulez ajouter du texte. Donc la même chose, ça ressemble un peu, non ? Donc, au lieu de cube primitif à ce sera decks ajouter,
entrer, le mode d'édition est égal à false. Je pense que nous voulons que cela se produise. Notre emplacement peut être le même que le cube r. Nous ne pouvons pas compenser cela et les œufs. Donc, ce est décalé par 1.2 devrait être statique parce que nous savons que le sont en fait pas. Donc nous savons que c'est un, donc cette taille est une. Et nous pouvons voir les lignes déjà sur le centre. Donc nous n'avons pas à le faire d'ici 1.2. On peut le faire par 0,6. Donc, cette distance d'ici à ici sera de 0.05. et nous aimerions juste un peu plus loin. Alors faisons ça. Voyons peut-être déjà à quoi ça ressemble. Donc nous devrions avoir un tas de textos ici. Et nous devrions le repousser un peu sur le, sur le y. parce que je vois déjà l'aligne aussi bien. Pourtant, l'aligne déjà comme ça. Mais notre Q allait dans les deux sens. Si nous devions faire cela devrait paraître un peu mieux. Nous continuons à passer en mode édition, ce qui est normal parce que c'est ce que nous lui disons de faire. Donc, nous allons maintenant en fait déjà édité. Donc, d'abord, nous allons devoir nous débarrasser du texte qui est là. Donc on va juste faire ça. Maintenant, une chose que nous devons faire ici est au lieu de précédent
ou de sélection, ou il va devoir changer cela en mot précédent. Parce que nous, nous pourrions aussi juste faire ça cinq fois comme nous l'avons fait ici est pressé backspace cinq fois B. De
cette façon, nous allons en fait juste enlever tout le monde, supprime tout mot parce qu'un peu plus facile. Et puis nous allons réellement insérer nos textes que nous voulons. Donc, le texte insérer du texte rappelle tôt. Donc on veut que je suis désolé, mec, ouvert. Le golf tout le temps a vraiment ennuyeux. Et on va essayer de ne plus le faire. Mais nous sommes donc en train de configurer notre étiquette et le texte et ensuite nous voulons juste sortir du mode édition. Laisse-moi copier ça. Oh, désolé, nous sommes prêts pour le prochain. Donc, ce que nous faisons maintenant, c'est de chercher notre étiquette. Ici, nous créons un peu de texte. Nous nous débarrassons de la, l'exemple de texte. Donc, c'est une pile. On ne veut pas ça. Nous saisissons le texte de notre étiquette que nous voulons. Donc notre journée Et je vais juste revenir au mode deux LLC. Donc si on fait ça, on peut voir qu'on a notre journée. Ça a l'air bien. Peut-être une chose qu'on pourrait faire, parce que c'est juste maintenant plat. Il y a un extraverti, peut-être que c'est comme un biseau ou quelque chose comme ça. Objet si complexe qui va être des données de point d'objet en cours. Mais pour posséder le 0.01. Voyez à quoi ça ressemble. Et maintenant, nous avons un peu d'épaisseur au moins. Donc si on compare, si on ne fait pas ça, c'est plat, fais-le. On a un Robin, c'est assez mince. à l'échelle sur Z. Si sec que peut-être c'est déjà, mais je pense que c'est bien parce que ça semble beaucoup mieux avec l'ombrage parce que l'air est comme la géométrie réelle parce que c'est juste, Eh bien, c'est déjà avec le biseau, mais c'est assez plat. Avec cela, nous avons un peu plus tridimensionnel. Je dirais que
c' est juste une préférence personnelle, non ? Je vais le mettre à l'échelle de deux, juste le rendre deux fois plus épais qu'il devrait l'être comme avant. Donc on peut l'avoir comme ça. Exagérer pour vous montrer, elle est fondamentalement l'épaisseur. Ok. Je vais mettre ceci dans la variable aussi pour le rendre joli afin que nous n'ayons pas tous ces nombres magiques. En fait, je suis un couple d'entre eux. Donc notre épaisseur a réglé ça pour laisser ce gars ici niveau qui serait 0.01. Nous avons aussi un texte qui sera 0.6. Donc, je suis en train de traduire toutes ces valeurs, variables. Donc, quand nous lisons ceci, ce ne sont pas seulement des nombres magiques et nous pouvons avoir cet emplacement centralisé où nous ajustons ces valeurs. Donc il n'y en a plus. Je veux dire, c'était 0,05, c'est parce qu'on en a un ici. Je veux dire, je peux laisser ça dedans. Donc, je prends maintenant, nous allons, vous voulez généralement juste éviter d'avoir des nombres dans votre, dans ces belles fonctions. Vous voulez juste que ce soit x parce que alors vous devez toujours aller chercher où ces valeurs sont dans IA, c'est notre y définir l'épaisseur. Donc je dois regarder la valeur zed ici. Maintenant, vous pouvez simplement l'appeler x épaisseur. Boom, pour le changer juste là. C' est beaucoup plus pratique. Ok, donc maintenant nous avons un étiquetage soudain en cours. Cela a déjà l'air assez sympa. Peut-être que nous pouvons avoir un étiquetage sur le, sur l'axe zed aussi.
21. Étiquetage des ticks: D' accord, donc nous avons notre silicium épais, d'accord, le remplaçant donne un peu plus de sens aux données, mais pas vraiment beaucoup. C' est juste un truc visuel. Donc maintenant, nous allons réellement ajouter nos informations supplémentaires ici aussi. Donc, nous allons mettre le nombre ou les tiques sont à côté de, à prendre afin qu'ils disent un peu plus et puis utiliser où le. Donc pour ça, on va faire la même chose qu'avec notre étiquetage ici. Donc on va juste mettre un peu de texte sur une ligne qui est appropriée, s'
assurer que cette position est correcte. Ouais, alors comment allons-nous faire, c'est juste copier ça et ensuite juste changer les valeurs. Alors peut-être l'emplacement qu'ils peuvent manquer et la taille est en fait très bien. Donc, je ne vais pas m'embêter avec tout ça ici. La taxe réelle va être différente à un autre endroit, bien sûr. Donc, pour commencer, je peux copier l'emplacement de notre queue. J' ai juste mis ça ici. Et puis le texte que je vais juste faire 0 pour l'instant juste comme un mannequin pour voir comment cela fonctionne. Et nous pouvons déjà voir nos textes comme étant positionnés à peu près au bon endroit. Eh bien, au moins il remuer il correspond à un épais, mais il n'est pas vraiment aligné correctement. Donc on va devoir pousser un peu ça. Dans notre emplacement zed valeur, ou la valeur actuelle va devoir être un peu plus grande. Ici, nous allons devoir passer par l'épaisseur épaisse divisée par deux afin de le mettre sur le dessus. Et puis notre nombre réel a
aussi de l'épaisseur ou vous allez devoir l'ajouter aussi. Donc, ce sera notre biseau qui fois l'épaisseur r. Alors faisons ça aussi. Et donc vous voulez être assez grand, donc c'est peut-être créer une variable pour cela. Donc, le nombre, pas sûr que ce soit un bon moyen. Nombre parce qu'ils ne devraient pas regarder pour définir x est, appelons-le comme pour l'instant. Nous serons donc ici aussi. Juste pour que ça marche. Il fera tous nos calculs ici. Donc, nous allons prendre la valeur actuelle, qui est le milieu de ce bloc, va ajouter l'épaisseur épaisse. Donc la moitié de cela est pris est pensé à lui. Et puis nous allons également ajouter notre bataille que si je peux trouver ce niveau de profondeur fois textes épaisseur que K ici. Et c'est une bouchée juste pour s'assurer qu'elle est alignée. Laisse-moi te montrer. Et j'étais parfaitement au sommet de l'Arctique pour chaque tique. Donc, ça marche bien. Une autre chose que nous devons faire est de le faire tourner. Donc, ce sera autour de z et puis autour de Y. Donc si je devais faire notre set 90 ou 90 ou le tirer vers le haut, je pourrais juste copier ces gars ici. Donc après que tu aies fait
ça, peu importe où on a mis ça. Donc, nous voulons le faire autour, faire ça, et ensuite autour du Y. Donc, pour l'exécution, ils vont tous l'être. Debout où ils devraient être bol. Donc, nous avons déjà un certain nombre sur les tiques. Donc, ce n'est pas mal. Maintenant, nous devons juste nous assurer que c'est pour corriger un. Donc, fondamentalement, ce que nous voulons faire est que nous voulons juste mettre le, quel qu'il soit en position, c'est
comme une valeur ici. Donc, nous allons juste prendre la valeur actuelle et le mettre ici. Maintenant, cela ne va pas marcher parce que notre valeur actuelle, ça va être un flotteur. Il dit en fait qu'il doit être un nombre, mais nous avons besoin d'un type de chaîne. Donc, au lieu de dire, je vais juste aller ici et la console sera rapide à illustrer. Au lieu de dire que mon texte est égal à 40, ce qui est que vous voulez être un flotteur ou un entier à ce stade. Mais ce n'est pas un direct parce que nous avons explicitement besoin d'une chaîne. Donc, vous pouvez voir ici attendu cette chaîne. Donc, si nous regardons, notre type n'est pas une chaîne, donc c'est faux. Et si nous devions le faire et ensuite taper, obtenir le type, nous verrions que c'est une chaîne, donc tout ce qui est entre les guillemets va toujours être de type chaîne. C' est important à noter. Donc, eh bien, nous ne pouvons pas simplement saisir des guillemets autour de cela parce que sa valeur actuelle fait référence à la valeur. Si vous deviez le faire, nous verrions juste le mot valeur actuelle ici parce que nous ne voulons pas le faire, n'est-ce pas ? Donc, vous voulez réellement deviner la valeur qui est à l'intérieur de la valeur actuelle de la variable. Nous voulons l'afficher comme suit. Donc, une façon de le faire est de SDR, puis la valeur. Donc, si je devais mettre x ou disons que la valeur
actuelle est égale à 40 est 0,02 mature, c'est un flotteur. Et puis nous tapons où vous obtenez le type de valeur. Donc ça va être flottant. Droit ? Maintenant, si vous deviez le lancer à une corde, vous pouvez voir que les cultures vont être enroulées autour d'elle. On n'a pas à faire ça, on doit juste écrire ça. Et réassignons en fait à sa valeur actuelle est égale à la représentation de chaîne. Et puis si vous deviez taper, donc nous pouvons voir que c'est une chaîne maintenant. Donc les supports STR, tout comme nous l'avons fait avec le flotteur, un peu plus haut. Donc, chaque invité, quoi qu'il soit à l'intérieur, à une valeur à virgule flottante, nous allons faire la même chose à une chaîne. Donc, nous allons juste le lancer à une corde. Et si nous devions le faire, nous y arriverions. Ils le sont. Maintenant, l'alignement est toujours un peu désactivé, donc vous pouvez voir qu'il est effectivement aligné vers la gauche. Vous voudrez l'aligner vers la droite. Donc on peut juste obtenir, obtenir la, la taille de ça. Il s'agit donc maintenant de trois caractères et c'est quatre caractères. Donc, le décalage va être un peu différent. Donc, ajoutons réellement une variable ici et c'est une valeur en tant que chaîne ou stockage SSD là. Parce qu'une chose supplémentaire que nous pouvons faire maintenant, si nous revenons ici, démarrer la valeur actuelle est ici de type chaîne. Et maintenant, nous pouvons réellement interroger pour allonger. Donc la longueur sera de quatre. Cela signifie qu'il y avait quatre caractères dans le courant et le district. Donc, un 1234, il peut même obtenir l'indice de u1. Donc la valeur actuelle 0, cela a un rapport. Le premier indice sera de 0,23 et on se verra l'année prochaine. Cela a quatre caractères à interroger. Cela ne fonctionnera pas parce que l'index n'existe pas, parce qu'il n'y en a que quatre et nous commençons à 0, donc c'est 0 ou un à trois. Donc, hors du chemin, nous avons quelques caractères et nous voulons fondamentalement le compenser en conséquence. Donc ici, chaque ensemble est épais offset, nous voulons soit ajouter ou nous voulons y ajouter,
mais nous ne voulons pas toujours ajouter le même montant. Donc, ce que nous voulons faire ici, c'est que nous voulons ajouter la longueur de notre valeur actuelle fois une certaine lettre avec variable. Attribuons donc cette largeur d'une lettre. Et je vais estimer que c'est un. Et voyons ce que nous obtenons. Maintenant. Pas ce que tu veux. C' est donc la seule raison. Donc je pense que c'est un peu trop. Et cela pourrait être négatif parce que vous allez dans la direction opposée. Alors regardons ce que nous avons maintenant. Ouais, ce n'est certainement pas un feu de bande encore leur ego. Donc, parce que nous utilisons juste une taille par défaut de ce texte, nous pouvons juste, il va être un, donc nous pouvons en prendre la moitié et ce sera la taille de la lettre unique. Donc, ça a l'air bien. Et allons-y peut-être. Donc, c'est maintenant une ligne à droite. Et c'est peut-être juste pour cocher en face. Pour être. Je vais toujours l'être, je me suis dit qu'ils vont être relatifs à l'animal de compagnie. Donc, fondamentalement, ce que nous voulons faire est d'aller assis divisé par deux, séparés, un peu moins loin. Ce n'est pas Bertier que ça. Donc oui, il y a juste des préférences personnelles. Encore une fois, je cherche juste où mettre ça. Peut-être que je veux en faire un peu plus. C' est donc un décalage supplémentaire. Donc, c'est un numéro. Faisons cette 0,1. Et puis ça, ça ici. Jetons un coup d'oeil, un peu plus grand pour nous assurer que c'est comme ça que vous voulez que ce soit. Et vous pouvez jouer avec cette position. Bien sûr, c'est juste une préférence personnelle. Je vous montre juste comment vous pouvez le faire vivre et comment vous pouvez obtenir les valeurs et où vous les mettez exactement. Peu importe que ça peut même le rendre un peu plus petit. Si disons que tu étais comme une meute, il pourrait y avoir un petit cochon. Et maintenant, voyons s'ils s'adaptent correctement. Nous allons donc ramener nos données rapidement pour y naviguer. Ok, donc tutoriel TXT. Abaissez ce à nouveau à neuf. Voyons voir. Maintenant, nous avons quelque chose comme ça. Vous le ferez aussi, parce que maintenant il pourrait être un peu stupide d'avoir 0 partout dans un entier, mais alors vous perdez une certaine précision, bien sûr. Donc, c'est un, certaines choses que vous devez prendre en compte. Mettons 39 rapidement pour voir comment cela se comporte. Nous allons toujours un sur la configuration actuelle. Alors assure-toi que tu aimes ça. D' habitude, je le fais. Ça n'a pas beaucoup d'importance. L' essentiel est que cela fonctionne. Ça ne devrait pas arriver. Mais maintenant, nous avons quelques problèmes d'arrondi alors qu'il est arrondi par défaut, donc par mixeur, mais nos nombres sont beaucoup trop longs maintenant nous ne voulons pas afficher cela, pourrait l'apprécier. Donc, prenons cela en compte aussi. Donc, les alignements fonctionnent toujours. Donc c'est plutôt cool. Donc, il va toujours être aligné à droite. Donc R, S les travaux. Mais finissons ça. Donc, notre valeur en tant que chaîne va se produire valeur mais arrondie. Donc, prenons deux valeurs après la virgule pour le bon autour de lui point. D' accord. Peut-être rapidement pour illustrer ciseaux, fonction
ronde et mélangeur. Ainsi, vous pouvez juste arrondir n'importe quel flotteur jusqu'à n'importe quelle précision. Donc, si je devais avoir un nombre qui est 0.0.0 est cinq, et cela diviserait un nombre. Peut-être que c'est un mauvais numéro. Le nombre est égal à 15, quelque chose. Nombre. Je pourrais arrondir ce nombre jusqu'à ce qu'une valeur derrière la virgule j'obtienne ceci. Serait en fait assez intelligent pour arrondir cela parce que la valeur suivante est un neuf. Si ça devait être 16.128, montre-toi. Il serait six simple allé à était un, il sera 11, donc codon. Donc, c'est un peu plus sur la fonction d'arrondi. Ce n'est pas déjà deux importants. Cela fonctionne de la façon dont vous vous attendez à ce qu'il fonctionne. Donc c'est toujours sympa. Et c'est ainsi que nous pouvons ajouter plus de sens à nos données, à notre graphique.
22. Créer et aléer des matériaux: D' accord, donc on a beaucoup parlé d'objets, de mailles et de tout ça. À la fin, bien sûr encore, je veux couvrir un peu plus de terrain et je veux parler aussi des matériaux. Donc, la façon dont nous utilisons les matériaux est assez, assez similaire à la façon dont nous utilisons les objets. Alors peut-être que je vais juste l'illustrer avec un rapide. Vous pouvez simplement créer un nouveau matériau et voir à quoi cela ressemble. Cbp, pourquoi ne pas upstart matériel dot nu. Donc le matériel de départ qui savait, ok, c'est un peu différent. Mais si nous devions écrire ceci, cela fonctionnerait de la même manière. Alors créons un matériau à la fin maintenant. Et nous verrons qu'ils en ont 10, ont
en fait quelques matériaux. Ils vont déjà courir ça quelques fois. Donc, vous voyez chaque fois que vous exécutez ceci, un nouveau matériau est un peu créé. Mais les vieux Walden y seront aussi. Alors peut-être qu'on s'en débarrasse rapidement. Nous allons le faire de la même manière que nous nous débarrassons de nos objets. Alors peut-être que je vais faire une pause pour un peu, un peu. Je veux dire, tu devrais mettre la vidéo en pause, trouver comment tu peux vraiment enlever tous ces matériaux. C' est très similaire à ce que nous avons fait auparavant, et c'est très similaire à ce qui est à l'écran maintenant. Alors je vais le faire. Pause si vous encore, trois contre un, allons-y. Donc, nous voulons passer en revue tous nos matériaux, saisir le matériel actuel. Donc, pour chaque matériau de nos matériaux, comme nous le faisons pour chaque objet et autres objets. Bpi points de données points matériaux parce que nous vérifions matériaux maintenant, supprimez le matériel de garantie. Si je devais exécuter ça maintenant, il n'y aura qu'un seul matériel, qui est celui-ci ici. Je ne sais pas si je peux passer un nom ici. Eh bien, en fait, comme une note de côté rapide, il est généralement une mauvaise pratique d'utiliser des points BPI. Est-ce juste quelque chose que nous allons dire et ne pas trop expliquer ? Parce qu'il y a tout un raisonnement derrière cela. Principalement le contexte et les balles
et, et il y a des trucs mixeur, des trucs d'API que je ne vais pas entrer dans. C'est ça. C' est un peu trop complexe pour la portée actuelle de ce cours. Il est principalement juste bon de se rappeler que BPO i dot est quelque chose que vous ne devriez utiliser que lorsque cela est absolument nécessaire. Donc, lorsque vous voulez créer une géométrie est utilisé pour le faire. Mais lorsque vous créez le matériau, c'est essentiellement s'il faut utiliser des données de points BPI, des matériaux de points. Et ici, je peux juste appeler ça quel que soit le nom de ses artistes pour l'instant. Et faire de cette façon est en fait un peu plus, un peu moins sujet aux erreurs. Donc, en fait, nous pouvons voir ici que c'est varie. Ou dites-vous restreint, le truc de l'UI.R. C' est les opérateurs sont tout à fait verrouillés à leur environnement, il est
donc préférable de ne pas y penser et d'utiliser simplement données de points
PPI ou tout autre appel essentiellement. Et maintenant, nous pouvons même assigner ceci à une variable et nous pouvons l'imprimer juste pour vérifier à quoi cela ressemble. Donc vous pouvez voir que nous avons un matériel. Ça s'appelle le nom. Je peux appeler ça n'importe quel matériau. Bon, donc maintenant on sait comment créer un seul matériau. Alors faisons ça pour chaque cube. Donc, nous pouvons le faire en appuyant sur Tab et le début de la ligne, qui est, whoops, qui est que vous voulez pousser notre, notre ligne dans notre boucle for. Donc, encore une fois, tout
ce qui est à ce niveau d'indentation va être bouclé sur x quantité de fois. Donc, cette ligne va maintenant être exécutée à 100 fois. Donc, si je lance ceci et voir que nous avons un 100 matériaux, le nom est statique, mais il ajoute juste ce point 048 ou point, point importe quel
point, nombre de points. Derrière ça. Il y a d'autres vraiment important, le nom juste à URI ou partout où cela. Donc maintenant, essentiellement, nous avons créé un matériau que nous créons le cube. Donc, la seule chose qui nous dure assigner notre matériau cube 3D. Donc, nous pouvons le faire en faisant un objet de contexte de point BPI, qui est actuellement des objets actifs avec lesquels est notre R cube que vous venez d'ajouter, nous pouvons accéder aux matériaux de données de cet objet, et ensuite nous pouvons simplement ajouter notre matériel actuel à elle. Donc, nous pouvons voir maintenant essentiellement le contexte de point BPI des objets points de données des matériaux, qui est un, assez une bouche, référence à cela ici à nos matériaux. Et en cliquant sur ce bouton, nous y ajoutons. Donc, il est en fait en créer un nouveau, puis l'assigner directement déjà de cette façon, le
créant et ensuite nous l'ajoutons à l'objet actuel. Donc, l'objet actuellement actif, l'actif, l'objet et il vient d'être créé par cette fonction. Donc, si vous deviez faire cela, nous verrions que chaque cube maintenant en tant que matériau, C cube 017, c'est matériel 017, et ainsi de suite. Donc, c'est déjà cool, mais tous les matériaux sont toujours les mêmes. Donc le pouvoir d'aller à l'éditeur de shader. Equilibrium, même pas en utilisant des notes sont affichés ici. Mais oui, ils ont tous la même apparence. Et nous n'avons même pas besoin d'utiliser des nœuds pour que ce ne soit pas le même. Donc une chose que nous pourrions faire est un matériau qui diffuse la couleur égale. Rendons-le rouge pour l'instant. Voyez simplement si cela fonctionne ou non. Besoin réduit. Donc ce serait notre G donc si nous nous inquiétons aussi, je vais diriger ça. Donc, fondamentalement ce que nous définissons comme couleur de base. Ainsi, comme vous pouvez le voir sur la, sur la pointe de l'outil, il est dit point couleur diffuse. Et ici vous pouvez voir f, r, g, b, a. Donc 1001. Nous ne voulons pas qu'ils soient tous lus. Bien sûr, nous voulons qu'ils soient tous aléatoires. Donc, nous pouvons utiliser notre fonction aléatoire comme nous avons ici pour obtenir un nombre aléatoire entre 01. Et ça. Nous voulons le faire pour chaque canal. Donc on voulait ça pour le rouge, le vert et le bleu. Je te suivrai, ça va toujours en avoir un. Il va toujours être complètement transparent ou opaque comme le mot transparent pour l'autre gars. Donc, en faisant cela, nous générons essentiellement une couleur aléatoire. Donc, je les ai courus couleur pour chaque cube, ou en assignant cette couleur à travers le nouveau matériau que nous avons créé pour chaque q. Et puis nous assignons le matériau avec une couleur aléatoire à lui, un cube.
23. Rassembler des couleurs contrôlées: D' accord, donc nous avons nos couleurs aléatoires assignées à nos cubes aléatoires. Si je devais exécuter ceci quelques fois de plus, vous verrez que tous ces cubes ont maintenant des couleurs individuelles. Donc, certains ressemblent, mais ils sont tous uniques. Je veux dire, il y a peut-être un double qu'il y a un millier de cubes. Supposons que pour chaque cube nous sommes en fait randomisés. Donc, pour chaque Q va obtenir un matériau unique. Mais disons que nous voulions prendre un peu plus de contrôle et que nous voulons non seulement avoir un 100 couleurs aléatoires, mais disons que nous voulons avoir comme dix couleurs aléatoires. Donc, ce que nous pourrions faire est que la quantité de couleurs est égale à dix. Et puis de la même manière que recréer nos cubes Android, vous pouvez créer un 100 matériaux. Donc, pour i dans la gamme d'une couleur de montagne, nous pouvons faire notre création matérielle ou randomisation. Et puis cette assignation, ça ne va pas marcher. Ce point parce que nous n'avons pas encore nos files d'attente. Mais pour l'instant, copions ceci ici. Donc, nous allons faire est que nous allons créer X quantité de matériaux et ensuite nous allons randomiser leurs couleurs. Alors maintenant, il s'use. Débarrassez-vous de ça. Donc nous n'allons plus créer de matériau pour chaque cube. Il y avait encore à affecter du matériel au cube actuel. Donc c'est que ça peut encore rester. Mais les références matérielles et notre cassé parce qu'il
n'y a pas accès à ces matériaux ici. Alors peut-être gardons une trace de nos matériaux en créant une liste vide en haut. Et puis en ajoutant notre matériel à travers cette liste. Donc, ce que nous avons fait ici, c'est que nous avons créé notre matériel. Mais cette ligne, nous avons randomisé et ensuite nous l'avons ajoutée à cette collection de matériaux. C' est là que réinitialiser cette collection. Donc, nous avons juste une collection vide et une liste vide de matériaux. Et alors que nous passons à travers notre liste, que nous créons ces matériaux remplissent notre collection. Donc à la fin, si je devais imprimer nos documents et je vais faire ça. Je vais juste la console de développement thermique à la craie et ça continue de disparaître. Nous allons voir maintenant nous avons une collection de matériel. Les objets sont BPO, matériaux de point de queue adulte, matériel dopé. Et c'est en fait un objet matériel et vous pouvez voir qu'
il s' agit d'une collection d'objets matériels. Donc c'est ce qu'on veut, non ? Il y a une référence du matériel gardé dans la mémoire parce que c'est aussi appelé le matériel. Mais je le suis, donc c'est pour ça qu'on voit une couleur et ça ne s'écrase pas. Si je devais appeler ça autre chose, ça se cassera. Mais laissons-le pour l'instant. Donc, fondamentalement, nous voulons juste retirer n'importe quel matériel de notre collection. Donc, ce que nous pourrions faire, il attraperait rapidement notre console à nouveau que vous utilisez la fonction aléatoire. Donc uniforme de points aléatoires, eh bien en fait nous sommes connectés, je veux utiliser l'uniforme de points aléatoires. On va utiliser autre chose. Parce que comme nous l'avons vu, trois points aléatoires doubles uniformes entre 010 parce que nous avons, nous avons dix couleurs. Donc, en fait, ce que nous ferions avec un mois de couleurs est égal à dix, juste un peu assurez-vous que nous avons le même, même look que nous allons d'ici à la quantité de couleurs. Mais comme vous le voyez ici, nous continuons à obtenir ces chiffres à virgule flottante. Le beurre uniforme de points aléatoires est un nombre à virgule flottante trois, nous faisons l'uniforme de points aléatoires. Vous verrez des méthodes d'instance aléatoire, aléatoire obtenir un nombre aléatoire dans la plage de a ou B en fonction de l'arrondissement. Eh bien, ça ne dit pas explicitement que c'est des flotteurs, mais on peut le dire, non ? Donc nous pouvons, nous pouvons déboguer ou de bons programmeurs. Donc, regardons en fait ce que randomize offrir. Outre l'uniforme de point aléatoire fait un tas de fonctions ici. n'est pas une chose que vous pourriez faire, c'est juste Google. C' est comme un entier aléatoire entre une coupole, quelques limites, mais faisons-le. Blender er pour l'instant, juste hardcore. Je peux déjà voir le loyer int va probablement être un bon. Plage aléatoire. Allons chercher de l'aide. Je voulais ces points aléatoires. Portée. Choisit un élément aléatoire à partir d'arranger, de démarrer, d'arrêter. Cela corrige le programmeur à louer, qui inclut le point de terminaison. Donc, en Python, ce n'est généralement pas ce que nous voulons et c'est en fait ici. C' est aussi un plus. Nous ne voulons donc pas inclure les points de terminaison. Donc, si je devais obtenir une plage de points aléatoires entre 0 et la quantité de couleurs, nous obtiendrions un entier. Et maintenant cela ne devrait jamais revenir. Ensuite, parce que nous voyons ici neuf, cela devrait en fait être la valeur la plus élevée que cela renvoie. Alors faisons ça quelques fois et veillons à ce qu'on n'
obtienne jamais rien au-dessus de la nuit. Comme si on n'avait jamais dix. Je ne devrais pas parce que nous lisons l'aide, mais c'est toujours bon de vérifier et d'être sûr. Parce que comme nous le savons, une liste, comme ce matériel ici, utilise l'indexation et l'indexation commence à 0. Donc, lorsque nous avons dix éléments dans la liste, le dernier élément sera accessible par le neuvième index. Donc si cela n'a pas de sens, nous avons l'indice 0, l'indice 123456789. Si nous regardons ici, nous avons dix articles. Nous avons donc 12345678910 articles. Mais c'est quelque chose que vous devez vraiment garder à l'esprit lorsque vous travaillez avec des listes est que vous devez toujours commencer à partir de 0. C' est juste quelque chose que tu dois vraiment te rappeler. Donc, cela fonctionne des rendus aléatoires. Donc vous avez écrit deux quantités de couleurs. Donc maintenant, au lieu de simplement prendre le dernier matériel que nous avons ici, nous pouvons simplement aller interroger certains index de notre collection de matériaux. Donc, nous allons obtenir une prise de notre collection de matériaux et ensuite nous allons essentiellement interroger un index aléatoire. Donc, ce sera un index aléatoire qui sera utilisé pour rechercher une valeur dans la liste des matériaux. Et cela retournera juste un matériau aléatoire. Donc, si nous devions exécuter ceci, vous obtiendrez alors des matériaux aléatoires qui devraient être tout à fait également distribués. Peut-être que nous allons faire comme les matériaux pour le rendre un peu plus évident. Et je vois qu'on n'a qu'à compter comme ça. Vous pouvez prendre encore plus de contrôle sur notre randomisation. n'est donc pas tout à fait aléatoire.