2017/11/15

maya : タイムレンジのゲットセット

0 comment
リアクション: 
いくつかやり方があるけれど、これが一番シンプルかなー。

import pymel.core as pm

# タイムレンジの内側のゲットセット
pm.Env().minTime = 100
print pm.Env().minTime

pm.Env().maxTime = 500
print pm.Env().maxTime

# タイムレンジの外側のゲットセット
pm.Env().animStartTime = 0
print pm.Env().animStartTime

pm.Env().animEndTime = 600
print pm.Env().animEndTime

2017/11/08

python : 関数のデフォルト引数

0 comment
リアクション: 
今日はじめて知ったんですが、pythonの関数のデフォルト引数の挙動

>>> def b(l=[]):
... l.append(1)
... return l
...
>>> print b()
[1]
>>> print b()
[1, 1]
>>> print b()
[1, 1, 1]
>>>

あらららららららららら・・・・???

調べてみると、デフォルト引数は、関数が作成されるときに一度だけセットされるみたいです。
回避するには

>>> def c(l=None):
... if l is None:
... l=[]
... l.append(1)
... return l
...
>>> c()
[1]
>>> c()
[1]
>>> c([1])
[1, 1]
>>>

とかやるみたいです。
完全に間違ってました・・・orz

2017/11/02

maya : 選択しているオブジェクトのアニメーションキーを前後5フレずつ消す

0 comment
リアクション: 
k の値をお好きに変えてどうぞ。
いままで、手動でやってたのを後悔するわ…。


# -*- coding: cp-932 -*-
# RemoveNeighboringKeys.py

import pymel.core as pm

k = 5 # 前後の消すフレームの値
c = pm.currentTime()
pm.cutKey(pm.selected(),time=(c-k,c-1))
pm.cutKey(pm.selected(),time=(c+1,c+k))

2017/11/01

maya : 選択しているオブジェクトのコンストレイントをすべて削除

0 comment
リアクション: 
コードが短すぎて、逆に不安…。
デフォルトでつけておいて欲しい。

import pymel.core as pm
pm.delete(pm.listRelatives(pm.selected(),typ="constraint"))