[Blender x Python] Maîtrisons le matériel !!

table des matières

  1. Comment ajouter du matériel
  2. Faisons un matériau en verre !!
  3. Faisons du métal !!
  4. Ajoutez du texte !!
  5. Mots anglais

0. Comment ajouter du matériel

0-1. Procédure d'ajout de matériaux

① Créer un nouveau matériau ② Rendre le nœud utilisable ③ Ajouter un objet ④ Définissez la valeur du nœud ⑤ Appliquer le matériau à l'objet

0-2. Contenu du BSDF de principe

◯ Chaque élément du nœud reçoit un numéro dans l'ordre de 0. Cette fois, je vais expliquer en utilisant BSDF Principled.

Base Color→0 Subsurface→1 : Metallic→4 : Roughness→7 : Transmission→15

Ça ressemble à ça.

スクリーンショット 2020-11-13 19.19.02.png

◯ Utilisez ceci pour spécifier comme nœuds ["BSDF Principe"]. Entrées [0].

1. Faisons un matériau en verre !!

◯ Un programme pour faire un simple verre ico_sphere

import bpy

#Créer un nouveau matériau
material_glass = bpy.data.materials.new('Green')
#Rendre le nœud disponible
material_glass.use_nodes = True
#Ajouter un objet
bpy.ops.mesh.primitive_ico_sphere_add(subdivisions=1, enter_editmode=False, align='WORLD', location=(0, 0, 0), scale=(1, 1, 1))

#Définir la valeur du nœud
#Variable p_Créer BSDF pour réduire la quantité d'écriture
p_BSDF = material_glass.node_tree.nodes["Principled BSDF"]
#0→BaseColor/7→roughness(=Rugosité)/15→transmission(=propagation)
#default_value = (R, G, B, A)
p_BSDF.inputs[0].default_value = (0, 1, 0, 1)
p_BSDF.inputs[7].default_value = 0
p_BSDF.inputs[15].default_value = 1
#Ajouter des éléments matériels à un objet
bpy.context.object.data.materials.append(material_glass)

cube02.png


◯ Un programme pour organiser des cubes de verre en trois dimensions

import bpy

for i in range(0,5):
    for j in range(0,5):
        for k in range(0,5):
            #Créer un nouveau matériau
            material_glass = bpy.data.materials.new('Red')
            #Rendre le nœud disponible
            material_glass.use_nodes = True
            bpy.ops.mesh.primitive_cube_add(
                size=0.8,
                #Déterminez la longueur, la largeur et la hauteur de chacun
                location=(i, j, k),
                )
            p_BSDF = material_glass.node_tree.nodes["Principled BSDF"]
            p_BSDF.inputs[0].default_value = (1, 0, 0, 1)
            p_BSDF.inputs[7].default_value = 0
            p_BSDF.inputs[15].default_value = 1
            bpy.context.object.data.materials.append(material_glass)

cube01.png


2. Faisons du métal !!

◯ Un programme qui arrange des ico_spehre métalliques

import bpy

#Répétez le traitement 6 fois
for i in range(0,6):
    #Créer un nouveau matériau
    material_glass = bpy.data.materials.new('Blue')
    #Rendre le nœud disponible
    material_glass.use_nodes = True
    #ico_Fonction pour ajouter une sphère
    bpy.ops.mesh.primitive_ico_sphere_add(
        #Rendez-le plus lisse et plus lisse
        subdivisions=i+1,
        location=(i, 0, 0),
        scale=(0.7, 0.7, 0.7)
        )
    p_BSDF = material_glass.node_tree.nodes["Principled BSDF"]
    #0→BaseColor/4→Metallic(=métal)/7→roughness(=Rugosité)
    p_BSDF.inputs[0].default_value = (0, 0, 1, 0.5)
    p_BSDF.inputs[4].default_value = 1
    p_BSDF.inputs[7].default_value = 0
    #Ajouter des éléments matériels à un objet
    bpy.context.object.data.materials.append(material_glass)

cube03.png


◯ Un programme qui change les couleurs petit à petit

La couleur peut être changée petit à petit en remplaçant i, qui change chaque fois que le processus est répété, par la couleur.

import bpy
import math
import random

for i in range(0,10):
    #Attribuer une valeur aléatoire de 0 à 1 à la variable num
    num = random.random()
    
    material_glass = bpy.data.materials.new('Blue')
    material_glass.use_nodes = True
    bpy.ops.mesh.primitive_torus_add(
        #180(À chaque fois)×0~Valeur aléatoire de 1
        rotation=(math.pi * num, math.pi * num, 0),
        major_segments=64,
        minor_segments=3,
        major_radius=10-i,
        minor_radius=0.1,
         )
    p_BSDF = material_glass.node_tree.nodes["Principled BSDF"]
    p_BSDF.inputs[4].default_value = 1
    p_BSDF.inputs[7].default_value = 0
    p_BSDF.inputs[0].default_value = (0, 0, 1 - i/10, 1)
    bpy.context.object.data.materials.append(material_glass)

