3DCGbook

映像プロダクションに所属しています。主に毎日のアウトプットを配信していこうと思います。

2頂点をくっつけてキーフレームを打つ

1.くっつけたいとこのvertexを選ぶ
2.くっつけるvertexを追加で選ぶ
3.引数のところにどこからどこまでキーを打つか値を入れる
4.スクリプトの実行

これはシミュレーション用といってもいいでしょう。
シミュレーションはよく暴走するので…くっつけときたい時にといった感じです。

import pymel.core as pm
def pairVertexConnectKeyframe(inTime,outTime):
    getPairVertex = pm.ls(sl=True)
    for i in xrange(inTime,outTime+1):
        parentVtxPos = getPairVertex[0].getPosition(space='world')
        getPairVertex[1].setPosition(parentVtxPos,space='world')
        pm.setKeyframe(getPairVertex[1],
                       breakdown=False,hierarchy='none',controlPoints=False,shape=False)
        pm.currentTime(i,e=True)
pairVertexConnectKeyframe(1,60) #1~60にキーフレームを打つ

そういえば最近までPythonのrangeを頭が悪い使い方をしてました。
前に描いたスクリプトでは、outTime - inTimeとかやってrangeにつっこんでました。
要はフレーム範囲はどれだけのキーフレームの数かをこれで出します。
そしてこれをrangeに突っ込んで、inTime += 1とかやってinTimeを進めてました。

けど…range(inTime,outTime)で範囲普通に取れるじゃん…

と気づいたのが一昨日くらいです(笑)
それに気づいてからはもはや世界が変わりました…
いやー、よく調べて使わんとあかんですね。(今更感)

あともう一つ。
listなんだけど…list[::2]…これやばい。
これも恥ずかしながら最近気づきました。

今まで、
if X % Y == 1 とかで奇数とか偶数を出してたよ…。くそー。

Pythonの便利さを再確認できてよかったよかった。ってことで!