検索はキーワードに基づいています。
例:「手順」
自然言語で検索しないでください
例:「新しいプロシージャを作成するにはどうすればよいですか?」
カスタムメニューとツールバーの定義
カスタムメニューとメニューオプション、およびツールバーとツールバーオプションを自由に追加できます。 Nukeインターフェース。アーティストは、これらのオプションを使用して、プラグインパスディレクトリに保存されているギズモとプラグインをトリガーできます。
たとえば、MyGizmoと呼ばれるギズモをトリガーするオプションを備えたデフォルトのツールバーに新しいメニューを追加するには、次の操作を実行できます。
1. | ホームディレクトリに、というディレクトリを作成します.nuke (まだ存在しない場合)。このディレクトリの詳細については、 ギズモ、NDKプラグイン、PythonおよびTclスクリプトの読み込み。 |
2. | の中に.nukeディレクトリ、というファイルを作成しますmenu.pyまだ存在しない場合。 |
3. | テキストエディターで、ファイルを変更しますmenu.py、行を追加します: |
toolbar = nuke.toolbar("Nodes")
toolbar.addCommand( "Test/MyGizmo", "nuke.createNode('MyGizmo')")
これにより、ノードMyGizmoのインスタンスを作成する「MyGizmo」というラベルの付いたアイテムとともに、「Test」というラベルの付いたメニューがデフォルトのノードツールバーに追加されます。
注意: ノードClass()次のように、メジャーリリース間で名前が時々変更されるNuke 7〜 Nuke 8。これらの変更はレガシースクリプトには影響しませんが、ノードクラスが変更された場合、期待した結果が得られない場合があります。のtoolbars.pyファイル、作成に使用Nukeのノードツールバーには、現在のすべてのノードクラス名が含まれており、 <install_directory>/plugins/nukescripts/参考のために。
例として、 Nuke 7およびNuke 8、テキストノードClass() TextからText2に変更されました。の中にtoolbars.py 2つのリリースのファイルでは、テキストノードのエントリは次のように表示されます。
m.addCommand( "Text"、 "nuke.createNode(\" Text \ ")"、icon = "Text.png")
m.addCommand( "Text"、 "nuke.createNode(\" Text2 \ ")"、icon = "Text.png")
他のメニューにアイテムを追加することも可能ですNuke独自のツールバーを作成することもできます。次のセクションでは、これらの可能性について詳しく説明します。
ツールバーを追加するには
ツールバーを追加するには:
1. | というファイルを作成しますmenu.pyまだ存在しない場合は、プラグインパスディレクトリに。 |
プラグインパスディレクトリの詳細については、 ギズモ、NDKプラグイン、PythonおよびTclスクリプトの読み込み。
2. | を開くmenu.pyテキストエディタでファイルを作成し、次の形式でエントリを追加します。 |
t=nuke.toolbar("ToolbarName")
t.addCommand("NewMenu", "PythonCode", "Shortcut", icon="IconName")
• 交換ToolbarNameツールバーに付けたい名前を付けます。この名前は、以下のコンテンツメニューに表示されますWindows > Customタイトルタブのツールバーの上。
• 交換NewMenuツールバーに追加するメニューの名前。
• 交換PythonCode関連するPythonコード(通常はnuke.createNode)、必要に応じて、メニューオプションで呼び出すギズモ、汎用Pythonスクリプト、またはプラグインファイルの名前を使用します。使いやすくするために、このような参照ファイルはすべてプラグインパスディレクトリ内に配置してください。
必要に応じて、交換することもできますPythonCode Python呼び出し可能。
• 交換Shortcut たとえば、キーボードショートカット付きAlt+A、 Ctrl/Cmd+A 、またはShift+A。手紙a単独で小文字を表しますa。F1機能キー1を表します。あなたは組み合わせることができますShift、 Ctrl/Cmd 、そしてAlt必要に応じてキー。必要に応じて、使用することもできます#A表現しますAlt+A, ^A表現しますCtrl/Cmd+A、 そして +A表現しますShift+A。
• 交換IconNameの名前で.png (または.xpm)メニューアイコンとして使用する画像。この画像はNukeプラグインパスディレクトリ。サイズは24 x 24ピクセルでなければなりません。
3. | 上記のエントリでは、次のオプションの引数をかっこ内に追加することもできます。 "ToolbarName": |
• True. これがデフォルトです。Trueの場合、nuke.toolbar()は指定された名前でツールバーを呼び出すか、存在しない場合は作成します。例えば、 t=nuke.toolbar("Extras", True) Extrasという既存のツールバーを呼び出すか、まだ存在しない場合は作成します。
• False. Falseの場合、ツールバーはまだ存在していなければ作成されず、nuke.toolbar()は戻りますNone。これを使用して、指定された名前のツールバーがすでに存在するかどうかを確認できます。例えば、 t=nuke.toolbar("Extras", False) Extrasという既存のツールバーを呼び出すか、そのようなツールバーが存在しない場合はNoneを返します。
新しいツールバーはデフォルトでは表示されませんが、下にリストされますCustomコンテンツメニューで。そこから、任意のペインに挿入できます。新しいツールバーとその位置に満足したら、レイアウトを保存します(選択しますWorkspace > Save Workspace)。その後、ツールバーは常に表示されますNuke保存されたワークスペースで起動されます。
さまざまなタスク用に複数のツールバーを作成し、コンテキストを簡単に切り替えるために、1つまたは別の存在するレイアウトを保存できます。
例1
次のエントリは、という新しいツールバーを作成しますExtras。ツールバーには次のオプションがありますCreate VectorBlur VectorBlurノードを作成します。エントリも定義しますv VectorBlurノードのキーボードショートカットとして。
t=nuke.toolbar("Extras")
t.addCommand("Create VectorBlur", "nuke.createNode ('VectorBlur')", "v")
例2
この例では、例1で作成したツールバーにAutoplaceというオプションを追加します。このオプションは、次の画像に示すように、選択したノードを次々にきれいに配置します。
|
|
Autoplaceを使用する前に |
Autoplaceを使用した後 |
次のエントリは、自動配置オプションを追加します。また、定義しますAlt+Aこのオプションのキーボードショートカットとして。
def _autoplace():
n = nuke.selectedNodes()
for i in n:
nuke.autoplace(i)
t=nuke.toolbar("Extras")
t.addCommand("Auto&place", "_autoplace()", "Alt+a")
メニューまたはツールバーオプションを定義するには
メニューまたはツールバーオプションを定義するには:
1. | まだ行っていない場合は、というファイルを作成しますmenu.pyプラグインパスディレクトリ内。プラグインパスディレクトリの詳細については、 ギズモ、NDKプラグイン、PythonおよびTclスクリプトの読み込み。 |
2. | を開くmenu.pyテキストエディタでファイルを作成し、次の形式でエントリを追加します。 |
menubar=nuke.menu("MenuType")
m=menubar.addMenu("&NewMenu")
m.addCommand("&NewItem", "PythonCode", "Shortcut", icon="IconName", index=#)
• 交換MenuType アイテムを追加するメニューまたはツールバーのタイプ:
Nukeアプリケーションのメインメニューバーに項目を追加します。
Animation アニメーションボタンのメニューにアイテムを追加しますすべてのパネル、およびカーブエディタの右クリックメニューに移動します。
Propertiesプロパティパネルの右クリックメニューにアイテムを追加します。
Node Graphノードグラフの右クリックメニューに項目を追加します。
Nodesデフォルトのツールバーにアイテムを追加します。
Viewerビューアーの右クリックメニューにアイテムを追加します。
Pane表示されるコンテンツメニューにアイテムを追加しますCustom。
• 交換NewMenuメニュー名付き。既存のメニュー名を使用すると、既存のメニューに新しいオプションが追加されます。デフォルトのメニューバーとツールバーにオプションを追加することもできます。
• 交換 NewItem メニューに追加する基になるアイテムを使用します。任意の文字の前に &キーボードショートカットトリガーとしてフラグを立てるため。
• 交換PythonCode関連するPythonコード(通常はnuke.createNode)、および必要に応じて、メニューオプションで呼び出すギズモ、汎用Pythonスクリプト、またはプラグインファイルの名前を使用します。使いやすくするために、このような参照ファイルはすべてプラグインパスディレクトリ内に配置してください。
プラグインパスディレクトリの詳細については、 ギズモ、NDKプラグイン、PythonおよびTclスクリプトの読み込み。
必要に応じて、交換することもできますPythonCode Python呼び出し可能。これには、メニュー項目が呼び出されるときではなく、起動時にスクリプトのエラーについて通知されるという利点があります。ラムダ関数の使用例については、を参照してください例3。
• 交換Shortcut たとえば、キーボードショートカット付きAlt+A、 Ctrl/Cmd+A 、またはShift+A。手紙a単独で小文字を表しますa。F1機能キー1を表します。あなたは組み合わせることができますShift、 Ctrl/Cmd 、そしてAlt必要に応じてキー。必要に応じて、使用することもできます#A表現しますAlt+A, ^A表現しますCtrl/Cmd+A、 そして +A表現しますShift+A。
注意: キーボードショートカットを割り当てることにより、既存のショートカットを上書きできます。たとえば、ショートカットを割り当てた場合Ctrl/Cmd+O新しいメニュー項目に対しては、ファイルを開くというデフォルトの目的には使用されなくなりました。ただし、ショートカットは、メインメニューバー、ツールバー、ユーザーが作成したツールバー、および新しいメニュー項目を追加するメニューでのみ上書きされます。これは、たとえばビューアで同じショートカットをリセットせずに、ノードグラフにショートカットを追加できることを意味します。ただし、メインメニューバーまたはツールバーで同じショートカットをリセットしないと、ノードグラフにショートカットを追加できません。
• 交換IconNameメニューアイコンとして使用する.png(または.xpm)画像の名前を使用します。この画像はNukeプラグインパスディレクトリ。サイズは24 x 24ピクセルでなければなりません。
• 交換#メニューまたはツールバー内のアイテムの位置を表す数字を使用します。インデックスキーワードを使用しない場合、アイテムはメニューまたはツールバーの最後に追加されます。
ヒント: 次のように、メニュー名をaddCommand呼び出しに含めることもできます。
nuke.menu( "MenuType")。addCommand( "NewMenu / NewItem"、 "PythonCode(" name ")")
例1
次のエントリは、という新しいメニューとオプションを作成しますCustom > Cue Renderメニューバーで。「cue_render」というギズモを挿入します。エントリも定義しますCtrl+Rギズモのキーボードショートカットとして。
menubar=nuke.menu("Nuke")
m=menubar.addMenu("&Custom")
m.addCommand("&Cue Render", "nuke.createNode('cue_render')", "Ctrl+R")
例2
ギズモをトリガーするメニュー項目を使用してデフォルトのツールバーに新しいメニューを作成する方法については、下の例を参照してくださいカスタムメニューとツールバーの定義。
例3
次のエントリは、というメニューとオプションを作成しますCustom > Filters > Blurメニューバーで。選ぶBlurぼかしノードを挿入します。
menubar=nuke.menu("Nuke")
m=menubar.addMenu("&Custom")
m.addCommand("Filters/Blur", "nuke.createNode(\"Blur\")" )
ラムダ関数でも同じことができます。
menubar=nuke.menu("Nuke")
m=menubar.addMenu("&Custom")
m.addCommand("Filters/Blur", lambda: nuke.createNode("Blur") )
このように、バックスラッシュを使用する必要はありません。
申し訳ありませんが、これは役に立ちませんでした
なぜこれが役に立たなかったのですか? (当てはまるもの全てをご確認ください)
ご意見をいただきありがとうございます。
探しているものが見つからない場合、またはワークフローに関する質問がある場合は、お試しくださいファウンドリサポート。
学習コンテンツを改善する方法についてご意見がある場合は、下のボタンを使用してドキュメントチームにメールを送信してください。
フィードバックをお寄せいただきありがとうございます。