どのようにして私のPythonスクリプトは、イメージノードで現在選択されているイメージの名前のテキスト文字列を取得できますか?私は、カスタムノードラベルを使用する権利はあると思いますが、メソッドを記述するスニペットは見つかりません。Blender Compositor Imageの取得方法ノード選択されたイメージ名?
可能な場合、スクリプトは、ない任意のノードが選択された場合でも、全体的に働かなければなりません。
どのようにして私のPythonスクリプトは、イメージノードで現在選択されているイメージの名前のテキスト文字列を取得できますか?私は、カスタムノードラベルを使用する権利はあると思いますが、メソッドを記述するスニペットは見つかりません。Blender Compositor Imageの取得方法ノード選択されたイメージ名?
可能な場合、スクリプトは、ない任意のノードが選択された場合でも、全体的に働かなければなりません。
希望、これはあなたを支援します。
nodes = material_slot.material.node_tree.nodes
texture_node = nodes.get('Image Texture')
if texture_node is None:
texture_node = nodes.new(type='ShaderNodeTexImage')
#texture_node.image = image
# Get the image name
texture_name = texture_node.image.name
# Set the node name/label to image name
texture_node.name = texture_name
texture_node.label = texture_name
既存のノードを取得したいが、あなたは、複数のテクスチャノードを持っている場合、あなたはおそらくトラフすべてのノードを反復処理し、すべてのタイプのノード「TEX_IMAGE」とのセットを見つけることができます名前
編集:私はあなただけの絵を追加見ている、とあなたはテクスチャで作業していない 、その 同じ原理について申し訳ありませんが、上記のように画像のノードのために行く
かかわらず0ありがとう、それはちょうど私が必要なものです - あなたの編集で: bpy.data.scenes ['Scene']。node_tree.nodes ['Image']。image.name – maxdudik
うれしかった!私は、プログラム名でノードの名前をイメージ名に変更したいと思っていました。なぜ、どのノードをターゲットにしたいのか分かっていれば、簡単です! –
コンポジターノードはbpy.context.scene.node_tree.nodes
にあります。次にループバックして、タイプがIMAGE
であるかどうかを確認します。
import bpy
for n in bpy.context.scene.node_tree.nodes:
if n.type == 'IMAGE':
# check that there is an image selected
if n.image is not None:
print(n.image.name)
だけ選択されている画像ノードをしたい場合は、if n.select:
を追加だから、NodeTreeまたはNodeSocketの画像ノードを選択し、ファイル名を取得したいですか? –