Blender 2.8, Python, éclairage Spot

Ce que j'ai essayé cette fois, c'était la spécification de l'angle d'éclairage et du mouvement. Publiez avec une vidéo d'une seconde. La vidéo est postée sur Twitter blender 2.8, vidéo python 1 seconde. Source lumineuse ponctuelle et source lumineuse ponctuelle est. La direction dans laquelle la source de lumière spot éclaire est également importante. Tous les scripts sont publiés, y compris certaines parties étranges. L'éclairage ponctuel est orienté vers le sol par défaut, c'est-à-dire dans la direction négative de l'axe z. ((0,0,0) pointe directement vers le bas.) Le nombre pour spécifier l'angle est la valeur de x en utilisant ce delta_rotation_euler = (x, y, z), la rotation autour de l'axe des x, et l'angle est l'axe des x plus de l'origine. Dans le sens des aiguilles d'une montre lorsque vous regardez. Si x est (3,14 / 2), 90 degrés est la direction plus (nord) de l'axe y. Environ 3,14 = 180 degrés à π. 360 degrés à 2π. Épluchez le ciel avec l'exemple (3.14, 0, -0). Avec la valeur y, rotation autour de l'axe y, dans le sens des aiguilles d'une montre lorsque vous regardez l'axe y plus à partir de l'origine. Dans l'exemple (0, 3.14 / 2, 0) direction x moins, c'est-à-dire direction ouest. Dans l'exemple (0, 3.14 / 4, 3.14 / 4), il est légèrement orienté vers le bas, face au sud-ouest. La compréhension de l'angle du graisseur est à moitié suspecte par axe z, mais c'est bien pour le moment. (La tâche suivante consiste à modifier l'angle d'éclairage du spot avec l'animation.) Source du script J'ai emprunté beaucoup de scripts, donc ◎ Le cube est Comment utiliser Python avec Recess Tips Blender 2.63 ... ◎ La nouvelle installation de la lampe est [stack overflow; Pouvez-vous ajouter une source de lumière dans Blender en utilisant python](https://stackoverflow.com/questions/17355617/can-you-add-a-light-source-in-blender- using-python), colonne de réponses d'onorabil. Le script cette fois est bpy_nh09. bpy_nh09sc_shot.png

import bpy
#nh09 Éclairage SPOT Move. Déplacez les coordonnées en nommant plusieurs lumières individuellement.

#Maillage existant, light, camera,Tout supprimer
for item in bpy.data.objects:
	bpy.data.objects.remove(item)

#Script original cubique---- http://tips.hecomi.com/entry/20120818/1345307205

START = 0
END   = 100
N     = 3

# Add color cubes
for x in range(0, N):
    for y in range(0, N):
        for z in range(0, N):
            # Add a color cube
            bpy.ops.mesh.primitive_cube_add( location=(x*3, y*3, z*3) )
            #obj = bpy.context.scene.objects.active #(old blender2.7script)
            obj = bpy.context.view_layer.objects.active
            #mat.diffuse_color = (x/N, y/N, z/N)#(old blender2.7script)
            mat = bpy.data.materials.new('Cube')
            mat.diffuse_color = (x/N, y/N, z/N, 0)
            #mat.use_transparency = True #(Cette ligne est 2.Pas essayé en 8)
            #mat.alpha = 0.6 #(Cette ligne est 2.Pas essayé en 8)
            obj.data.materials.append(mat)

# new camera
bpy.ops.object.add(radius=1.0, type='CAMERA', enter_editmode=False, align='WORLD', location=(20.0, -6.0, 8.0), rotation=(1.4, 0.0, 1.2))

#nouvelles lampes (débordement de la pile de sources Pouvez-vous ajouter une source de lumière dans Blender en utilisant python)
# create light datablock, set attributes
light_data = bpy.data.lights.new(name="light_2.80", type='POINT')
light_data.energy = 1000
# create new object with our light datablock
light_object = bpy.data.objects.new(name="light_2.80", object_data=light_data)
# link light object
bpy.context.collection.objects.link(light_object)
# make it active 
bpy.context.view_layer.objects.active = light_object
#change location
light_object.location = (5, -4, 10)
# update scene, if needed
dg = bpy.context.evaluated_depsgraph_get() 
dg.update()
# ============== "light_spot1"
# create light datablock, set attributes
light_data = bpy.data.lights.new(name="light_spot1", type='SPOT')
light_data.energy = 3000
# create new object with our light datablock
light_object1 = bpy.data.objects.new(name="light_spot1", object_data=light_data)
# link light object
bpy.context.collection.objects.link(light_object1)
# make it active 
bpy.context.view_layer.objects.active = light_object1
#change location
light_object1.location = (5, -5, 10)
light_object1.delta_rotation_euler = (1.2, 0, -0.3) #Regardez droit vers le bas à zéro zéro zéro.
# update scene, if needed
dg = bpy.context.evaluated_depsgraph_get() 
dg.update()
# ================

