サポートチケットを作成する
フォローする

Q100248:Nukeでコールバックを追加する

概要

この記事では、Nukeでコールバックを設定する方法と、コールバックに使用する正しいPythonコマンドを見つける方法について説明します。

利用可能なコールバックと例の完全なリストは Nuke 10.0 または Nuke 10.5 のNuke Python開発者ガイドにあり Nuke

詳しくは

コールバックは、Nukeでさまざまなイベント(ノードの作成やスクリプトのロードなど)が発生したときにPython関数を自動的に呼び出す、Nuke Environmentに追加されたコードの一部です。

これは、ノードの作成時にノブ値の設定を自動的に設定したり、スクリプトの増分バージョンを自動的に保存したり、新しいプロジェクトを設定するときにプロジェクト設定を変更したりする場合など、多くの状況で役立ちます。

以下に、Nukeで新しく作成されたすべてのWriteノードで、Writeノードの「ファイルタイプ」をexrに設定し、「ファイル」パスを一時的な場所に設定するコールバックの作成方法の例を示します。

コールバックを設定するには、次の手順に従ってください(各手順の詳細については、続けてお読みください)。

  1. Nukeのスクリプトエディタで使いたいコマンドをテストして、正しく動作することを確認します。
  2. あなたのコールバック関数を定義して、あなたの.nukeフォルダーの中にinit.pyとして保存されたテキストファイルの中でコールバックとしてそれを追加してください。
  3. 次回Nukeを開くと、指定されたイベントが発生したときにコールバックが実行されます。

1. Nukeのスクリプトエディタで使いたいコマンドをテストして、正しく動作することを確認します。

コールバックを作成するには、最初にNukeセッション内のスクリプトエディタでPythonコマンドをテストすることがしばしば役に立ちます。 利用可能なPython APIコマンドの詳細については、 『 Nuke Python開発者ガイド』 および 『 Nuke Python APIリファレンス』を参照してください

スクリプトを作成するためのノードのノブの名前は、通常、ノブの上に移動したときに表示されるラベルにあります。

たとえば、Writeノードの 'file'ノブは 'file'を使用してスクリプティングのために参照でき、 'file type'ノブは 'file_type'を介してスクリプティングのために参照できます。


特定のノブの現在の値、たとえば 'ファイルタイプ'を取得するには、スクリプトエディタで次のコマンドを実行します。

node = nuke.toNode(“Write1”)
# replace Write1 with the name of
# your Write node if it is different

print node["file_type"].getValue() 

これらは以下をコンソールに表示します。

# Result: print node["file_type"].getValue()
# Result: 2.0

この場合の2.0は、ファイルタイプのドロップダウンリスト内の 'dpx'のインデックスです。

Pythonを介して「ファイルタイプ」を「exr」に変更するには、スクリプトエディタで次のコマンドを入力します。

node["file_type"].setValue(3)

これは、コールバックに追加したいコマンドの1つです。宛先の「ファイル」パスを一時的な場所に設定するもう1つは、次のようになります。

node["file"].setValue("/tmp/test.####.exr")

2.コールバック関数を定義して、.nukeフォルダ内にinit.pyとして保存されているテキストファイルにコールバックとして追加します。

以下のコード例に示すように、コールバックに実行させるすべてのアクションを単一のPython関数で定義し、この関数をOnUserCreateコールバックとして追加します。

 import nuke 

def writeSettings():
node = nuke.thisNode()
node["file_type"].setValue(3)
node["file"].setValue("/tmp/test.####.exr")

# add callback to execute this every time a Write node is created
nuke .addOnUserCreate(writeSettings, nodeClass="Write")


これをコピーしてテキストエディタに貼り付け、ファイルを保存します。

init.py とあなたがこれを行うときに、ファイルの拡張子は、ファイル拡張子が .txt の.py または異なっ ていない ことを確認するために、あなたのファイルブラウザに表示されていることを確認 するために、ファイルの名前を変更します


このファイルはあなたの.nukeフォルダに置く必要があります。これはNukeが起動時にプラグインを探す最初の場所です。この記事を参照して、.nukeフォルダを見つけてください 。Q100048: Nukeディレクトリの場所

3.次回Nukeを開いたときに、指定したイベントが発生したときにコールバックが実行されます。

これを実行した後、コールバックはNuke環境に追加され、次にアプリケーションを起動して新しいWriteノードを作成するときには、これらに「ファイル」と「ファイルタイプ」の設定が適用されます。

注: 特定のクラスのすべてのノードに特定の設定を適用したい場合や、保存した古いスクリプトから読み込んだ場合も 、nuke.addOnUserCreateではなく nuke .addOnCreate コールバックを 使用できます

コールバックの設定で問題が発生した場合は、サポートチケットを開き、発生した問題とこれまでに行ったトラブルシューティングの手順をお知らせください。

サポートチケットを開く方法の詳細については、「 サポートポータル 使用 」の記事 を参照してください

この記事は役に立ちましたか?
/

We're sorry to hear that!

Please tell us why.
8人中4人がこの記事が役に立ったと言っています

コメント