2013年05月08日

[Mayaスクリプト]野良スクリプトランチャー

2m級の巨人が作ったコレのMaya版です。
Mayaを使うことを強いられ一年強。スクリプトが増えてきたので作ってみた。
本当に使えねぇよMaya、Mayaなんて無くなればいいのに。と呪いの言葉を吐いている毎日です。
いつものように「Mayaなんか使わないでsoftimage使おうぜ」とか言ってたら、新しく入った若いのが

「softimageって何ですか?」

と抜かしやがった。今までは

「softimage使ってる人を見たこと無いです」

だったのに。

from maya.cmds import *
import maya.mel as mel
import os

g_ScriptDirectory = "〜スクリプトのあるフォルダ〜"


class executeScript :
def __init__(self, path) :
self.path = path
if ".mel" == path[-4:] : self.func = self.executeMEL
else : self.func = self.executePython
def executeMEL(self) :
cmd = "source \"%s\";"%self.path
#print "cmd:", cmd
mel.eval(cmd)
def executePython(self) :
execfile(self.path)
def OnClick(self, *args) :
self.func()

def addButton(sPath, lEs) :
dirs = list()
files = list()
for f in os.listdir(sPath) :
sFullpath = "%s/%s"%(sPath,f)
if os.path.isdir(sFullpath) : dirs.append(f)
elif ".py" == f[-3:] : files.append(f)
elif ".mel" == f[-4:] : files.append(f)
for f in dirs :
sFullpath = "%s/%s"%(sPath,f)
frameLayout(cl=True, cll=True, l=f)
columnLayout(adj=True)
addButton(sFullpath, lEs)
setParent("..")
setParent("..")
for f in files :
sFullpath = "%s/%s"%(sPath,f)
es = executeScript(sFullpath)
button(l=f, c=es.OnClick)
lEs.append(es)

class NoraScriptLancher :
sWndName = "NoraScriptLancherWnd"
def __init__(self, path) :
self.scripts = list()
if window(self.sWndName, q=True, ex=True) :
deleteUI(self.sWndName)
wnd = window(
self.sWndName,
t = "Nora Script Lancher"
)
columnLayout(adj=True)
addButton(path, self.scripts)
setParent("..")
showWindow(wnd)

NoraScriptLancher(g_ScriptDirectory)

サブフォルダごとにframeLayout(折りたためるヤツ)にしてあるので、用途別にフォルダを作ることをお勧めします。
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:


この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。