-1

簡単にするために、ノード グラフで選択したノードを Y 軸の 1 つの直線に揃えるスクリプトを NUKE で作成しています。ステートメントを書いているときに、elif思ったように機能しないか、構文エラーが発生するという問題があります。

したがって、関数の基本は次のとおりです。

ELSE STATEMENT- ノードを 1 つだけ選択した場合 - ユーザーが複数のノードを選択する必要があるというエラー メッセージが表示される

ELIF STATEMENT- 同じ Y 軸にある 2 つ以上のノードを選択した場合 - それらがすでに位置合わせされていることを示すメッセージ

IF STATEMENT- 異なる Y 軸で 2 つ以上のノードを選択した場合 - すべてのノードが一直線に正しく整列する必要があります

# Getting selected nodes and making them into a list

selNodes = nuke.selectedNodes()
list = []

for node in selNodes:
            n = node['ypos'].value()
            list.append(n)

# Defining the actual function

def alignY():

    # Aligning the selected nodes using average position of every node. 
    # Must select more than one node in order to get an average.

    if len(selNodes) > 1:

        total = sum(list)
        average = total / len(selNodes)

        for node in selNodes:
            n = node['ypos'].setValue(average)

    # Getting the position of a single node from the list
    firstNodePostion = list[0]

    # Checking position of the single node is equivalent to the average 
    # To prevent nodes aligning again)  

    elif average == firstNodePostion:
        nuke.message("Nodes already Aligned")

    # When no nodes or only one node is selected this message pops up         
    else:
        nuke.message("Select Two or more Nodes")

alignY()
4

2 に答える 2