Blender>使用Python向灯光添加节点

2024-09-30 02:28:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我不熟悉Python和Blender脚本。“从控制台复制”方法到目前为止一直对我有效,但我遇到了麻烦

我已经为Blender 2.8制作了一个附加组件,可以在场景中添加并定位三个区域灯光。我想为每个灯光添加一个黑体转换器,将该值设置为5000,并将其连接到发射着色器,但我一直会在以下方面出错:

AttributeError: 'AreaLight' object has no attribute 'add_node'

我尝试过的每一种路径变化

以下是我使用的每个灯光的基本脚本:

import bpy

bpy.ops.object.light_add(type='AREA', radius=10, location=(5, 1.5, 5))
bpy.context.active_object.data.use_nodes = True
bpy.context.active_object.data.node.add_node(type="ShaderNodeBlackbody", use_transform=True)
bpy.context.active_object.name = "Area_Right"
bpy.context.active_object.data.shape = 'RECTANGLE'
bpy.context.active_object.data.energy = 300
bpy.context.active_object.data.size = 1
bpy.context.active_object.data.size_y = 3

bpy.context.active_object.data.node.add_node(type="ShaderNodeBlackbody", use_transform=True)

这条线在过去几周一直阻挡着我

有人有什么建议吗


Tags: 脚本addnodetruedataobjectusetype
1条回答
网友
1楼 · 发布于 2024-09-30 02:28:00

所以我找到了解决办法,当然!课程我用谷歌搜索不到20分钟。🤦🏻‍♀️

以下是解决方案:

light   = bpy.context.active_object.data
nodes   = light.node_tree.nodes
node_bb = nodes.new(type="ShaderNodeBlackbody")
node_bb.inputs[0].default_value = 5000
node_bb.location = -200,300
node_ox = nodes.get('Emission')
links   = light.node_tree.links
link    = links.new(node_bb.outputs[0], node_ox.inputs[0])`

我调整了这两篇文章中的代码:

Control Cycles material nodes and material properties in Python

Add Nodes to Material with Python

如果您想使用该脚本,或者查看它并提出改进建议,我已将插件的1.2版发布到Github:

Blender QLE

相关问题 更多 >

    热门问题