nukeは、ファイルブラウズにOSのファインダーやエクスプロラーなどといったものを使わずにnuke独自のものを使ってファイルを読み込んだりする。
が、時にこれが不便だったりする。特にReadノードのファイルパスの階層を開きたいとか、同じくWriteノードで指定しているファイルパスの階層にいきたいとか・・・
そんなときに長方するスクリプトです。
dirOpen.py
import nuke
import os
def main():
sn = nuke.selectedNode()
fP = sn['file'].value()
dirP = os.path.dirname(fP)
dirP = dirP.replace("/", "\\")
dirP = dirP + "\\"
#print dirP
os.popen("explorer.exe" + " " + os.path.dirname(dirP))
dirOpen,pyとか適当に名前をつけて保存して、nukeのpluginPathに保存します。
ちなみにmacの場合は・・・
import nuke
import os
def main():
sn = nuke.selectedNode()
fP = sn['file'].value()
dirP = os.path.dirname(fP)
os.popen("open" + " " + os.path.dirname(dirP))
あとは、menu.pyに登録します。
menu.py
import dirOpen
m = nuke.menu("Nodes")
m.addCommand("dirOpen", "dirOpen.main()", "ctrl+shift+o")
この場合、ctrl + shift + o ってショートカットを当ててます。
ReadノードやWriteノードを選んで、そのショートカットを実行するとOSのファイルブラウザでその階層が開けます。
menu.pyの所、文末によけいなモノが付いちゃってますよ(コピペミス?)
ReplyDeleteあ、ほんまや。直しておきます!
DeleteLinuxの場合これで行けると思います。
ReplyDeletedef main():
sn = nuke.selectedNode()
fP = sn['file'].value()
dirP = os.path.dirname(fP)
dirP = dirP + "/"
os.popen("nautilus" + " " + os.path.dirname(dirP))
Linuxを変えたら動かなくなりました。
DeleteTDに教わって改訂
nautilus → dg-open
os.popen("xdg-open" + " " + os.path.dirname(dirP))
"xdg-open"は引き渡すタイプを判別してアプリに引き渡してくれる便利なコマンドだそうです。
すいません、さらにおかしくなりました・・・
ReplyDelete