[Python] クリップボードの内容をListに追加 [PySide]

PySide界隈が怪しい雲行きらしいですが、とりあえずしばらくは気にせずPySideを続けますよ。

ということで、今回はクリップボードの内容をListViewに表示する方法を調べてみました。

Continue reading “[Python] クリップボードの内容をListに追加 [PySide]”

[Python] Windowsにインストールされているアプリケーションを調べる

Pythonを使って、Windowsにインストールされているアプリケーションを調べるのをやってみました。

Continue reading “[Python] Windowsにインストールされているアプリケーションを調べる”

[Maya] 選択しているオブジェクトをリファレンス化 Lv 1 [Python]

久しぶりにMayaスクリプト。

選択しているオブジェクトをReference化するスクリプトが欲しいのでちまちま書き始めました。
が…これ、言うのは簡単なんですけどコネクションやらコンストレインやらアニメーションやら考えると色々とめんどくs…じゃなくて、やっかいなのです。
なので、とりあえず簡単な出力から徐々に継ぎ足し書き足しして行こうと思います。

Continue reading “[Maya] 選択しているオブジェクトをリファレンス化 Lv 1 [Python]”

[mayaPython]バージョンを上げてシーンを保存する

Mayaに限らず、作業しているシーンを保存する場合は 前に保存したものを上書きするのではなく _v01 のようにバージョンをつけて保存する…というのを日常的にやってる人も多いかと思います。

そのとき、Windowsの仕様なのか FileDialogで バージョンナシのものをリネームして、ファイル名をバージョンなしに設定して保存する をすると リネームしたはずなのに、上書きしますか?と聞かれ

非常に ウザい

ので、バージョンをつけて保存してくれるコマンドを書いてみました。

[python] import os,os.path,re,glob
import maya.cmds as mc

#フォルダ内にあるバージョンファイルのバージョンに+1したファイル名を返すスクリプト

def incrementFileName(ST_path,ST_vName="_",IN_defIncrementNum=2):

if os.path.exists(ST_path):

basename = os.path.basename(ST_path)
fileName = os.path.splitext(basename)[0] fileNameNonVer = re.sub(ST_vName+"v[0-9]+$","",fileName)
fileExt = os.path.splitext(basename)[1] dirName = os.path.dirname(ST_path)

fileList = glob.glob(dirName+"/"+ fileNameNonVer + ST_vName + "v" + "*"+fileExt)

incrimentNum = 0

if len(fileList) == 0:

incrimentNum = 1

else:

maxNum = 1

for files in fileList:

buff = files.split(ST_vName + "v")

if maxNum < int(buff[len(buff) -1].strip(fileExt)):

maxNum = int(buff[len(buff) -1].strip(fileExt))

incrimentNum = maxNum + 1

return dirName + "/" + fileNameNonVer + ST_vName + "v" + str(incrimentNum).zfill(IN_defIncrementNum) + fileExt

#バージョンを残して保存するスクリプト本体
def incrementSaveFile():

ST_mayaScenes = mc.file(q=True,sceneName=True)

if ST_mayaScenes != "":

ST_IncrementFileName = incrementFileName(ST_mayaScenes)
os.rename(ST_mayaScenes,ST_IncrementFileName)
mc.file(save=True)
else:
#新規ファイルの場合は、ダイアログを出して新規保存
multipleFilters = "Maya ASCII (*.ma);;Maya Binary (*.mb);;All Files (*.*)"
saveFileName = mc.fileDialog2(fileFilter=multipleFilters, dialogStyle=1)
print saveFileName[0] ST_type = "mayaAscii"
if os.path.splitext(saveFileName[0])[1] == ".mb":

ST_type = "mayaBinary"

mc.file(rename=saveFileName[0])
mc.file(save=True,f=True,type=ST_type)

#実行
incrementSaveFile()

[/python]

新しいシーンの場合は、ダイアログを出してファイル名を指定して保存します。

上のコマンドの場合、バージョンは _v00 のように _ + v + 数字二桁 のバージョンがつきますが、それを変更したい場合は、

47行目の

ST_IncrementFileName = incrementFileName(ST_mayaScenes)

ST_IncrementFileName = incrementFileName(ST_mayaScenes,<区切る文字>,<桁数>)

ex: test.mb => incrementFileName(ST_mayaScenes,".",3) => test.v001.mb

に変更すると、桁数と区切る文字を変えられます。

 

これでバージョンをつけて保存する手間も減って楽チン☆ と、気楽に保存しまくって バージョンがすごいことになったりしなかったり。。。

アニメーション作業用コマンドもろもろ

今のプロジェクトではアニメーションメインになっているので、作業しながらShelfに入れておくと便利な簡単コマンドでも。

Continue reading “アニメーション作業用コマンドもろもろ”