Où est le nœud de conversion Alpha en python?

Aug 19 2020

Je ne veux pas que mon alpha soit prémultiplié lors de l'enregistrement d'images. Dans Blender, vous pouvez utiliser le compositeur Alpha Convert Node pour convertir de Premultiplied en Straight. Je n'arrive pas à trouver ce nœud dans l' API Python .

Réponses

3 brockmann Aug 19 2020 at 20:13

CompositorNodePremulKey

Vous pouvez trouver une liste complète des types de nœuds de compositeur disponibles ici:https://docs.blender.org/api/current/bpy.types.CompositorNode.html.

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

Cependant, il est parfois assez difficile à comprendre car les noms ne correspondent pas vraiment. Je suggérerais de créer le nœud dans le compositeur à la main et de l'imprimer typesur la console pour avoir une idée:

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()

Ou utilisez l' Node.bl_rnaattribut qui renvoie la structure réelle (à partir de laquelle copier le nom):

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

Connexes: Contrôle du compositeur par python