# ================
#MOVE a LIGHT mesh avec le mouvement d'éclairage KEY FRAME
bpy.context.scene.frame_start = 1
bpy.context.scene.frame_end = 30
bpy.context.scene.frame_current = 10

# make POINT  light ACTIVE 

bpy.context.scene.objects["light_spot1"].select_set(False) #spot ---- deselect
bpy.context.scene.objects["light_2.80"].select_set(True) # point ----- select

#cdnow  = bpy.context.object          # get ACTIVE object 
cdnow  = bpy.context.scene.objects["light_2.80"]    # get ACTIVE object 
# print(cdnow) #------- DDD debugging DDDD

bpy.context.scene.frame_current = 1 # set frame to 1
cdnow.location = (1,-10,1) # set the location
bpy.ops.anim.keyframe_insert_menu(type='Location') # KEY FRAME

bpy.context.scene.frame_current = 10 # set frame to 10
cdnow.location = (1,-10,8) # set the location
bpy.ops.anim.keyframe_insert_menu(type='Location') # KEY FRAME

bpy.context.scene.frame_current = 20 # set frame to 20
cdnow.location = (8,-5,8)
bpy.ops.anim.keyframe_insert_menu(type='Location') # KEY FRAME

bpy.context.scene.frame_current = 30 # set frame to 30
cdnow.location = (1,-10,1)
bpy.ops.anim.keyframe_insert_menu(type='Location') # KEY FRAME
#  ==================

# ================
#MOVE a SPOT LIGHT Mouvement de la lumière du spot
bpy.context.scene.frame_start = 1
bpy.context.scene.frame_end = 30
bpy.context.scene.frame_current = 10

# make light ACTIVE 
bpy.context.scene.objects["light_2.80"].select_set(False) # point ----- deselect
bpy.context.scene.objects["light_spot1"].select_set(True) #spot ---- select

cdnow  = bpy.context.object          # get ACTIVE object 
bpy.context.scene.frame_current = 1 # set frame to 1
cdnow.location = (5, -5, 8) # set the location
bpy.ops.anim.keyframe_insert_menu(type='Location') # KEY FRAME

bpy.context.scene.frame_current = 10 # set frame to 10
cdnow.location = (5, -5, 13) # set the location
bpy.ops.anim.keyframe_insert_menu(type='Location') # KEY FRAME

bpy.context.scene.frame_current = 20 # set frame to 20
cdnow.location = (2, -5, 13)
bpy.ops.anim.keyframe_insert_menu(type='Location') # KEY FRAME

bpy.context.scene.frame_current = 30 # set frame to 30
cdnow.location = (5, -5, 8)
bpy.ops.anim.keyframe_insert_menu(type='Location') # KEY FRAME
#  ==================

# world - surface - background (Contexte) 
bpy.data.worlds["World"].node_tree.nodes["Background"].inputs[0].default_value = (0.01, 0.15, 0.25, 1)
bpy.data.worlds["World"].node_tree.nodes["Background"].inputs[1].default_value = 0.7            
#=====

Recommended Posts

Blender 2.8, Python, éclairage Spot
Blender 2.9, test de couleur de la lumière d'arrière-plan Python
Extrusion Python Extrude de Blender 2.9
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
Bleu clair avec AtCoder @Python
Blender 2.9, Python Building, Voiture, Vidéo
mixeur, python, escalier en colimaçon, couleur
Scan spot WIFI avec Python
Blender 2.9, construction paire impaire Python
Blender 2.9, Python, spécification de couleur hexadécimale
API Blender Python dans Houdini (Python 3)
Générez 8 * 8 (64) cubes avec Blender Python
Dessinez des ondes sinusoïdales avec Blender Python
Exécutez mruby avec Python ou Blender
Installez Pytorch sur Blender 2.90 python sous Windows
Utilisez Blender comme module Python
Implémentation de Light CNN (Python Keras)
[Blender x Python] Maîtrisons au hasard !!
[Blender x Python] Maîtrisons la rotation !!
Accéder aux nœuds de shader de Blender depuis Python
Démarrez avec Python avec Blender