ON-BLOG

CGのこと、あれこれ書いてます。

小物メモ2

続き

選択のコンストレイントを削除するやつ。
ツール作るまではこれで、コンストを削除してました。

import maya.cmds as cmds

def SelAll_Const_Del():
    sel= cmds.ls(sl=True,type="constraint")
    for i in sel:
        cmds.delete(i)


続いて、これは入力した文字数頭から
文字列を削除してます。
あやまって変な名前を頭に付けてしまったときに
一度だけ使った気がします。。。
これが
f:id:tommy_on:20180502225917p:plain
こうなる。
f:id:tommy_on:20180502225934p:plain

# coding: UTF-8
import sys
import maya.cmds as cmds 

err = []

def Renamen(Counts):
    sel = cmds.ls(sl=True,shortNames=True)
    for file in sel:
        RenameSet = file.rsplit('|')[-1]
        Front = RenameSet[:Counts]
        End = RenameSet[Counts:]
        try:
            cmds.rename(file ,End)
        except:
            err.append(file)
    if len(err) > 0 :
        st = u"以下のファイルに同名処理の疑いがある為、スキップしています。\n" + str(err)
        cmds.confirmDialog(message = st  ,b= u"確認")
    else:
        cmds.headsUpMessage( u'作業が終了しました。', verticalOffset=20 )

result = cmds.promptDialog(title=u'分割するカット数を入力ください。',
message=u'分割数(数字以外入れないで下さい)',
text=u"2",
button=['OK', 'Cancel'],
defaultButton='OK',
cancelButton='Cancel',
dismissString='Cancel')
if result == "OK":
    text = cmds.promptDialog(query=True, text=True)
    if text.isdigit():
        Counts = int(text)
        Renamen(Counts)
    else:
        cmds.confirmDialog(message = u"数字を入力してください",b= u"確認")
        print u"キャンセルされました"
else:
    print u"キャンセルされました"

これは選択したアニメーション範囲に
シーンのライムレンジを合わせるスクリプト
今は他のツールに統合してるので使ってない。

import maya.cmds as cmds

Sel = cmds.ls(sl=True)
if len(Sel) > 0:

    cmds.playbackOptions(e=True,ast='-10000')
    cmds.playbackOptions(e=True,min='-10000')
    cmds.playbackOptions(e=True,aet='10000')
    cmds.playbackOptions(e=True,max='10000')
    In = cmds.findKeyframe(timeSlider=True, which='first') 
    Out = cmds.findKeyframe(timeSlider=True, which='last') 
    
    cmds.playbackOptions(e=True,ast=In)
    cmds.playbackOptions(e=True,min=In)
    cmds.playbackOptions(e=True,aet=Out)
    cmds.playbackOptions(e=True,max=Out)

とりあえずこれで最後に
こいつはなぜ作ったのか?まったく覚えてないんですが
あったんでとりあえずアップ。
骨選んで実行すると
同じような階層でロケーターができます。
これが
f:id:tommy_on:20180502225712p:plain
こうなります。
f:id:tommy_on:20180502225729p:plain

# -*- coding: utf-8 -*-
"""
骨選んで実行すると、その階層と同じロケーターが作成され
選択された骨は、こちらに回転コンストレインがかけられる。
"""

import maya.cmds as cmds

Sel = cmds.ls(sl=True)

if len(Sel) > 0:
    RigGrp = cmds.group(n="Rigging",empty=True)
    index = 0
    Hako = []
    Oya_Loc = ""
    for i in Sel:
        Loc = cmds.spaceLocator(n="Tail_Transfer_" + str(index))
        PosC = cmds.pointConstraint(i,Loc)
        OriC = cmds.orientConstraint(i,Loc)
        cmds.delete(PosC,OriC)
        if index == 0:
            Oya_Loc = Loc[0]
        index = index + 1
        Hako.append(Loc)
    Hako.reverse()
    for p in range(len(Hako)):
        try:
            cmds.parent(Hako[p],Hako[p+1])
            cmds.select(Hako[p+1])
        except:
            print "NG"
    cmds.parent(Oya_Loc,RigGrp)
    cmds.select(Oya_Loc,hierarchy=True)
    SelLoc = cmds.ls(sl=True,tr=True)
    for L in range(len(SelLoc)):
        print SelLoc[L]
        print Sel[L]
        OriC = cmds.orientConstraint(SelLoc[L],Sel[L])
else:
    print "NG"

ほかにもあるけど、ちょいちょい仕事の内容も含みながら書いてたりするので
この程度で…

どうせまた増えるし…