RenderSetupをPythonで操る方法 part4

takkun
どうも!たっくんです!

あれこれ試したりし、解析したりした内容になりますが、今回は「AOV」「レンダー設定」周りを書いていきたいと思います!

RenderSetupをPythonで操る方法 part1

2020.04.08

RenderSetupをPythonで操る方法 part2

2020.04.09

RenderSetupをPythonで操る方法 part3

2020.04.10

RenderSetupをPythonで操る方法 part5

2020.04.12

AOVのオーバーライドがあるか確認

rs = renderSetup.instance()
layer = rs.getRenderLayer('renderSetupLayer1')
print layer.hasAOVCollectionInstance()

AOVオーバーライドのインスタンスの取得

rs = renderSetup.instance()
layer = rs.getRenderLayer('renderSetupLayer1')
aovCollection = layer.aovCollectionInstance()
AOVのコレクションがないレイヤーに「aovCollectionInstance」を実行すると、インスタンスが作成されます。

AOVオーバーライド項目の取得

rs = renderSetup.instance()
layer = rs.getRenderLayer('renderSetupLayer1')
aovCollection = layer.aovCollectionInstance()

# AOVごとのコレクションの取得
aovChildCollections = aovCollection.getCollections()
for aovChildCollection in aovChildCollections:
    # 項目名の取得
    print aovChildCollection.name()
    
    # セレクターの取得
    selector_ = aovChildCollection.getSelector()
    
    # セレクターのメンバーの取得
    print selector_.names()

    # オーバーライドの取得
    overrides = aovChildCollection.getOverrides()
    for override_ in overrides:
        # アトリビュート名の取得
        print override_.attributeName()
        
        # オーバーライド値の取得
        print override_.getAttrValue()

AOVオーバーライド項目の追加/設定

rs = renderSetup.instance()
layer = rs.getRenderLayer('renderSetupLayer1')

# AOVのオーバーライドの追加
override_ = layer.createAbsoluteOverride('aiAOV_ID', 'enabled')

# 値の変更
print override_.setAttrValue(False)

レンダー設定のオーバーライドがあるか確認

rs = renderSetup.instance()
layer = rs.getRenderLayer('renderSetupLayer1')
print layer.hasRenderSettingsCollectionInstance()

レンダー設定オーバーライドのインスタンスの取得

rs = renderSetup.instance()
layer = rs.getRenderLayer('renderSetupLayer1')
renderSettingsCollection = layer.renderSettingsCollectionInstance()
レンダー設定のコレクションがないレイヤーに「renderSettingsCollectionInstance」を実行すると、インスタンスが作成されます。

レンダー設定オーバーライド項目の取得

rs = renderSetup.instance()
layer = rs.getRenderLayer('renderSetupLayer1')
renderSettingsCollection = layer.renderSettingsCollectionInstance()

# セレクターの取得
selector_ = renderSettingsCollection.getSelector()

# セレクターのメンバーの取得
print selector_.names()

# オーバーライドの取得
overrides = renderSettingsCollection.getOverrides()
for override_ in overrides:
    # アトリビュート名の取得
    print override_.attributeName()
    
    # オーバーライド値の取得
    print override_.getAttrValue()

レンダー設定の追加/設定

rs = renderSetup.instance()
layer = rs.getRenderLayer('renderSetupLayer1')

# レンダー設定のオーバーライドの追加
override_ = layer.createAbsoluteOverride('defaultArnoldRenderOptions', 'AASamples')

# 値の変更
print override_.setAttrValue(5)