e.png


3. Ajoutez du texte !!

3-1. Comment ajouter du texte

◯ Saisissez un texte simple.

import bpy

#Ajouter du texte pour permettre l'édition en mode édition
bpy.ops.object.text_add(enter_editmode = True,location = (0,0,0))
#Supprimer le texte initial
bpy.ops.font.delete(type = 'PREVIOUS_WORD')
#Entrez du texte
bpy.ops.font.text_insert(text = 'Blender')
#Quitter le mode d'édition
bpy.ops.object.editmode_toggle()

スクリーンショット 2020-11-13 20.14.23.png


3-1. Créer un texte métallique

◯ Combinez un matériau métallique avec du texte.

import bpy

material_glass = bpy.data.materials.new('Blue')
#Rendre le nœud disponible
material_glass.use_nodes = True

#Ajouter du texte pour permettre l'édition en mode édition
bpy.ops.object.text_add(enter_editmode = True,location = (0,0,0))
#Supprimer le texte initial
bpy.ops.font.delete(type = 'PREVIOUS_WORD')
#Entrez du texte
bpy.ops.font.text_insert(text = 'Blender')
#Quitter le mode d'édition
bpy.ops.object.editmode_toggle()

#Ajustez le nœud
p_BSDF = material_glass.node_tree.nodes["Principled BSDF"]
p_BSDF.inputs[4].default_value = 1
p_BSDF.inputs[7].default_value = 0
p_BSDF.inputs[0].default_value = (0, 0, 1, 1)
bpy.context.object.data.materials.append(material_glass)

e1.png


4. Mots anglais

mots anglais Traduction
material Matériel
default Défaut/défaut
value valeur
append Ajouter
object Choses, objets
edit Éditer
type type
delete Effacer
toggle commutation
operation(ops) Opération
add ajouter à
segment Division, division
insert insérer
input Obtenir
previous Précédent, précédent
principled Principe, principe
subdivision Subdivision

Recommended Posts

[Blender x Python] Maîtrisons le matériel !!
[Blender x Python] Maîtrisons au hasard !!
[Blender x Python] Maîtrisons la rotation !!
[Blender x Python] Commençons avec Blender Python !!
[Blender x Python] Organisons une grande quantité de Susanne proprement !!
[Python] Maîtrisons tout et tout
Maîtriser le type avec Python [compatible Python 3.9]
Maîtriser le module lowref en Python
Lisons le fichier RINEX avec Python ①
Résumons le standard de codage Python PEP8 (1)
Résumons le standard de codage Python PEP8 (2)
Introduction à Python Préparons l'environnement de développement
Analysons le journal de validation git en Python!
[Python] Exécutons le module régulièrement en utilisant schedule
Extrusion Python Extrude de Blender 2.9
Obtenez le titre de la fenêtre du système X Window en Python
Excel X Python La technique de travail la plus rapide
[Algorithm x Python] Comment utiliser la liste
[Blender x Python] Pensez au code avec des symboles
Téléchargez des fichiers tout en affichant la progression dans Python 3.x
Trier en Python. Pensons ensuite à l'algorithme.
Comment connaître le répertoire actuel en Python dans Blender
Décomposons les bases du code Python de TensorFlow
J'ai vérifié les versions de Blender et Python
(◎◎) {Laissons Python faire les choses ennuyeuses) ......... (Hé? Laissons Python faire les devoirs} (゜) (゜)
Utilisons la version Python du module API Confluence.
La première étape pour obtenir Blender disponible à partir de Python
Utilisons les données ouvertes de "Mamebus" en Python
[Python] Souvenons-nous du nouveau style d'écriture après pip10
[Python] Changeons l'URL du site administrateur de Django
Trouvez le maximum de Python
Maîtrisez la notation d'inclusion
Maître de manipulation de chaînes Python
le zen de Python
mixeur, python, escalier en colimaçon
Exécutez Blender avec python
mélangeur, python, comportement de la sphère
Blender 2.8, mise à l'échelle du cube Python
Faire fonctionner Blender avec Python
[Python] Fractionner la date
Passons en revue les spécifications du langage autour des itérateurs et des générateurs Python
Maîtrisez le type avec Python? (Quand faire la vérification de type)
Touchons l'API de Netatmo Weather Station avec Python. #Python #Netatmo
Je viens d'écrire le matériel original pour l'exemple de code python