見出し画像

【b3d_mkn】ちょっとだけ面倒だったのでpencil+4のコンポジット設定だけ自動化した

import bpy
bcon = bpy.context.scene
bpy.context.scene.use_nodes = True

pencil_viewlayer_string = 'Pencil+ 4.Line Render.View Layer'
get_pvs = bpy.data.images.get(pencil_viewlayer_string)
get_cop = bcon.node_tree.nodes.get("Composite")
get_ren = bcon.node_tree.nodes.get("Render Layers")

if get_pvs:
    node_pencil = bcon.node_tree.nodes.new("CompositorNodeImage")
    image_pencil = bpy.data.images[pencil_viewlayer_string]
    node_pencil.image = image_pencil
    node_alphaover = bcon.node_tree.nodes.new("CompositorNodeAlphaOver")
    if not get_cop:
        get_cop = bcon.node_tree.nodes.new("CompositorNodeComposite")
    if not get_ren:
        get_ren = bcon.node_tree.nodes.new("CompositorNodeRLayers")
    get_ren.location = 0,400
    node_pencil.location = 0,0
    node_alphaover.location = 200,0
    get_cop.location = 400,0


    node_pencil_out = node_pencil.outputs[0]
    node_alphaover_a_in = node_alphaover.inputs[1]
    node_alphaover_b_in = node_alphaover.inputs[2]
    node_alphaover_out = node_alphaover.outputs[0]
    get_ren_out = get_ren.outputs[0]
    get_cop_in = get_cop.inputs[0]

    bcon.node_tree.links.new(get_ren_out,node_alphaover_a_in)
    bcon.node_tree.links.new(node_pencil_out,node_alphaover_b_in)
    bcon.node_tree.links.new(node_alphaover_out,get_cop_in)

else:
    print("nothing pencil")

とりあえず大した内容じゃないので上にスクリプトだけ置いておきます
やってる事は
①コンポジットオン
②ペンシルノードとアルファオーバー追加
③レンダーレイヤーとコンポジットが無い場合は生成
④ノード位置調整&繋ぐ
pencil+4がアドオンとして入ってなかったら動かないです

新規シーン作る度にコンポジット設定するの面倒だった

自前の環境では動く程度のものなので、上のコピペしてエラー吐いたら
システムコンソール開いて出てきた文章コピペしてコメントにでもぶち込んでおいてください

システムコンソールは何処でこけてるか知らせてくれる神様です


この記事が気に入ったらサポートをしてみませんか?