小物メモ
MacBookAirのデスクトップに放置してた、スクリプトをメモ代わりにここに残そうかと。
●SpeedChange
FPSを簡単に変えるスクリプト。
モーション作成時に、一々変更するのが
面倒だったので作ったと思います。
# -*- encoding: utf-8 -*- import maya.cmds as cmds import maya.mel as mel def SetTime(item): print item if item == "realtime": cmds.playbackOptions( edit=True , ps=1.0) elif item == "3x": cmds.playbackOptions( edit=True , ps=3.0) elif item == "2x": cmds.playbackOptions( edit=True , ps=2.0) elif item == "1/2x": cmds.playbackOptions( edit=True , ps=0.5) elif item == "1/3x": cmds.playbackOptions( edit=True , ps=0.3) elif item == "1/4x": cmds.playbackOptions( edit=True , ps=0.2) elif item == "1/5x": cmds.playbackOptions( edit=True , ps=0.1) def main(): ChangeFPS_window = "ChangeFPS" WindowWidth_Size = 170 WindowHight_Size = 60 if cmds.window(ChangeFPS_window,exists=True): cmds.deleteUI(ChangeFPS_window,window=True) MakeWindow = cmds.window(ChangeFPS_window,title=ChangeFPS_window,sizeable=False,mxb=False,mnb=False,wh=[WindowWidth_Size,WindowHight_Size]) cmds.columnLayout(w=WindowWidth_Size) cmds.text(l=u"選択した設定に、再生スピードを変更します。") cmds.optionMenu( label='Speed', changeCommand=SetTime) cmds.menuItem( label='realtime' ) cmds.menuItem( label='3x' ) cmds.menuItem( label='2x' ) cmds.menuItem( label='1/2x' ) cmds.menuItem( label='1/3x' ) cmds.menuItem( label='1/4x' ) cmds.menuItem( label='1/5x' ) cmds.showWindow() main()
●ネームスペース取得Tips
これで取得できるのが知らなかったのでメモ
# -*- encoding: utf-8 -*- import maya.cmds as cmds NameSpace = cmds.namespaceInfo(recurse=1,listOnlyNamespaces=1) NameSpace.remove(u'UI') NameSpace.remove(u'shared') print NameSpace
●スキンクラスターあれこれ取得
これはかなり昔のやつ。
一応メモ。
# -*- coding: utf-8 -*- from maya import cmds selection = cmds.ls(sl=True) shapes = cmds.listRelatives(selection[0],s=True,pa=True,type='mesh') if not shapes: cmds.error('Node has no shape') else: srcSkinCluster = cmds.listConnections(shapes[0]+'.inMesh',s=True,d=False) #スキンクラスター srcSkinCluster = srcSkinCluster[0] #スキング方法 skinningMethod = cmds.getAttr(srcSkinCluster+'.skm') #ドロップオフ率 dropoffRate = cmds.getAttr(srcSkinCluster+'.dr') #最大インフルエンス数の保持 maintrainMaxInfluences = cmds.getAttr(srcSkinCluster+'.mmi') #最大インフルエンス数 maxInfluences = cmds.getAttr(srcSkinCluster+'.mi') #ジョイントとジオメトリのポイントの間の最短距離 bindMethod = cmds.getAttr(srcSkinCluster+'.bm') #ウェイトの正規化 normalizeWeight = cmds.getAttr(srcSkinCluster+'.nw') #インフルエンスオブジェクト influences = cmds.skinCluster(srcSkinCluster,q=True,inf=True) print dropoffRate
まだあるけど、一旦これだけアップ。
以上。