簡単にするために、ノード グラフで選択したノードを 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()