Wo befindet sich der Alpha Convert Node in Python?

Aug 19 2020

Ich möchte nicht, dass mein Alpha beim Speichern von Bildern vorvervielfacht wird. Im Mixer können Sie den Compositor Alpha Convert Node verwenden , um von Premultiplied zu Straight zu konvertieren. Ich kann diesen Knoten anscheinend nicht in der Python-API finden .

Antworten

3 brockmann Aug 19 2020 at 20:13

CompositorNodePremulKey

Eine vollständige Liste der verfügbaren Compositor-Knotentypen finden Sie hier:https://docs.blender.org/api/current/bpy.types.CompositorNode.html.

alpha_convert = tree.nodes.new(type='CompositorNodePremulKey')
alpha_convert.mapping = 'PREMUL_TO_STRAIGHT'

Manchmal ist es jedoch ziemlich schwierig herauszufinden, da die Namen nicht wirklich übereinstimmen. Ich würde vorschlagen, den Knoten im Compositor von Hand zu erstellen und typeauf die Konsole zu drucken , um eine Vorstellung zu bekommen:

import bpy

class NodeOperator(bpy.types.Operator):
    """Tooltip"""
    bl_idname = "node.simple_operator"
    bl_label = "Simple Node Operator"

    @classmethod
    def poll(cls, context):
        space = context.space_data
        return space.type == 'NODE_EDITOR'

    def execute(self, context):
        space = context.space_data
        node_tree = space.node_tree
        node_active = context.active_node
        
        print (node_active.type)
        return {'FINISHED'}

def register():
    bpy.utils.register_class(NodeOperator)

def unregister():
    bpy.utils.unregister_class(NodeOperator)

if __name__ == "__main__":
    register()

Oder verwenden Sie ein Node.bl_rnaAttribut, das die tatsächliche Struktur zurückgibt (um den Namen zu kopieren):

>>> node_active.bl_rna
<bpy_struct, Struct("CompositorNodePremulKey")>

Verwandte: Steuerung des Compositors durch Python