●add frame
入力した数字分だけ、フレームがプラス方向に移動します。
●minus frame
入力した数字分だけ、フレームがマイナス方向に移動します。
●start frame
中間フレームを求めるための、始めのフレームをセットします。
●end frame
中間フレームを求めるための、終わりのフレームをセットします。
●intermidiate frame
start frame、end frameで入力されたフレームの中間フレームに移動します。
フレーム間が奇数だった場合は、小数点切り捨ての値になります。
例)start frame「10f」、end frame「19f」の場合、「14f」に移動します。
●スクリプト(Python)
################################################################
#
# [name]Set various frame
# [function]add frame, minus frame, culculate intermidiate frame
# [note]if result value is odd, result value round down.
#
# [author]Kyohei Ueno(heikyonoeu.blogspot.jp)
#
################################################################
import maya.cmds as mc
###set current frame in start frame###
def setStaFCurFrame():
curF = mc.currentTime(q=1)
mc.textFieldButtonGrp('staF_fld',edit=1,tx=curF)
###set current frame in end frame###
def setEndFCurFrame():
curF = mc.currentTime(q=1)
mc.textFieldButtonGrp('endF_fld',edit=1,tx=curF)
###set intermidiate frame###
def setIntermidiateFrame():
staF = float(mc.textFieldButtonGrp('staF_fld',q=1,tx=1))
endF = float(mc.textFieldButtonGrp('endF_fld',q=1,tx=1))
intmF = int((endF - staF) / 2)
intmF_result = int(staF + intmF)
mc.textFieldButtonGrp('intm_fld',edit=1,tx=intmF_result)
mc.currentTime(intmF_result)
###add frame###
def addFrame():
a = float(mc.currentTime(q=1))
b = float(mc.textFieldButtonGrp('addFrame',q=1,tx=1))
c = a + b
mc.currentTime(c)
###minus frame###
def minusFrame():
a = float(mc.currentTime(q=1))
b = float(mc.textFieldButtonGrp('minusFrame',q=1,tx=1))
c = a - b
mc.currentTime(c)
###window###
if mc.window('setVariousFrame',ex=1):
mc.deleteUI('setVariousFrame')
mc.window('setVariousFrame',t='Set various frame',s=0)
mc.columnLayout()
mc.rowLayout(nc=2)
mc.textFieldButtonGrp('addFrame',l='add frame',bl='set',tx=0,cw3=(60,50,30),bc=addFrame)
mc.textFieldButtonGrp('minusFrame',l='minus frame',bl='set',tx=0,cw3=(60,50,30),bc=minusFrame)
mc.setParent('..')
mc.rowLayout(nc=3)
mc.textFieldButtonGrp('staF_fld',l='start frame',bl='set',cw3=(60,50,30),bc=setStaFCurFrame)
mc.textFieldButtonGrp('endF_fld',l='end frame',bl='set',cw3=(60,50,30),bc=setEndFCurFrame)
mc.textFieldButtonGrp('intm_fld',l='intermidiate frame',bl='set',cw3=(95,50,30),bgc=(1,0.443,0),bc=setIntermidiateFrame)
mc.showWindow()
0 件のコメント:
コメントを投稿